1
- cmake_minimum_required (VERSION 3.6 )
1
+ cmake_minimum_required (VERSION 3.7 )
2
2
if (COMMAND cmake_policy)
3
3
cmake_policy (SET CMP0003 NEW)
4
4
endif (COMMAND cmake_policy)
5
5
6
+ # MSVC runtime library flags are selected by an abstraction.
7
+ if (COMMAND cmake_policy AND POLICY CMP0091)
8
+ cmake_policy (SET CMP0091 NEW)
9
+ endif ()
10
+
6
11
set (CMAKE_CXX_STANDARD 11)
7
12
set (CMAKE_CXX_STANDARD_REQUIRED ON )
8
13
set (CMAKE_CXX_EXTENSIONS OFF )
9
14
10
- set (PROTOBUF_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /deps/protobuf)
11
- add_subdirectory (${PROTOBUF_ROOT_DIR} /cmake deps/protobuf)
12
-
13
15
set (protobuf_BUILD_TESTS OFF CACHE BOOL "Build protobuf tests" )
14
16
set (protobuf_WITH_ZLIB OFF CACHE BOOL "Build protobuf with zlib." )
17
+ set (PROTOBUF_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /deps/protobuf)
18
+ add_subdirectory (${PROTOBUF_ROOT_DIR} /cmake deps/protobuf)
15
19
16
20
set (CMAKE_EXE_LINKER_FLAGS "-static-libstdc++" )
17
21
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-stack-protector" )
@@ -22,8 +26,21 @@ add_executable(grpc_node_plugin
22
26
)
23
27
24
28
if (MSVC )
25
- add_definitions (/MTd)
26
- endif (MSVC )
29
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.15)
30
+ set (CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$<CONFIG:Debug>:Debug>)
31
+ else ()
32
+ foreach (flag_var
33
+ CMAKE_CXX_FLAGS
34
+ CMAKE_CXX_FLAGS_DEBUG
35
+ CMAKE_CXX_FLAGS_RELEASE
36
+ CMAKE_CXX_FLAGS_MINSIZEREL
37
+ CMAKE_CXX_FLAGS_RELWITHDEBINFO )
38
+ if (${flag_var} MATCHES "/MD" )
39
+ string (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var} }" )
40
+ endif (${flag_var} MATCHES "/MD" )
41
+ endforeach (flag_var)
42
+ endif ()
43
+ endif (MVC)
27
44
28
45
target_include_directories (grpc_node_plugin
29
46
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
@@ -34,4 +51,4 @@ target_include_directories(grpc_node_plugin
34
51
target_link_libraries (grpc_node_plugin
35
52
libprotoc
36
53
libprotobuf
37
- )
54
+ )
0 commit comments