Hello:

If my app requires relinking, then at link time
I would like to capture the current date and time and place it
in a last-minute source file which is linked with the application.
Following is my attempt at this with CMake.

The problems I can see are:
1 - It is not portable as it uses the OS date command.
2 - It is not portable as it calls gcc directly.
3 - It will not work with Debug or Release builds unless
    I set additional target LINK_FLAGS_<type> properties.
4 - I wish the creation of the link_date.cc file could be
    done inline of the add_custom_command instead of requiring
    a separate file. (I got into quoting hell.)
5 - Sneaking link_date.o onto the link line with the LINK_FLAGS
    property is kind of a hack.

Suggestions please.

Thanks in advance.

Bill

-------------------- CMake code --------------

# Note that this is a simplified version of the real thing
# and may contain syntax errors.

add_executable( myapp myapp.cc  )
target_link_libraries( myapp lib1 lib2 )
set_target_properties( myapp PROPERTIES LINK_FLAGS link_date.o )

add_custom_command(
    TARGET myapp PRE_LINK
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create_link_date
    COMMAND gcc -m32 -c -I${UTILDIR} link_date.cc
    COMMENT "Make the link_date file"
    VERBATIM
)

------------- Contents of create_link_date ----------

#!/bin/csh

echo 'const char *link_date() { return("'`date`'"); }' > link_date.cc

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to