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

Reply via email to