[CMake] configure_file - false vs "0"

James C. Sutherland James.Sutherland at utah.edu
Sun Aug 9 12:39:58 EDT 2009


On Aug 9, 2009, at 10:33 AM, James C. Sutherland wrote:

>
> On Aug 9, 2009, at 10:20 AM, Michael Wild wrote:
>
>>
>> On 9. Aug, 2009, at 18:06, James C. Sutherland wrote:
>>
>>> 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?


More information about the CMake mailing list