[CMake] C++11 flag not being added

Petr Bena benapetr at gmail.com
Tue Oct 13 11:42:19 EDT 2015


I would also like to know this, right now I do this and it works, but
it produced warnings on MSVC, so I did this nasty patch:

if(WIN32)
    if(MINGW)
        SET(CMAKE_CXX_FLAGS "-mwindows -std=c++11")
    endif()
else()
        SET(CMAKE_CXX_FLAGS "-std=c++11")
endif()

however doing just the SET statement itself should work

On Tue, Oct 13, 2015 at 5:22 PM, Matthew S Wallace
<mwallace at ccmtrading.com> wrote:
> I have the following two lines in my CMakeLists.txt
>
> set_property(GLOBAL PROPERTY CXX_STANDARD 11)
> set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED)
>
> However when compiling some of my source files, the -std=c++11 flag is not added.
>
> Just for good measure I added:
> target_compile_features(my_target PRIVATE cxx_strong_enums) to the target that was having the problem.
>
> Not sure if it matters, but in this case the compile error I’m getting is complaining because I’m referencing a fully scoped enum.  If I explicitly include -std=c++11 in my compile flags, everything works.
>
> I’m thinking I’m probably just misunderstanding how CXX_STANDARD works, but any help would be appreciated.
>
> -Matt
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake


More information about the CMake mailing list