我有一个基于makefile的项目构建系统,现在想要添加一个已有的cmake组件。
最佳的集成cmake配置步骤的方法是什么?可以使用$(shell ) 调用来评估某些变量吗?这将在每次调用时运行configure...
如何集成构建本身?只需(MAKE) -C cmake-build-dir [targets]即可?
CMAKE_BUILD_DIR := some_dir
CMAKE_SOURCE_DIR := some_src_dir
$(CMAKE_BUILD_DIR)/Makefile: $(CMAKE_SOURCE_DIR)/CMakeLists.txt
cmake -S $(<D) -B $(@D)
.PHONY: $(CMAKE_BUILD_DIR)/built_executable_or_library # to allow CMake's make check the build
$(CMAKE_BUILD_DIR)/built_executable_or_library: $(CMAKE_BUILD_DIR)/Makefile
$(MAKE) -C $(@D) $(@F)
当Makefile不存在时,这将调用CMake配置步骤并直接运行make
来构建所需的内容(可能需要根据需要适应调用的目标)。 CMake生成的Makefile会检查生成的构建系统本身,因此将根据需要重新配置。
.PHONY: $(CMAKE_BUILD_DIR)/Makefile
$(CMAKE_BUILD_DIR)/Makefile: $(CMAKE_SOURCE_DIR)/CMakeLists.txt
cmake -S $(<D) -B $(@D)
由于Makefile文件已经存在,并且其依赖关系没有改变,除非我们将Makefile视为始终过时,否则在更改源代码时不会执行任何操作。