如何在cmake中设置编译器特定的标志

时间:2019-09-02 13:26:42

标签: c++ cmake c++20

我有一个需要与MSVC以及g ++一起运行的代码。因此,我使用Cmake。我想使用C ++ 20的designated initializers。由于它们自C99起就存在,因此它们已经在g ++中,但是在MSVC ++中,它们仅与标志/std:latest一起可用。

在CMake文件中为MSVC启用此选项的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以设置变量CMAKE_CXX_FLAGS_RELEASE(仅适用于发行版),CMAKE_CXX_FLAGS_DEBUG(仅适用于调试版)和CMAKE_CXX_FLAGS(适用于发行版和调试)。 如果还使用其他编译器,则应仅设置msvc的选项:

if(MSVC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:latest")
endif()