首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake无法在build_command中正确运行ExternalProject_Add

cmake无法在build_command中正确运行ExternalProject_Add
EN

Stack Overflow用户
提问于 2014-07-01 21:24:31
回答 1查看 5.8K关注 0票数 5

我只想下载一个via cmake的git存储库,并将源文件夹复制到其他地方。下面是一个最小的工作示例:

代码语言:javascript
复制
cmake_minimum_required (VERSION 2.8)
project ("myProject")
include(ExternalProject)

# Download and copy the repository
set(PROJECT_NAME_CHIBIOS "ChibiOS")
ExternalProject_Add(${PROJECT_NAME_CHIBIOS}
                    PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_CHIBIOS}-Download
                    GIT_REPOSITORY https://github.com/ChibiOS/ChibiOS-RT.git
                    GIT_TAG b440caa10ced9532a467e4cbb96e1b3f0b99060a
                    CONFIGURE_COMMAND ""
                    BUILD_COMMAND "${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_CHIBIOS}"
                    UPDATE_COMMAND ""
                    INSTALL_COMMAND ""
                    LOG_DOWNLOAD 1
                    LOG_UPDATE 1
                    LOG_CONFIGURE 1
                    LOG_BUILD 1
                    LOG_TEST 1
                    LOG_INSTALL 1
                  )

除了BUILD_COMMAND中的copy命令之外,所有东西都可以从框内运行。make刚刚说:

代码语言:javascript
复制
Scanning dependencies of target ChibiOS
[ 12%] Creating directories for 'ChibiOS'
[ 25%] Performing download step (git clone) for 'ChibiOS'
-- ChibiOS download command succeeded.  See also /tmp/ChibiOS-Download/src/ChibiOS-stamp/ChibiOS-download-*.log

[ 37%] No patch step for 'ChibiOS'
[ 50%] No update step for 'ChibiOS'
[ 62%] No configure step for 'ChibiOS'
[ 75%] Performing build step for 'ChibiOS'
CMake Error at /tmp/ChibiOS-Download/src/ChibiOS-stamp/ChibiOS-build.cmake:16 (message):
  Command failed: No such file or directory

  '/usr/bin/cmake -E copy_directory /tmp/ChibiOS-Download/src/ChibiOS /tmp/ChibiOS' 

但是,如果我将/usr/bin/cmake -E copy_directory /tmp/ChibiOS-Download/src/ChibiOS /tmp/ChibiOS复制到shell中,它会在之后工作。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 23:44:42

对于您的BUILD_COMMAND,您已经用引号包装了整个命令,因此CMake将其视为一个参数。

您只需要删除引号就可以让CMake将其解析为一个带有4个参数的命令:

代码语言:javascript
复制
...
BUILD_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_CHIBIOS}
...
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24519499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档