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 "${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 "${TestWorkingDir_BINARY_DIR}/$<1:genex>/"
)

add_dependencies(workinggenex CustomGenex)
