Команда add_custom_com для копирования файлов заголовков не работает - PullRequest
0 голосов
/ 26 мая 2018

Это древовидный формат моего проекта:

├── cmake       
│  └── CopyHeaderFiles.cmake    
├── CMakeLists.txt   
├── common   
│   ├── CMakeLists.txt   
│   ├── Headers   
│   │   ├── CMakeLists.txt       
│   │   ├── criticalmessage.h        
│   └── Src    
│       ├── CMakeLists.txt   
│       ├── criticalmessage.cpp     
├── includes    
│   └── CMakeLists.txt    
├── main.cpp    

Как вы видите, у меня есть модуль (общий) в моем проекте, моя цель - скопировать файл всех заголовков из PROJECT_SOURCE_DIR / common / Headers в PROJECT_BINARY_DIR/ включает в себя add_custom_command.
это часто встречается / CMakeLists.txt

    cmake_minimum_required (VERSION 3.0)
    set(MODULE_NAME common)
    add_subdirectory(Headers)
    add_subdirectory(Src)
    include(${PROJECT_SOURCE_DIR}/cmake/CopyHeaderFiles.cmake) 
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lpthread")
    include_directories("${CMAKE_SOURCE_DIR}/common/Headers" )
    add_library(${MODULE_NAME} STATIC ${SRC_LIST} ${INCLUDE_LIST})
    set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

And content of cmake/HeaderFiles.cmake:

foreach( headerfile ${INCLUDE_LIST})

    add_custom_command(
        OUTPUT ${headerfile}
        COMMAND ${CMAKE_COMMAND} -E copy    
        "${PROJECT_SOURCE_DIR}/${MODULE_NAME}/Headers/${headerfile}"        
        "${PROJECT_BINARY_DIR}/includes"    
         )

endforeach( headerfile )

Но во включаемом каталоге нет файлов, и он всегда будет пустым после сборки моего проекта.
Где я ошибаюсь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...