如何在 externalproject_add 中设置命令参数
How to set command argument in externalproject_add
我想创建一个 cmake 脚本来在我的项目中自动构建 zlib。
我加了
externalproject_add(zlib
PREFIX .
# download step
GIT_REPOSITORY git@github.com:madler/zlib.git
GIT_TAG v1.2.8
# configure step
SOURCE_DIR zlib
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure --archs="-arch ${ARCH}" --static
# build step
BUILD_COMMAND make
BUILD_IN_SOURCE 1
# install step
INSTALL_DIR zlib-${ARCH}
INSTALL_COMMAND make install
# logging
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
但是它生成的配置命令是这样的:
'/Users/david/Documents/cmake_projects/build/zlib/zlib/configure' '--archs=' '-arch' 'x86_64"' '--static"'
我认为引用不当。
我尝试了很多技巧,但我无法让命令工作。有什么想法吗?
双引号防止字符串被拆分。我还将至少 ${ARCH_PARAMS}
参数分离到单独的变量中,所以,你会有这样的东西:
set(ARCH_PARAMS "--archs='-arch ${ARCH}'")
...
...
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure ${ARCH_PARAMS} --static
所以,它会这样通过:
'/tmp/so_test/build/zlib/zlib/configure' '--archs='-arch x64_86'' '--static'
旁注,zlib
配置接缝有点可疑,因为它一直抱怨编译器错误报告:
$ ./configure --static --archs="-arch x86_64"
Checking for gcc...
Compiler error reporting is too harsh for ./configure (perhaps remove -Werror).
** ./configure aborting.
相关问题:
我想创建一个 cmake 脚本来在我的项目中自动构建 zlib。
我加了
externalproject_add(zlib
PREFIX .
# download step
GIT_REPOSITORY git@github.com:madler/zlib.git
GIT_TAG v1.2.8
# configure step
SOURCE_DIR zlib
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure --archs="-arch ${ARCH}" --static
# build step
BUILD_COMMAND make
BUILD_IN_SOURCE 1
# install step
INSTALL_DIR zlib-${ARCH}
INSTALL_COMMAND make install
# logging
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
但是它生成的配置命令是这样的:
'/Users/david/Documents/cmake_projects/build/zlib/zlib/configure' '--archs=' '-arch' 'x86_64"' '--static"'
我认为引用不当。
我尝试了很多技巧,但我无法让命令工作。有什么想法吗?
双引号防止字符串被拆分。我还将至少 ${ARCH_PARAMS}
参数分离到单独的变量中,所以,你会有这样的东西:
set(ARCH_PARAMS "--archs='-arch ${ARCH}'")
...
...
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure ${ARCH_PARAMS} --static
所以,它会这样通过:
'/tmp/so_test/build/zlib/zlib/configure' '--archs='-arch x64_86'' '--static'
旁注,zlib
配置接缝有点可疑,因为它一直抱怨编译器错误报告:
$ ./configure --static --archs="-arch x86_64"
Checking for gcc...
Compiler error reporting is too harsh for ./configure (perhaps remove -Werror).
** ./configure aborting.
相关问题: