[Cmake] use of cmake options in source code

Brad King brad . king at kitware . com
Thu, 28 Aug 2003 16:11:53 -0400 (EDT)


> Better option:
>
> Create file ClearConfig.h.in and put in something like:
>
> #cmakedefine CLEARR_HAS_VTK
>
> Then in your CMakeLists.txt after OPTION(CLEAR_HAS_VTK...)
>
> IF(CLEAR_HAS_VTK)
>   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ClearConfig.h.in
>     ${CMAKE_CURRENT_BINARY_DIR}/ClearConfig.h)
> ENDIF(CLEAR_HAS_VTK)
> INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})

This should be:

/* ClearConfig.h.in: */
#cmakedefine CLEAR_HAS_VTK

Then in your CMakeLists.txt after OPTION(CLEAR_HAS_VTK...)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ClearConfig.h.in
               ${CMAKE_CURRENT_BINARY_DIR}/ClearConfig.h)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})

The ClearConfig.h file must always be generated so it can be included.
If CLEAR_HAS_VTK is ON, the #cmakedefine will become a #define.  If it is
off, the #cmakedefine will become a comment.

-Brad