CMake 子目录依赖处理
最近开发的一个项目依赖 libgeotiff,同时 libgeotiff 又依赖 libtiff,我将他们都加入 thirdparty 中,通过 add_subdirectory 添加进项目中。
- thirdparty
- CMakeLists.txt
- libgeotiff
- libtiff
1undefined最近开发的一个项目依赖 libgeotiff,同时 libgeotiff 又依赖 libtiff,我将他们都加入 thirdparty 中,通过 add_subdirectory 添加进项目中。
1undefined在 CMake 中,添加库目标时,如果不指定库的类型(STATIC,SHARED),则会根据变量 BUILD_SHARED_LIBS 的值来决定库的类型。
BUILD_SHARED_LIBS 为 ON 时默认构建动态库,OFF 时则默认构建静态库。
BUILD_SHARED_LIBS 自身的默认值通常为 ON。
通过 CMake 在项目中包含第三方库的源码时,如果直接包含,install 的时候会同时安装第三方库。如果不想安装第三方库,可以添加 EXCLUDE_FROM_ALL
1add_subdirectory(${目录} EXCLUDE_FROM_ALL)