Nic*_*aus 8 c++ makefile cmake
我正在尝试用Linux上的CMake构建一些外部项目ExternalProject_add.但是,他们不尊重make -j12命令,并发出警告:
‘warning: jobserver unavailable: using -j1. Add `+' to parent make rule.’
Run Code Online (Sandbox Code Playgroud)
这会让我的构建变得痛苦.有没有办法并行构建外部项目?这是一个示例项目:
include(ExternalProject)
ExternalProject_Add(
${TARGET_NAME}-ext
URL ${CMAKE_CURRENT_SOURCE_DIR}/xerces-c-${VERSION_XERCESC}.tar.gz
DOWNLOAD_DIR ${XERCESC_DIR}
SOURCE_DIR ${XERCESC_DIR}/src
PATCH_COMMAND chmod guo+rw ${CMAKE_CURRENT_SOURCE_DIR} -R
CONFIGURE_COMMAND ./configure --prefix=${XERCESC_DIR} --disable-shared -q --disable-network --enable-transcoder-gnuiconv --enable-msgloader-inmemory
BUILD_COMMAND make --silent
INSTALL_COMMAND make install
BUILD_IN_SOURCE 1
)
Run Code Online (Sandbox Code Playgroud)
Nic*_*aus 12
为了允许make命令正确地传播给他们的孩子,你需要使用$(MAKE)括号(而不是大括号)而不是make作为你的命令,即
BUILD_COMMAND $(MAKE) --silent
INSTALL_COMMAND $(MAKE) install
Run Code Online (Sandbox Code Playgroud)
从CMake版本2.8.4开始支持此功能.
| 归档时间: |
|
| 查看次数: |
6137 次 |
| 最近记录: |