forked from hprose/hprose-cpp1x
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
66 lines (59 loc) · 2.42 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
cmake_minimum_required(VERSION 3.2)
project(hprose)
find_package(Threads REQUIRED)
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
#gcc
set(CMAKE_CXX_FLAGS "-g -Wall -Wextra -Werror")
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
OUTPUT_VARIABLE COMPILER_VERSION)
if (COMPILER_VERSION VERSION_GREATER 4.7 OR COMPILER_VERSION VERSION_EQUAL 4.7)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif (COMPILER_VERSION VERSION_EQUAL 4.6)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
elseif (COMPILER_VERSION VERSION_GREATER 4.3 OR COMPILER_VERSION VERSION_EQUAL 4.3)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
add_definitions(-Dnoexcept= -Dnullptr=0)
endif()
elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
#Clang and AppleClang
set(CMAKE_CXX_FLAGS "-g -Wall -Wextra -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# using Visual Studio C++
# -D_WIN32_WINNT=0x0501 to shut up asio warning
# /EHsc to shut up C++ exception handling was used but /EHsc was not selected.
set(CMAKE_CXX_FLAGS "-D_WIN32_WINNT=0x0501 /EHsc /utf-8")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
else ()
# default
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif ()
set(SOURCE_FILES
hprose/io/Reader.cpp
hprose/io/ByteReader.cpp
hprose/io/RawReader.cpp
hprose/io/decoders/BoolDecoder.cpp
hprose/io/decoders/IntDecoder.cpp
hprose/io/decoders/StringDecoder.cpp
hprose/rpc/Client.cpp
hprose/rpc/asio/HttpClient.cpp
hprose/http/Client.cpp
hprose/http/asio/Transport.cpp
hprose/util/Util.cpp
hprose/Uri.cpp
hprose/Variant.cpp)
include_directories("/usr/local/include" ".")
link_directories(${GTEST_DIR})
add_definitions(-DASIO_STANDALONE)
add_library(hprose STATIC ${SOURCE_FILES})
set(TEST_FILES
hprose/test/VariantTest.cpp
hprose/io/test/WriterTest.cpp
hprose/io/test/ReaderTest.cpp
hprose/rpc/asio/test/HttpClientTest.cpp
hprose/util/test/ApplyTest.cpp
hprose/util/test/PromiseTest.cpp
hprose/rpc/test/MethodTest.cpp)
add_executable(IOTest.out ${TEST_FILES})
target_include_directories(IOTest.out PUBLIC "${GTEST_DIR}/include")
target_link_libraries(IOTest.out hprose ${CMAKE_THREAD_LIBS_INIT} gtest)