避免cMake重建/编译子项目(库)

时间:2016-12-15 10:54:01

标签: c++ cmake project

我有一堆C ++源文件和静态库,形成框架F 。为了使用它,我创建了一个main_A.cpp和一些cMake文件,它们创建了一个可执行文件并成功运行(项目A )。

现在我为项目B使用不同的main_B.cpp 。为此,我创建了一个自己的cMakeLists.txt,例如一个不同的可执行文件名,它引用框架F

的config.cmake文件
framework F (global config.cmake)  
|  
|___ project A   
|  
|___ project B (own cMakeLists.txt)  

当我在项目A 之后编译项目B 时,框架F 中的所有文件都会被重新编译,这需要很长时间且不必要。

如何在使用不同的项目时让cMake检测到框架F已被编译?

方法:创建静态库,并将它们编译到公共文件夹(lib)中:

add_library( framework STATIC ${SRC_FILES} )
set_target_properties( framework PROPERTIES LIBRARY_OUTPUT_DIRECTORY /lib)

库被编译并放入/ lib但是当我编译项目B 时,所有内容都会被重新编译。

0 个答案:

没有答案