Okay, I switched just the add_custom_target DEPENDS to the binary directory (but left the add_custom_command alone). That seems to be doing what I need. I think I'm still not fully understanding the reasoning behind it, but problem solved I guess.
Thanks, Eric On 6/30/14, Eric Wing <ewmail...@gmail.com> wrote: > Thanks for the reply. So the usage case is that people are going to be > modifying the resources in the source directory. (These changes have > to be checked into revision control.) So I'm having trouble seeing how > depending on the binary directory is going to work. (The reason I must > copy the resources to the binary directory is it is impossible to > launch the application through the debugger or otherwise.) > > Thanks, > Eric > > > On 6/30/14, Petr Kmoch <petr.km...@gmail.com> wrote: >> Hi Eric. >> >> It seems to me that you're copying from source dir to binary dir, but all >> dependencies are on the source dir file only. Therefore, there is nothing >> to trigger the generation of the binary-dir file. Perhaps you wanted >> 'fooresources' to depend on the binary-dir file instead? >> >> Petr >> >> >> On Mon, Jun 30, 2014 at 3:20 PM, Eric Wing <ewmail...@gmail.com> wrote: >> >>> I need to copy resource files from the source directory to the binary >>> directory with the creation of my executable. I want CMake's >>> dependency tracking to handle (re)copying these files whenever the >>> source has been touched. >>> >>> Looking at other similar questions like: >>> >>> http://stackoverflow.com/questions/17018477/cmake-adding-custom-resources-to-build-directory >>> and the CMake FAQ: How can I add a dependency to a source file which >>> is generated in a subdirectory? >>> http://www.cmake.org/Wiki/CMake_FAQ >>> >>> I expected the following (simplified) code to work, but it doesn't. I >>> see the add_custom_target processed in the make chain, but the >>> add_custom_command never triggers. >>> >>> >>> >>> project(foo) >>> >>> cmake_minimum_required(VERSION 2.8) >>> >>> add_executable(fooexe >>> ${CMAKE_SOURCE_DIR}/foo.c >>> ${CMAKE_SOURCE_DIR}/asset1.lua >>> # ${CMAKE_SOURCE_DIR}/subdir/subasset1.lua >>> ) >>> >>> add_custom_command( >>> OUTPUT "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INT}/asset1.lua" >>> COMMAND ${CMAKE_COMMAND} -E copy_if_different >>> "${CMAKE_SOURCE_DIR}/asset1.lua" >>> "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INT}/" >>> DEPENDS "${CMAKE_SOURCE_DIR}/asset1.lua" >>> COMMENT "Copying asset1.lua" >>> ) >>> >>> # files are only copied if a target depends on them >>> add_custom_target(fooresources ALL DEPENDS >>> "${CMAKE_SOURCE_DIR}/asset1.lua" >>> COMMENT "fooresources custom target" >>> ) >>> ADD_DEPENDENCIES(fooexe fooresources) >>> >>> >>> >>> Would somebody explain to me the correct way to handle this? >>> >>> >>> Thanks, >>> Eric >>> -- >>> >>> Powered by www.kitware.com >>> >>> Please keep messages on-topic and check the CMake FAQ at: >>> http://www.cmake.org/Wiki/CMake_FAQ >>> >>> Kitware offers various services to support the CMake community. For more >>> information on each offering, please visit: >>> >>> CMake Support: http://cmake.org/cmake/help/support.html >>> CMake Consulting: http://cmake.org/cmake/help/consulting.html >>> CMake Training Courses: http://cmake.org/cmake/help/training.html >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/cmake >>> >> > > > -- > Beginning iPhone Games Development > http://playcontrol.net/iphonegamebook/ > -- Beginning iPhone Games Development http://playcontrol.net/iphonegamebook/ -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake