Joh*_*ker 4 c++ makefile cmake
我刚刚开始使用 cmake,我已经阅读了一些教程并得到了基本的工作。
然而,目前我的 CMakesList.txt 生成一个 Makefile,其中每个 .cpp 都明确命名。这意味着,每当我向项目添加新的 .cpp 时,我都需要重新运行 cmake,然后才能进行 make。虽然这不是什么大问题,但仍然有点烦人。
由于Makefiles可以做类似的事情SOURCES=*.cpp,我想可能有一种方法可以告诉cmake用这样的规则生成Makefile!?
我知道我能做到
cmake_minimum_required(VERSION 2.8)
file(GLOB SRC
"*.h"
"*.cpp"
)
add_executable(main ${SRC})
Run Code Online (Sandbox Code Playgroud)
但我仍然必须重新运行 cmake。
据我所知,这样做的方法就像你所说的那样,缺点是你每次添加文件时都必须运行cmake。
为了克服这个问题,我通常要做的就是创建一个也调用 cmake 的自定义目标。事情是这样的
ADD_CUSTOM_TARGET(update
COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
COMMENT "Cmake and build"
)
Run Code Online (Sandbox Code Playgroud)
有了这个,你可以调用它make update,它会首先调用 cmake 来捕获所有文件,然后启动构建过程。