File tree Expand file tree Collapse file tree 6 files changed +87
-2
lines changed Expand file tree Collapse file tree 6 files changed +87
-2
lines changed Original file line number Diff line number Diff 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().
3044include (cmake/hermetic_build.cmake OPTIONAL )
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ project(cpp-ipc)
33
44option (LIBIPC_BUILD_TESTS "Build all of libipc's own tests." OFF )
55option (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
78set (CMAKE_POSITION_INDEPENDENT_CODE ON )
89set (CMAKE_CXX_STANDARD 17)
@@ -13,8 +14,13 @@ endif()
1314
1415set (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR} /bin)
1516set (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR} /bin)
17+
1618set (LIBIPC_PROJECT_DIR ${PROJECT_SOURCE_DIR} )
1719
20+
21+ # Unicode Support
22+ add_definitions (-DUNICODE -D_UNICODE)
23+
1824add_subdirectory (src)
1925
2026if (LIBIPC_BUILD_TESTS)
Original file line number Diff line number Diff line change 11project (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+
317file (GLOB SRC_FILES ./*.cpp)
418file (GLOB HEAD_FILES ./*.h)
519
Original file line number Diff line number Diff line change 11project (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+
317include_directories (
418 ${LIBIPC_PROJECT_DIR} /3rdparty)
519
Original file line number Diff line number Diff line change @@ -2,6 +2,20 @@ project(ipc)
22
33option (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+
519if (UNIX )
620 file (GLOB SRC_FILES ${LIBIPC_PROJECT_DIR} /src/libipc/platform/*_linux.cpp)
721else ()
@@ -29,6 +43,13 @@ else()
2943 add_library (${PROJECT_NAME} STATIC ${SRC_FILES} ${HEAD_FILES} )
3044endif ()
3145
46+ # Set output directory
47+ set_target_properties (${PROJECT_NAME}
48+ PROPERTIES
49+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
50+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
51+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin" )
52+
3253target_include_directories (${PROJECT_NAME}
3354 PUBLIC ${LIBIPC_PROJECT_DIR} /include
3455 PRIVATE ${LIBIPC_PROJECT_DIR} /src
@@ -42,5 +63,7 @@ endif()
4263
4364install (
4465 TARGETS ${PROJECT_NAME}
45- DESTINATION "lib"
46- )
66+ RUNTIME DESTINATION bin
67+ LIBRARY DESTINATION lib
68+ ARCHIVE DESTINATION lib
69+ )
Original file line number Diff line number Diff line change 11project (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+
317if (NOT MSVC )
418 add_compile_options (
519 -Wno-attributes
You can’t perform that action at this time.
0 commit comments