【发布时间】:2016-01-16 00:24:21
【问题描述】:
在我的项目中使用一堆不同的库(来自 GitHub 源,未预编译),我将它们添加到我的目标中,就像这样在我的根 CMakeLists.txt 文件中:
add_subdirectory(lib/glew-1.13.0/build/cmake)
include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/lib/glew-1.13.0/include/)
...
target_link_libraries(MyApp glew ${GLEW_LIBRARIES} ... )
但是,您可以从下面的屏幕截图中看到,Xcode 在我的项目中包含了这些库的所有源代码,这使得我必须滚动浏览才能找到 my 代码的列表非常长。
我在add_subdirectory 命令中尝试了EXCLUDE_FROM_ALL 标志,该标志从我的Xcode 项目中删除了库源,但是我无法编译我的项目,因为Xcode 根本不编译库。
此外,Xcode 会从库中向我发出大量警告,而我并不真正关心这些警告。将SYSTEM 标志与include_directories 命令一起使用并不能修复它。
解决这个问题的最佳方法是什么?我应该将我的库作为构建过程的一个完全独立的部分进行编译,而不是与我的可执行文件一起编译吗?
【问题讨论】:
-
使用 externalproject_add 构建外部项目。 cmake.org/cmake/help/v3.4/module/ExternalProject.html
标签: c++ xcode compilation cmake