Skip to content

Commit 7c3fc00

Browse files
Merge pull request #72 from jackyding2679/v5.5.0
v5.5.0
2 parents 41f7644 + 578bdbb commit 7c3fc00

File tree

758 files changed

+141271
-5562
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

758 files changed

+141271
-5562
lines changed

CMakeLists.txt

Lines changed: 67 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,71 @@
11
cmake_minimum_required(VERSION 2.8)
22
CMAKE_policy(SET CMP0015 NEW)
3-
43
project(cos-cpp-sdk)
5-
#SET(BOOST_HEADER_DIR "/root/boost_1_68_0/")
6-
#SET(CMAKE_CXX_STANDARD 11) cmake 3.x才支持
74
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
8-
SET(CMAKE_VERBOSE_MAKEFILE ON)
9-
# find_package自动查找,或者通过SET(OPENSSL_VERSION 1.0.0)人工设置
10-
find_package(OpenSSL REQUIRED)
11-
#SET(OPENSSL_VERSION 1.0.1e)
12-
message(${OPENSSL_VERSION})
13-
14-
# 单元测试与覆盖率统计
15-
OPTION (ENABLE_UNITTEST "Unittest" OFF)
16-
17-
# coverage option
18-
IF(ENABLE_UNITTEST)
19-
find_package(GTest REQUIRED)
20-
if (NOT GTest_FOUND)
21-
message(FATAL_ERROR "GTest Not Found!")
22-
endif (NOT GTest_FOUND)
23-
MESSAGE(STATUS ENABLE_UNITTEST=${ENABLE_UNITTEST})
24-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
25-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
26-
ENDIF()
27-
28-
add_definitions(-D__COS_DEBUG__)
29-
30-
# include directories
31-
INCLUDE_DIRECTORIES(./include)
32-
INCLUDE_DIRECTORIES(/usr/local/ssl/include)
33-
# include_directories(${BOOST_HEADER_DIR})
34-
35-
# lib directories
36-
link_directories(/usr/local/lib)
37-
link_directories(./lib)
38-
39-
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
40-
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
41-
42-
IF(ENABLE_UNITTEST)
43-
FILE(COPY unittest/testdata/config.json DESTINATION ${EXECUTABLE_OUTPUT_PATH}/)
44-
FILE(COPY unittest/testdata/config_bucket_test.json DESTINATION ${EXECUTABLE_OUTPUT_PATH}/)
45-
FILE(COPY unittest/testdata/sevenyou.txt DESTINATION ${EXECUTABLE_OUTPUT_PATH}/)
46-
FILE(COPY unittest/merge_xml_results.py DESTINATION ${EXECUTABLE_OUTPUT_PATH}/)
47-
INCLUDE_DIRECTORIES(./include/googletest/include/)
48-
ADD_SUBDIRECTORY(unittest)
49-
ENDIF()
50-
51-
ADD_SUBDIRECTORY(src)
52-
ADD_SUBDIRECTORY(demo)
5+
set(CMAKE_VERBOSE_MAKEFILE ON)
6+
7+
option(BUILD_UNITTEST "Build unittest" OFF)
8+
option(BUILD_DEMO "Build demo" ON)
9+
option(BUILD_SHARED_LIB "Build shared library" OFF)
10+
11+
if(APPLE)
12+
set(OS_TYPE "APPLE")
13+
elseif(UNIX)
14+
set(OS_TYPE "LINUX")
15+
elseif(WIN32)
16+
set(OS_TYPE "WINDOWS")
17+
else()
18+
message(FATAL_ERROR "unkonwn os type")
19+
endif()
20+
message(STATUS "OS type: ${OS_TYPE}")
21+
22+
if (${OS_TYPE} STREQUAL "WINDOWS")
23+
set(BUILD_TARGET "Win32")
24+
if (CMAKE_CL_64)
25+
set(BUILD_TARGET "x64")
26+
endif()
27+
message(STATUS "Build target: ${BUILD_TARGET}")
28+
if (NOT DEFINED ${CMAKE_BUILD_TYPE})
29+
set(CMAKE_BUILD_TYPE "Release")
30+
endif()
31+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
32+
33+
set(POCO_LINK_DIR ${CMAKE_SOURCE_DIR}/third_party/lib/${BUILD_TARGET}/poco)
34+
set(POCO_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/third_party/include/)
35+
set(POCO_LIBS PocoNetSSL PocoNet PocoCrypto PocoUtil PocoJSON PocoFoundation PocoXML)
36+
37+
set(SYSTEM_LIBS "")
38+
#需要加该参数,不然VS会报错
39+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
40+
else()
41+
set(POCO_LINK_DIR ${CMAKE_SOURCE_DIR}/third_party/lib/linux/poco/)
42+
if (${OS_TYPE} STREQUAL "APPLE")
43+
set(POCO_LINK_DIR ${CMAKE_SOURCE_DIR}/third_party/lib/macOS/poco/)
44+
endif()
45+
set(POCO_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/third_party/include/)
46+
set(POCO_LIBS PocoNetSSL PocoNet PocoCrypto PocoUtil PocoJSON PocoFoundation PocoXML)
47+
48+
set(SYSTEM_LIBS stdc++ pthread)
49+
endif()
50+
51+
add_subdirectory(src)
52+
53+
if(BUILD_UNITTEST)
54+
message(STATUS "Build unittest")
55+
56+
set(GTEST_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/third_party/include/gtest/)
57+
set(GTEST_LINK_DIR ${CMAKE_SOURCE_DIR}/third_party/lib/linux/gtest/)
58+
if (${OS_TYPE} STREQUAL "WINDOWS")
59+
set(GTEST_LINK_DIR ${CMAKE_SOURCE_DIR}/third_party/lib/${BUILD_TARGET}/gtest)
60+
endif()
61+
set(GTEST_LIBS gtest gtest_main)
62+
63+
set(UT_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/unittest/include/)
64+
65+
add_subdirectory(unittest)
66+
endif()
67+
68+
if(BUILD_DEMO)
69+
message(STATUS "Build demo")
70+
add_subdirectory(demo)
71+
endif()

0 commit comments

Comments
 (0)