It just can't copy to the same source directory. On Fri, Sep 21, 2018 at 4:32 PM J Decker <d3c...@gmail.com> wrote:
> > > 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 >>> >> -- .............................................................................................................................................. 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