2010/6/9 Aby Louw <[email protected]>:
> Hi,
>
> I have a Linux project that reads an initialization file on startup to
> get some file names and variables.
>
> When doing an in-source or out of source build, I generate the
> initialization file in the CMAKE_BINARY_DIR and then also generate the C
> file that reads this file so that I know the correct path.
>
> Now when doing a "make install" I want to install the initialization
> file on the /etc path. Therefore the initialization file path in the C
> file needs to be updated. However I do not know how to recompile the C
> target before installation happens.
Looks odd to bury some config into a compiled C-file.
If the C file contains some "actual installation path" It may be easier for this
executable/function to lookup **at runtime** its actual install path...
If this C file is "reading" some config file may be you can add
some primitive search path mechanism,
1) look in "."
2) look in "${CMAKE_INSTALL_PREFIX}/...." --> you must be doing
something like that now
3) use some environment var prefix
getenv(HOME)/... --> using HOME env var
getenv(MYSW_PATH)/.... --> using specific env var
then during devel you may setup MYSW_PATH as you want
and then when installed ${CMAKE_INSTALL_PREFIX}/ will be used
provided 3) as a higher priority than 2)
> I need something like a pre install or, add_dependency to install
> target, but as far as I know this is not possible. Does anybody know of
> a workaround to this problem?
install(CODE ...
or
install(SCRIPT ...
may help you to execute extra CMake action at install time.
However I would rather use some "search path" mechanism.
--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
_______________________________________________
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