2009/9/21 Yegor Yefremov <[email protected]>:
> Hello,
>
> I use gengetopt to generate command line parser for my application. The 
> configuration file *.ggo also specifies programs version like this:
>
> # Name of your program
> package "hwtest" # don't use package if you're using automake
> # Version of your program
> version "1.2.1"   # don't use version if you're using automake
> ....
>
> I'd like to automatically extract these version numbers and assign them to
>
> CPACK_PACKAGE_VERSION_MAJOR, CPACK_PACKAGE_VERSION_MINOR and 
> CPACK_PACKAGE_VERSION_PATCH
>
> What were the best solution for my problem?

I would say that the simplest solution is to keep those number in your
CMakeLists.txt
and use CONFIGURE_FILE(yourfile.ggo.in yourfile.ggo @ONLY)

yourfile.ggo.in could then contain:

# Name of your program
package "hwtest" # don't use package if you're using automake
# Version of your program
version 
"@package_version_ma...@.@package_version_mi...@.@PACKAGE_VERSION_PATCH@"
  # don't use version if you're using automake

or even
# Name of your program
package "hwtest" # don't use package if you're using automake
# Version of your program
version @PACKAGE_VERSION@  # don't use version if you're using automake

alternatively you can use a config.h which contains a VERSION macro
and compile your gengetopt generated C files with
-DHAVE_CONFIG_H=1

(just add ADD_DEFINITION(-DHAVE_CONFIG_H=1) to your CMakeLists.txt)

in this second case YOU MUST NOT define version inside *.ggo because
the VERSION will comes from config.h.

I use the latter method because it was the method used by our previous
autotools build system. Choosing between those 2 is a matter of taste.

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