我想创建一个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"'
我认为这是不恰当的引用。
我尝试了许多技巧,但我不能让命令工作。有什么想法吗?
发布于 2016-12-12 21:43:56
双引号可防止字符串被拆分。我还将至少将${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
配置看起来有点可疑,因为它一直在抱怨编译器错误报告:
静态$./
-arch --archs="-arch x86_64“
寻找gcc..。
编译器错误报告对于./configure (可能删除-Werror)来说太苛刻了。
** ./配置中止。
相关问题:
cmake: How to include literal double-quote in custom command?
https://stackoverflow.com/questions/41099029
复制相似问题