2014-07-01 18 views
5

Sadece cmake aracılığıyla bir git depo indirmek istiyorum ve başka bir yerde kaynak klasörünü kopyalayın. İşte minimal çalışma örneği: kutudan BUILD_COMMAND çalışmalarında kopya komutu ancakcmake çalıştırmak alışkanlık build_command ExternalProject_Add doğru

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 
       ) 

her şey.

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' 

Ama kabuk haline /usr/bin/cmake -E copy_directory /tmp/ChibiOS-Download/src/ChibiOS /tmp/ChibiOS kopyalamak, eğer sonradan çalışır: make sadece diyor.

Neyi yanlış yapıyorum?

cevap

5

BUILD_COMMAND için, tüm komutu tırnak içine aldınız, böylece CMake bunu tek bir argüman olarak görüyor.

... 
BUILD_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME_CHIBIOS} 
... 
+0

Sadece bu basit:

Sadece CKağıt 4 bağımsız değişken içeren bir komut olarak bu sorunu çözmek için izin vermek tırnak kaldırmak gerekir. Harikasın! Teşekkürler – Tik0