[CMake] #cmakedefine and the #if vs #ifdef argument

Mike Jackson mike.jackson at bluequartz.net
Thu Jun 11 22:40:51 EDT 2009


in your cmakelists.txt files use the following:

set (VAR_THAT_IS_ON 1)
set (VAR_THAT_IS_OFF 0)

instead of TRUE or FALSE. Means the same thing plus your configured
files will "just work".

Mike

On Thu, Jun 11, 2009 at 5:32 PM, Hostile Fork<hostilefork at gmail.com> wrote:
> Hello list!
>
> As a learning exercise, I am adding CMake and CTest to a small open-source
> library I made which currently has no build system:
>
>        http://hostilefork.com/nstate/
>        http://hostilefork.com/nocycle/
>
> For the first step, I have been applying the "configure_file" methodology to
> this header:
>
>
>  http://github.com/hostilefork/nocycle/blob/1ac238aea7af9e02f3a49f0c7eb991074c8eb3fd/NocycleSettings.hpp
>
> ( Following these directions:
> http://www.vtk.org/Wiki/CMake_HowToDoPlatformChecks )
>
> It seems the #cmakedefine lines are replaced with one of these two cases:
>
>        #define VAR_THAT_IS_ON
>        /* #undef VAR_THAT_IS_OFF */
>
> However... in the past I have been persuaded by the argument that the use of
> #if is superior to #ifdef for conditional compilation.  ( Roddy's comment
> here on StackOverflow summarizes the advantages pretty well:
> http://stackoverflow.com/questions/135069/ifdef-vs-if-which-is-bettersafer )
>
> Is it possible to get CMake to produce something more like:
>
>        #define VAR_THAT_IS_ON 1
>        #define VAR_THAT_IS_OFF 0
>
> There are other questions I have lined up.  :)  But I'll start with just
> that one, and if anyone wants to be proactive offer advice/pointers/urls
> based on the existing source... please jump in!
>
> Thanks!
> ---Brian
> _______________________________________________
> 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
>


More information about the CMake mailing list