In my configure.h.in file I have:

#cmakedefine TEST_VAR_VALUE

In my CMakeLists.txt file I have:

configure_file( ${PROJECT_SOURCE_DIR}/src/config.h.in $ {PROJECT_SOURCE_DIR}/src/configure.h )
set( TEST_VAR_VALUE  "0" )

This results in a configure.h file containing:
/* #undef TEST_VAR_VALUE */

But what I would like is:
#define TEST_VAR_VALUE 0


So basically cmake is seeing the value of TEST_VAR_VALUE as 0 and treating it as "false" rather than a value.

Any ideas how to accomplish this?

James



Use the (undocumented) #cmakedefine01.

I already submitted a patch, and the documentation has been fixed in CVS.

Michael


Thanks!  That did it.


Okay - I spoke too soon.  It gave me a partial solution.

What if I want to have something like
#define TEST_VAR_VALUE 5

In the .in file:
#cmakedefine TEST_VAR_VALUE ${TEST_VAR_VALUE}
doesn't work (for reasons mentioned above)

However,
#cmakedefine01 TEST_VAR_VALUE ${TEST_VAR_VALUE}
results in
#define TEST_VAR_VALUE 5 1
if I have
set( TEST_VAR_VALUE 5 )
in my CMakeLists.txt file.

Can I get rid of the trailing value?


Aah, now I see what you want...

#define TEST_VAR_VALUE ${TEST_VAR_VALUE}

is what you want.


But if I do
  set( TEST_VAR_VALUE 0 )
then this results in TEST_VAR_VALUE being undefined rather than having the value of 0 as I want. If the value is anything other than zero it works. This is what I tried to explain in my original (probably unclear) post...

_______________________________________________
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