Skip to content

Commit 8dadafa

Browse files
authored
Merge pull request #50 from winsoft666/master
支持使用VCPKG安装
2 parents faa2f10 + cc7b52a commit 8dadafa

File tree

6 files changed

+87
-2
lines changed

6 files changed

+87
-2
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: 25 additions & 2 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()
@@ -29,6 +43,13 @@ else()
2943
add_library(${PROJECT_NAME} STATIC ${SRC_FILES} ${HEAD_FILES})
3044
endif()
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+
3253
target_include_directories(${PROJECT_NAME}
3354
PUBLIC ${LIBIPC_PROJECT_DIR}/include
3455
PRIVATE ${LIBIPC_PROJECT_DIR}/src
@@ -42,5 +63,7 @@ endif()
4263

4364
install(
4465
TARGETS ${PROJECT_NAME}
45-
DESTINATION "lib"
46-
)
66+
RUNTIME DESTINATION bin
67+
LIBRARY DESTINATION lib
68+
ARCHIVE DESTINATION lib
69+
)

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)