| cmake_minimum_required (VERSION 2.6) |
| project(TestWorkingDir) |
| |
| add_custom_command( |
| OUTPUT "${TestWorkingDir_BINARY_DIR}/working.c" |
| COMMAND "${CMAKE_COMMAND}" -E copy ./working.c.in "${TestWorkingDir_BINARY_DIR}/working.c" |
| WORKING_DIRECTORY "${TestWorkingDir_SOURCE_DIR}" |
| COMMENT "custom command" |
| ) |
| |
| set_source_files_properties( |
| "${TestWorkingDir_BINARY_DIR}/customTarget1.c" |
| "${TestWorkingDir_BINARY_DIR}/customTarget2.c" |
| PROPERTIES GENERATED 1) |
| |
| add_executable(working "${TestWorkingDir_BINARY_DIR}/working.c" |
| "${TestWorkingDir_BINARY_DIR}/customTarget1.c") |
| |
| add_custom_target( |
| Custom ALL |
| COMMAND "${CMAKE_COMMAND}" -E copy_if_different ./customTarget.c "${TestWorkingDir_BINARY_DIR}/customTarget1.c" |
| BYPRODUCTS "${TestWorkingDir_BINARY_DIR}/customTarget1.c" |
| WORKING_DIRECTORY "${TestWorkingDir_SOURCE_DIR}" |
| ) |
| |
| add_dependencies(working Custom) |
| |
| file(MAKE_DIRECTORY ${TestWorkingDir_BINARY_DIR}/work) |
| add_custom_command( |
| OUTPUT working2.c # Relative to build tree |
| COMMAND "${CMAKE_COMMAND}" -E copy ${TestWorkingDir_SOURCE_DIR}/working.c.in ../working2.c |
| DEPENDS ${TestWorkingDir_SOURCE_DIR}/working.c.in/ # trailing slash should be removed |
| WORKING_DIRECTORY work/ # Relative to build tree, trailing slash |
| ) |
| add_executable(working2 working2.c ${TestWorkingDir_BINARY_DIR}/customTarget2.c) |
| |
| add_custom_target( |
| Custom2 ALL |
| COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${TestWorkingDir_SOURCE_DIR}/customTarget.c ../customTarget2.c |
| BYPRODUCTS "${TestWorkingDir_BINARY_DIR}/customTarget2.c" |
| WORKING_DIRECTORY work/ # Relative to build tree, trailing slash |
| ) |
| |
| add_dependencies(working2 Custom2) |
| |
| file(MAKE_DIRECTORY ${TestWorkingDir_BINARY_DIR}/genex) |
| add_custom_command( |
| OUTPUT "${TestWorkingDir_BINARY_DIR}/genex/working.c" |
| COMMAND "${CMAKE_COMMAND}" -E copy "${TestWorkingDir_SOURCE_DIR}/working.c.in" "${TestWorkingDir_BINARY_DIR}/genex/working.c" |
| WORKING_DIRECTORY "$<0:not_used/>${TestWorkingDir_BINARY_DIR}/$<1:genex>/" |
| COMMENT "custom command" |
| ) |
| |
| add_executable(workinggenex "${TestWorkingDir_BINARY_DIR}/genex/working.c" |
| "${TestWorkingDir_BINARY_DIR}/genex/customTarget.c") |
| |
| add_custom_target( |
| CustomGenex ALL |
| COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${TestWorkingDir_SOURCE_DIR}/customTarget.c" "${TestWorkingDir_BINARY_DIR}/genex/customTarget.c" |
| BYPRODUCTS "${TestWorkingDir_BINARY_DIR}/genex/customTarget.c" |
| WORKING_DIRECTORY "$<0:not_used/>${TestWorkingDir_BINARY_DIR}/$<1:genex>/" |
| ) |
| |
| add_dependencies(workinggenex CustomGenex) |