Skip to content

Commit 43179d6

Browse files
author
winsoft666
committed
Add USE_STATIC_CRT option to support static CRT(/MT).
1 parent faa2f10 commit 43179d6

File tree

6 files changed

+76
-0
lines changed

6 files changed

+76
-0
lines changed

3rdparty/gtest/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,20 @@ option(
2525
gtest_hide_internal_symbols
2626
"Build gtest with internal symbols hidden in shared libraries."
2727
OFF)
28+
29+
if (MSVC AND USE_STATIC_CRT)
30+
set(CompilerFlags
31+
CMAKE_CXX_FLAGS
32+
CMAKE_CXX_FLAGS_DEBUG
33+
CMAKE_CXX_FLAGS_RELEASE
34+
CMAKE_C_FLAGS
35+
CMAKE_C_FLAGS_DEBUG
36+
CMAKE_C_FLAGS_RELEASE
37+
)
38+
foreach(CompilerFlag ${CompilerFlags})
39+
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
40+
endforeach()
41+
endif()
2842

2943
# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build().
3044
include(cmake/hermetic_build.cmake OPTIONAL)

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ project(cpp-ipc)
33

44
option(LIBIPC_BUILD_TESTS "Build all of libipc's own tests." OFF)
55
option(LIBIPC_BUILD_DEMOS "Build all of libipc's own demos." OFF)
6+
option(USE_STATIC_CRT "Set to ON to build with static CRT on Windows (/MT)." OFF)
67

78
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
89
set(CMAKE_CXX_STANDARD 17)
@@ -13,8 +14,13 @@ endif()
1314

1415
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
1516
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
17+
1618
set(LIBIPC_PROJECT_DIR ${PROJECT_SOURCE_DIR})
1719

20+
21+
# Unicode Support
22+
add_definitions(-DUNICODE -D_UNICODE)
23+
1824
add_subdirectory(src)
1925

2026
if (LIBIPC_BUILD_TESTS)

demo/chat/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
project(chat)
22

3+
if (MSVC AND USE_STATIC_CRT)
4+
set(CompilerFlags
5+
CMAKE_CXX_FLAGS
6+
CMAKE_CXX_FLAGS_DEBUG
7+
CMAKE_CXX_FLAGS_RELEASE
8+
CMAKE_C_FLAGS
9+
CMAKE_C_FLAGS_DEBUG
10+
CMAKE_C_FLAGS_RELEASE
11+
)
12+
foreach(CompilerFlag ${CompilerFlags})
13+
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
14+
endforeach()
15+
endif()
16+
317
file(GLOB SRC_FILES ./*.cpp)
418
file(GLOB HEAD_FILES ./*.h)
519

demo/msg_que/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
project(msg_que)
22

3+
if (MSVC AND USE_STATIC_CRT)
4+
set(CompilerFlags
5+
CMAKE_CXX_FLAGS
6+
CMAKE_CXX_FLAGS_DEBUG
7+
CMAKE_CXX_FLAGS_RELEASE
8+
CMAKE_C_FLAGS
9+
CMAKE_C_FLAGS_DEBUG
10+
CMAKE_C_FLAGS_RELEASE
11+
)
12+
foreach(CompilerFlag ${CompilerFlags})
13+
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
14+
endforeach()
15+
endif()
16+
317
include_directories(
418
${LIBIPC_PROJECT_DIR}/3rdparty)
519

src/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@ project(ipc)
22

33
option(LIBIPC_BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
44

5+
if (MSVC AND USE_STATIC_CRT)
6+
set(CompilerFlags
7+
CMAKE_CXX_FLAGS
8+
CMAKE_CXX_FLAGS_DEBUG
9+
CMAKE_CXX_FLAGS_RELEASE
10+
CMAKE_C_FLAGS
11+
CMAKE_C_FLAGS_DEBUG
12+
CMAKE_C_FLAGS_RELEASE
13+
)
14+
foreach(CompilerFlag ${CompilerFlags})
15+
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
16+
endforeach()
17+
endif()
18+
519
if(UNIX)
620
file(GLOB SRC_FILES ${LIBIPC_PROJECT_DIR}/src/libipc/platform/*_linux.cpp)
721
else()

test/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
project(test-ipc)
22

3+
if (MSVC AND USE_STATIC_CRT)
4+
set(CompilerFlags
5+
CMAKE_CXX_FLAGS
6+
CMAKE_CXX_FLAGS_DEBUG
7+
CMAKE_CXX_FLAGS_RELEASE
8+
CMAKE_C_FLAGS
9+
CMAKE_C_FLAGS_DEBUG
10+
CMAKE_C_FLAGS_RELEASE
11+
)
12+
foreach(CompilerFlag ${CompilerFlags})
13+
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
14+
endforeach()
15+
endif()
16+
317
if(NOT MSVC)
418
add_compile_options(
519
-Wno-attributes

0 commit comments

Comments
 (0)