[问题] cmake project管理3rd party library

楼主: Mensholaten (REAL)   2020-12-24 01:22:16
目前在Linux环境下编写 cmake project (corss compile)
会用到的3rd party library是采用事先下载好source code和自己的code同时编译
有点苦恼的地方是 不知道该如何用正规作法将library的路径导入至自己的project
目录结构大概类似这样
root
作者: Lipraxde (Lipraxde)   2020-12-24 07:44:00
虽然不知道正不正规,不过可以用 add_subdirectory +EXCLUDE_FROM_ALL
作者: eye5002003 (下一夜)   2020-12-24 13:11:00
find_package就是唯一的"正规"做法了啊,其他的都是看你高兴,想怎么做就怎么做
作者: a971364285 (Zax)   2020-12-26 20:58:00
可以参考有名的开源专案,像是Blender 有 intern 跟 extern 两个资料夹。
作者: Killercat (杀人猫™)   2020-12-27 22:07:00
find_package门槛高 要看懂.cmake跟理解他原理并不容易但是说他是唯一正规做法这点并没有错 XD
作者: Lipraxde (Lipraxde)   2020-12-28 00:42:00
find_ package 有时后不太适用,要从原始码编的话 add_subdirectory 简单多了,反正 cmake 只要能找得到 target 就能动。
作者: dzwei (Cout<< *p << \n ;)   2020-12-31 18:39:00
如果算是常见的opensrc 我会建议用vcpkg当然 你也可以为你的3rd制作3rdConfig.cmake如果是简单阳春的3rdConfig.cmake 应该30行以内能搞定我之前参照opencv写的差不多这样。现在opencv官方写的OpencvConfig.cmake 已经百行了。但我也没再回去看现行版的OpencvConfig.cmake了

Links booklink

Contact Us: admin [ a t ] ucptt.com