Eric Noulard schrieb:
2009/6/15 Jean-Pierre Bergamin <ja...@ractive.ch>:
Hello Eric

2009/6/15 Jean-Pierre Bergamin <ja...@ractive.ch>:
Hello cmake users

I want to put the current subversion revision into a script every time I run "make 
install".
Currently, I use configure_file() to replace a variable in the script, but this only 
updates the script when either the script or something in CMakeLists.txt changes. Is 
there a way to update the script every time I run "make install"?
Did you try with
install([[SCRIPT <file>] [CODE <code>]] [...])

using this you may execute a CMake script at install time.
Good idea. This may lead to what I'm looking for. My svn_revision.cmake
script now looks like this:

find_package(Subversion)
if(Subversion_FOUND)
       Subversion_WC_INFO(${ER_SOURCE_DIR} ER)
       set(REVISION ${ER_WC_REVISION})
       configure_file(${ER_SOURCE_DIR}/scripts/version.sh.in
${ER_SOURCE_DIR}/scripts/version.sh @ONLY)
endif(Subversion_FOUND)

It is invoked in CMakeLists.txt with "install(SCRIPT svn_revision.cmake)".
The only problem I have now is that ${ER_SOURCE_DIR} is not defined in the
external script. Is there a way to pass arguments to this svn_revision.cmake
script?

I don't know if you can pass arguments. But I personnally do it in another way
using configure_file + install(script like this:

CONFIGURE_FILE(svn_revision.cmake.in svn_revision.cmake @ONLY)
INSTALL(SCRIPT ${CMAKE_BINARY_DIR}/svn_revision.cmake)

Now the content of "svn_revision.cmake.in" should be something like:

find_package(Subversion)
if(Subversion_FOUND)
        Subversion_WC_INFO(@ER_SOURCE_DIR@ ER)
        set(REVISION @ER_WC_REVISION@)
        configure_file(@ER_SOURCE_DIR@/scripts/version.sh.in
                                 @ER_SOURCE_DIR@/scripts/version.sh @ONLY)
endif(Subversion_FOUND)
Ah great! I didn't think of the possibility to let cmake change a cmake skript on the fly. It works perfectly.


Thank you very much for your help

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