Hi,

for a generated version header I need to convert a given hex to an integer. I've wrote:

set(RELEASE_LEVEL_ALPHA 0xA)    # For internal use
set(RELEASE_LEVEL_BETA  0xB)    # For internal use
set(RELEASE_LEVEL_GAMMA 0xC)    # For release candidates
set(RELEASE_LEVEL_FINAL 0xF)    # For final release

set(VERSION_MAJOR 0)
set(VERSION_MINOR 1)
set(VERSION_MICRO 0)
set(RELEASE_LEVEL ${RELEASE_LEVEL_ALPHA})
set(RELEASE_SERIAL 0)

in CMakeLists.txt and in version.h.cmake:

    enum {
        MAJOR          = (@VERSION_MAJOR@ << 24),
        MINOR          = (@VERSION_MINOR@ << 16),
        MICRO          = (@VERSION_MICRO@ <<  8),
        RELEASE_LEVEL  = (@RELEASE_LEVEL@ <<  4),
        RELEASE_SERIAL = (@RELEASE_SERIAL@ <<  0),
VERSION = MAJOR | MINOR | MICRO | RELEASE_LEVEL | RELEASE_SERIAL
    };

which results into:

    enum {
        MAJOR          = (0 << 24),
        MINOR          = (1 << 16),
        MICRO          = (0 <<  8),
        RELEASE_LEVEL  = (0xA <<  4),
        RELEASE_SERIAL = (0 <<  0),
VERSION = MAJOR | MINOR | MICRO | RELEASE_LEVEL | RELEASE_SERIAL
    };

The 0xA doesn't compile.

Thanks,
Olaf
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to