Amazon web services cmake文件中cmake命令的分号分隔列表
我正在我的应用程序中构建amazon的aws sdk cpp。因此,我从Amazon web services cmake文件中cmake命令的分号分隔列表,amazon-web-services,cmake,aws-sdk,Amazon Web Services,Cmake,Aws Sdk,我正在我的应用程序中构建amazon的aws sdk cpp。因此,我从awsdkcpp.tar.gz文件中提取内容,并作为ExternalProject运行 ExternalProject_Add(awssdk PREFIX DIR URL ${CMAKE_CURRENT_SOURCE_DIR}/${AWS_SDK_SRC_TAR} BUILD_COMMAND ${CMAKE_COMMAND} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD
awsdkcpp.tar.gz
文件中提取内容,并作为ExternalProject运行
ExternalProject_Add(awssdk
PREFIX DIR
URL ${CMAKE_CURRENT_SOURCE_DIR}/${AWS_SDK_SRC_TAR}
BUILD_COMMAND ${CMAKE_COMMAND} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY='dynamodb;kenisis' -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall/${CMAKE_INSTALL_PREFIX} -DENABLE_TESTING=OFF ${CMAKE_BINARY_DIR}/source
但是,当我通过
-DBUILD_ONLY='dynamodb;kenisis’
(由aws cmake文件支持),生成失败。如果我通过了-DBUILD\u ONLY=dynamodb
,则只生成与dynamodb相关的目标。但我也需要相关的目标。如何在ExternalProject_Add中传递分号分隔的列表。我自己做了一些测试-包括@usr1234567注释中的提示-我成功地运行了以下命令(为了更容易重复,我在示例中添加了Git地址):
笨拙的双反斜杠是必要的,因为ExternalProject\u Add()
备选方案
一种更通用的方法是使用$
生成器表达式,如下所示:
ExternalProject_Add(
awssdk
PREFIX DIR
GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_ONLY=dynamodb$<SEMICOLON>kinesis
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
-DENABLE_TESTING=OFF
)
ExternalProject\u添加(
awssdk
前缀目录
GIT_存储库https://github.com/aws/aws-sdk-cpp.git
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_ONLY=dynamodb$kinesis
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
-可变性_测试=关闭
)
出于演示目的,我还在这里使用另一种传递参数的方式。您是否只是键入了它,因为它应该是运动
,当然?请尝试使用双引号。有关CMake命令行中单引号/双引号问题的更多详细信息,请参见,例如,您是否尝试过\代码>?是的,弗洛里安,我试过用双引号。但是错误是add\u子目录给定的源“aws cpp sdk-”dynamodb”,它不是一个现有的目录。
因此,它没有搜索aws cpp sdk dynamodb
,而是搜索aws cpp sdk-”dynamodb
。我已经尝试了\”
(错误:如上注释所述)和\
(错误:无效的转义序列\')。
ExternalProject_Add(
awssdk
PREFIX DIR
GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git
CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_ONLY=dynamodb$<SEMICOLON>kinesis
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Ext/Aws/CtcInstall
-DENABLE_TESTING=OFF
)