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
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