On Fri, Sep 21, 2018 at 3:29 PM J Decker <d3c...@gmail.com> wrote: > > > On Fri, Sep 21, 2018 at 3:24 PM Ke Gao <ke.gao...@gmail.com> wrote: > >> Thanks. I forgot to say my CMakeList.txt is not located together with the >> source files. So I used the following, it seems not working: >> add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../../aaa_file.c >> DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../ >> file.c >> COMMAND ${CMAKE_COMMAND} -E copy_if_different >> ${CMAKE_CURRENT_SOURCE_DIR}/../../file.c >> ${CMAKE_CURRENT_SOURCE_DIR}/../../aaa_file.c >> ) >> Is there an easier way to do this? >> > not really... > NOt sure why it wouldn't work unless current_source_dir isn't what you > think it is. > I actually copy mine into >
It also wouldn't work if you didn't use ${CMAKE_CURRENT_SORUCE_DIR}/../../aaa_file.c in another target. (and by the same path... which is partially why I copy into BINARY_DIR, then it's in a known place for all projects int he tree > > > COMMAND ${CMAKE_COMMAND} -E copy_if_different > ${SOURCE} ${CMAKE_BINARY_DIR}/${BASENAME} > > (basename is the path part of the ${SOURCE}) > >> >> >> On Fri, Sep 21, 2018 at 4:10 PM J Decker <d3c...@gmail.com> wrote: >> >>> >>> >>> On Fri, Sep 21, 2018 at 3:00 PM Ke Gao <ke.gao...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> In a project, I need to first duplicate a source file and rename it. >>>> For example, I want to change "file.c" to "aaa_file.c", and after >>>> compiling, I will delete it. This is similar to using "cp file.c >>>> aaa_file.c". How to easily do this in CMake? I found "file" command doesn't >>>> work well for this. >>>> >>>> >>> add_custom_command( OUTPUT aaa_file.c >>> DEPENDS file.c >>> COMMAND ${CMAKE_COMMAND} -E copy_if_different >>> file.c aaa_file.c >>> ) >>> >>> then you just have to reference the source file 'aaa_file.c' and it will >>> get updated if file.c is different. I also do >>> COMMAND ${CMAKE_COMMAND} -E touch aaa_file.c >>> >>> just to make sure it is new. >>> >>> >>> >>>> Thank you very much. >>>> >>>> -- >>>> >>>> .............................................................................................................................................. >>>> Ke Gao >>>> -- >>>> >>>> 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: >>>> https://cmake.org/mailman/listinfo/cmake >>>> >>> -- >>> >>> 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: >>> https://cmake.org/mailman/listinfo/cmake >>> >> >> >> -- >> >> .............................................................................................................................................. >> Ke Gao >> >
-- 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: https://cmake.org/mailman/listinfo/cmake