CMake: Fix MSVC warning when using NMake
Fix warning: Command line warning D9025 : overriding '/W3' with '/W4' Remove /W3, either via a regex or via new policy CMP0092 (CMake 3.15). The policy has to be set before calling project(), otherwise the CMAKE_<LANG>_FLAGS are already initialized. See https://trac.wxwidgets.org/ticket/18438
This commit is contained in:
@@ -23,10 +23,10 @@ if(APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET)
|
|||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9 CACHE STRING "OS X Deployment Target")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9 CACHE STRING "OS X Deployment Target")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
project(wxWidgets)
|
|
||||||
|
|
||||||
include(build/cmake/policies.cmake NO_POLICY_SCOPE)
|
include(build/cmake/policies.cmake NO_POLICY_SCOPE)
|
||||||
|
|
||||||
|
project(wxWidgets)
|
||||||
|
|
||||||
# Initialize variables for quick access to wx root dir in sub dirs
|
# Initialize variables for quick access to wx root dir in sub dirs
|
||||||
set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
set(wxBINARY_DIR ${CMAKE_BINARY_DIR})
|
set(wxBINARY_DIR ${CMAKE_BINARY_DIR})
|
||||||
|
@@ -98,11 +98,15 @@ function(wx_set_common_target_properties target_name)
|
|||||||
ARCHIVE_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
|
ARCHIVE_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
|
RUNTIME_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
|
||||||
)
|
)
|
||||||
if(NOT wxCOMMON_TARGET_PROPS_DEFAULT_WARNINGS)
|
|
||||||
# Enable higher warnings for most compilers/IDEs
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
target_compile_options(${target_name} PRIVATE /W4)
|
if(wxCOMMON_TARGET_PROPS_DEFAULT_WARNINGS)
|
||||||
|
set(MSVC_WARNING_LEVEL "/W3")
|
||||||
|
else()
|
||||||
|
set(MSVC_WARNING_LEVEL "/W4")
|
||||||
endif()
|
endif()
|
||||||
|
target_compile_options(${target_name} PRIVATE ${MSVC_WARNING_LEVEL})
|
||||||
|
else()
|
||||||
# TODO: add warning flags for other compilers
|
# TODO: add warning flags for other compilers
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@@ -57,6 +57,11 @@ if(MSVC)
|
|||||||
wx_string_append(CMAKE_C_FLAGS " /MP")
|
wx_string_append(CMAKE_C_FLAGS " /MP")
|
||||||
wx_string_append(CMAKE_CXX_FLAGS " /MP")
|
wx_string_append(CMAKE_CXX_FLAGS " /MP")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT POLICY CMP0092)
|
||||||
|
string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||||
|
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
endif()
|
||||||
elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
|
elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
|
||||||
if(wxBUILD_OPTIMISE)
|
if(wxBUILD_OPTIMISE)
|
||||||
set(GCC_PREFERRED_RELEASE_FLAGS " -O2 -fomit-frame-pointer")
|
set(GCC_PREFERRED_RELEASE_FLAGS " -O2 -fomit-frame-pointer")
|
||||||
|
@@ -58,3 +58,8 @@ if(POLICY CMP0072)
|
|||||||
# FindOpenGL prefers GLVND by default when available.
|
# FindOpenGL prefers GLVND by default when available.
|
||||||
cmake_policy(SET CMP0072 NEW)
|
cmake_policy(SET CMP0072 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(POLICY CMP0092)
|
||||||
|
# MSVC warning flags are not in CMAKE_<LANG>_FLAGS by default
|
||||||
|
cmake_policy(SET CMP0092 NEW)
|
||||||
|
endif()
|
||||||
|
Reference in New Issue
Block a user