[CMake] How to correctly default initialize CMAKE_BUILD_TYPE inside CMakeLists.txt

Kim Walisch kim.walisch at gmail.com
Mon Jan 14 03:52:58 EST 2019


Hi,

By default I would like to set CMAKE_BUILD_TYPE=Release (inside
CMakeLists.txt) if the user has not defined CMAKE_BUILD_TYPE himself (e.g.
as command-line option: cmake . -DCMAKE_BUILD_TYPE=Debug). Is there a best
practice how to do this in CMake? I have been searching the web to see how
other people achieved this and I found that many people use code like this:

if(NOT CMAKE_BUILD_TYPE)
        set(CMAKE_BUILD_TYPE "Release" CACHE STRING
        "Choose the type of build, options are: None Debug Release
RelWithDebInfo MinSizeRel."
        FORCE)
endif()

I used this code myself in one of my projects but I recently discovered
that this code causes issues when compiling with clang-cl on Windows.

Greetings,
Kim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190114/af6cf36a/attachment.html>


More information about the CMake mailing list