从cmake执行make

时间:2014-09-14 00:45:57

标签: c++ makefile cmake clion

我最近开始学习cmake和make,我遇到了一个我无法解决的问题 我有两个项目,一个在IDE CLion中使用cmake的小型测试应用程序和一个使用make的库,我无法更改任何一个的构建系统。我想从cmake项目构建一个使用make的那个。库的make文件在它自己的工作正常。

这是项目布局:

project/CMakeLists.txt
project/libvz/Makefile
project/libvz/main.cpp

我尝试了以下内容:

的CMakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(builder)

add_custom_target("libvz"
                  "/usr/bin/make -f ${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

在这种情况下,我收到错误:" / bin / sh:/ usr / bin / make -f / home / szil / project / libvz / Makefile:没有这样的文件或目录"

我还尝试使用ExternalProject_Add和ExternalProject_Add_Step命令进行构建,但这两个命令都没有。

感谢任何帮助, THX!

1 个答案:

答案 0 :(得分:4)

您可能只需要避免将整个make命令包装在一组引号中。通过这样做,CMake正在寻找一个名为“/ usr / bin / make -f ...”的可执行文件。

add_custom_target(libvz
                  /usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

从表面上看,ExternalProject_Add听起来像是一个更好的工具 - 也许它的工作原理不一样吗?