Skip to content

Commit ecffb9f

Browse files
committed
build: disable MSVC default no case warning
1 parent f4d0996 commit ecffb9f

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

CMakeLists.txt

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,29 @@ cmake_minimum_required(VERSION 3.16)
22

33
macro(set_option_from_env OPTION_NAME)
44
string(TOLOWER ${OPTION_NAME} OPTION_NAME_LOWER)
5+
56
if(DEFINED ENV{npm_config_${OPTION_NAME_LOWER}})
67
if("$ENV{npm_config_${OPTION_NAME_LOWER}}" STREQUAL "true")
78
set("${OPTION_NAME}"
8-
ON
9-
CACHE BOOL "npm_config_${OPTION_NAME_LOWER}")
9+
ON
10+
CACHE BOOL "npm_config_${OPTION_NAME_LOWER}")
1011
elseif("$ENV{npm_config_${OPTION_NAME_LOWER}}" STREQUAL "false")
1112
set("${OPTION_NAME}"
12-
OFF
13-
CACHE BOOL "npm_config_${OPTION_NAME_LOWER}")
13+
OFF
14+
CACHE BOOL "npm_config_${OPTION_NAME_LOWER}")
1415
else()
1516
set("${OPTION_NAME}"
16-
"$ENV{npm_config_${OPTION_NAME_LOWER}}"
17-
CACHE STRING "npm_config_${OPTION_NAME_LOWER}")
17+
"$ENV{npm_config_${OPTION_NAME_LOWER}}"
18+
CACHE STRING "npm_config_${OPTION_NAME_LOWER}")
1819
endif()
1920
endif()
21+
2022
if(${OPTION_NAME})
2123
string(REPLACE "zmq_" "" OPTION_NAME_LOWER "${OPTION_NAME_LOWER}")
2224
string(REPLACE "_" "-" OPTION_NAME_LOWER "${OPTION_NAME_LOWER}")
2325
list(APPEND VCPKG_MANIFEST_FEATURES ${OPTION_NAME_LOWER})
2426
endif()
27+
2528
message(STATUS "${OPTION_NAME}: ${${OPTION_NAME}}")
2629
endmacro()
2730

@@ -61,13 +64,16 @@ if(WIN32)
6164
set(CMAKE_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
6265
set(VCPKG_TARGET_TRIPLET "x64-windows-static")
6366
endif()
67+
6468
# Avoid loading of project_optinos/WindowsToolchain
6569
set(CMAKE_TOOLCHAIN_FILE ";")
70+
6671
# use static runtime library
6772
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
6873
endif()
6974

7075
include(FetchContent)
76+
7177
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
7278
cmake_policy(SET CMP0135 NEW)
7379
endif()
@@ -88,11 +94,11 @@ include(${_project_options_SOURCE_DIR}/Index.cmake)
8894
# MacOS flags that should be set prior to any project calls
8995
if(APPLE)
9096
set(CMAKE_SHARED_LINKER_FLAGS
91-
"${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
97+
"${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
9298
endif()
9399

94100
run_vcpkg(VCPKG_URL "https://github.com/microsoft/vcpkg.git" VCPKG_REV
95-
"ee2d2a100103e0f3613c60655dcf15be7d5157b8")
101+
"ee2d2a100103e0f3613c60655dcf15be7d5157b8")
96102

97103
# Name of the project (will be the name of the plugin)
98104
project(addon LANGUAGES C CXX)
@@ -103,15 +109,20 @@ file(GLOB_RECURSE SOURCES "./src/*.cc")
103109
add_library(addon SHARED ${SOURCES})
104110

105111
if(CMAKE_CXX_COMPILER_ID STREQUAL GNU
106-
OR CMAKE_CXX_COMPILER_ID STREQUAL Clang
107-
OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
112+
OR CMAKE_CXX_COMPILER_ID STREQUAL Clang
113+
OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
108114
target_compile_options(project_warnings INTERFACE "-Wno-shadow")
115+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL MSVC)
116+
# disable 'default' but no 'case' labels
117+
target_compile_options(project_warnings INTERFACE "/wd4065")
109118
endif()
119+
110120
target_link_libraries(addon PRIVATE project_options project_warnings)
111121

112122
if(ZMQ_DRAFT)
113123
target_compile_definitions(addon PRIVATE ZMQ_BUILD_DRAFT_API)
114124
endif()
125+
115126
if(ZMQ_NO_SYNC_RESOLVE)
116127
target_compile_definitions(addon PRIVATE ZMQ_NO_SYNC_RESOLVE)
117128
endif()
@@ -129,6 +140,7 @@ target_compile_definitions(addon PRIVATE V8_31BIT_SMIS_ON_64BIT_ARCH)
129140
target_compile_definitions(addon PRIVATE V8_REVERSE_JSARGS)
130141
target_compile_definitions(addon PRIVATE BUILDING_NODE_EXTENSION)
131142
target_compile_definitions(addon PRIVATE NAPI_CPP_EXCEPTIONS)
143+
132144
if(WIN32)
133145
target_compile_definitions(addon PRIVATE "NOMINMAX")
134146
target_compile_definitions(addon PRIVATE "NOGDI")

0 commit comments

Comments
 (0)