[CMake] How to duplicate a source file and rename it

Ke Gao ke.gao.ut at gmail.com
Fri Sep 21 18:24:07 EDT 2018


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?


On Fri, Sep 21, 2018 at 4:10 PM J Decker <d3ck0r at gmail.com> wrote:

>
>
> On Fri, Sep 21, 2018 at 3:00 PM Ke Gao <ke.gao.ut at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180921/81f18eb8/attachment-0001.html>


More information about the CMake mailing list