我有一个CMakeLists.txt,它有一个ExternalProject_Add()。在ExternalProject_Add()中,我有一个调用bash脚本的BUILD_COMMAND。然后该脚本将继续调用make。
除了在尝试使用并行make时我看到以下警告时,一切都正常工作:
warning: jobserver unavailable: using -j1. Add `+' to parent make rule
在普通的Makefile中,如果你想调用一个调用make的bash脚本,你需要添加一个' +'在调用bash脚本之前,让子进程可以与父进程通信。 E.g:
all:
+ ./run.sh
所以我试图用CMake完成同样的工作并且没有这样做。
目前,我的构建命令如下所示:
BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/install.sh
在生成的build.make中,相关位看起来像这样:
torch/src/stamp/foo-build: torch/src/stamp/foo-configure
...
cd ... && .../install.sh
如果我手动更新build.make以添加' +'在' cd之前...'然后一切似乎都很好。所以我试图找出一种方法来告诉CMake它需要为' +'添加前缀。在它发出之前......'。反正有吗?