用makefile包装cmake构建

用makefile包装cmake构建,makefile,cmake,qnx,Makefile,Cmake,Qnx,我有一个现有的基于makefile的构建系统的项目,我想在其中添加现有的基于cmake的组件 集成cmake配置步骤的最佳方法是什么?作为一个$(shell)调用来计算某个变量?在每次调用时运行configure的 如何整合建筑本身?Just(MAKE)-C cmake build dir[targets]?cmake的目标是生成一个Makefile,因此我将使用以下内容: CMAKE_BUILD_DIR := some_dir CMAKE_SOURCE_DIR := some_src_dir

我有一个现有的基于makefile的构建系统的项目,我想在其中添加现有的基于cmake的组件

集成cmake配置步骤的最佳方法是什么?作为一个$(shell)调用来计算某个变量?在每次调用时运行configure的


如何整合建筑本身?Just(MAKE)-C cmake build dir[targets]?

cmake的目标是生成一个Makefile,因此我将使用以下内容:

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)
CMAKE\u BUILD\u DIR:=some\u DIR
CMAKE_SOURCE_DIR:=某些_src_DIR
$(CMAKE\u BUILD\u DIR)/Makefile:$(CMAKE\u SOURCE\u DIR)/CMakeLists.txt

cmake-S$(除了raspy answer之外,我还要将.PHONY添加到Makefile目标中:

.PHONY: $(CMAKE_BUILD_DIR)/Makefile
$(CMAKE_BUILD_DIR)/Makefile: $(CMAKE_SOURCE_DIR)/CMakeLists.txt
    cmake -S $(<D) -B $(@D)
.PHONY:$(CMAKE\u BUILD\u DIR)/Makefile
$(CMAKE\u BUILD\u DIR)/Makefile:$(CMAKE\u SOURCE\u DIR)/CMakeLists.txt

cmake-S$(可能对Makefile更好的依赖应该是“所有递归找到的CMakeLists.txt”?作为下面建议的.Phony的替代方法?确保子项目是最新的唯一方法是始终运行其Makefile。由于源代码更改,项目可能需要重建,不一定是CMakeLists.txt。生成Makefile后,始终调用make以确保完成所有需要完成的操作。啊,所以在第一次ge之后生成cmake已经将所有txt文件添加到依赖项中。我不会。这将导致项目在每个生成上重新配置,这是不必要的。cmake生成的生成文件自己对生成系统进行清理,并在调用
make
时重新配置。唯一需要此规则的时间是在没有生成文件时引导e仍然存在。