[CMake] Default value for CMAKE_BUILD_TYPE

pellegrini pellegrini at ill.fr
Mon May 14 11:16:14 EDT 2012


On 5/11/2012 5:30 PM, Jean-Christophe Fillion-Robin wrote:
> Hi Eric,
>
> In our different projects, we use an approach similar to this one:
>
> # Set a default build type if none was specified
> if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
>    message(STATUS "Setting build type to 'Debug' as none was specified.")
>    set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
>    # Set the possible values of build type for cmake-gui
>    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
>      "MinSizeRel" "RelWithDebInfo")
> endif()
>
>
> See 
> http://vtk.org/gitweb?p=VTK.git;a=blob;f=CMakeLists.txt;h=a57fd66ef333fc26bf74fe658c88c3c634f54c3a;hb=HEAD#l12
>
>
> Hth
> Jc
>
> On Fri, May 11, 2012 at 11:21 AM, pellegrini <pellegrini at ill.fr 
> <mailto:pellegrini at ill.fr>> wrote:
>
>     Hi all,
>
>     when cmake is run without specifying the build type using -D
>     CMAKE_BUILD_TYPE, it is the Debug mode that is selected as
>     the default. I would like to find a way to use Release as the
>     default value when the user does not specify any build
>     type in the cmake command line.
>
>     From one of my previous post concerning CMAKE_INSTALL_PREFIX
>     variable, I was thinking to use a similar approach i.e.:
>
>     project(Foo)
>
>     if (CMAKE_BUILD_TYPE_INITIALIZED_TO_DEFAULT)
>        set(CMAKE_BUILD_TYPE Release)
>     endif
>
>     but cmake still sets CMAKE_BUILD_TYPE to Debug in the
>     CMakeCache.txt file.
>
>     Would you have any idea about what is wrong with my implementation ?
>
>     thanks a lot.
>
>     Eric
>     --
>
>     Powered by www.kitware.com <http://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
>
>
>
>
> -- 
> +1 919 869 8849
>
Hi Jean-Christophe,

I found a hack for my problem. First it seems to be a windows specific 
problem (I found one other message that
mention this).

What I did is just to put the following before (compulsory) the project 
declaration:

if (NOT DEFINED CMAKE_BUILD_TYPE)
     set(CMAKE_BUILD_TYPE CACHE Release STRING "hfsfhskj" FORCE)
endif()

It would be interesting to get the feedback of the CMake team about the 
"uglyness" of such a hack.

Bye

Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120514/4326f366/attachment.htm>


More information about the CMake mailing list