-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
58 lines (45 loc) · 1.69 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
cmake_minimum_required(VERSION 3.5)
project(xsocket)
message(STATUS "build for OS: ${CMAKE_SYSTEM}")
message(STATUS "root source directory is ${PROJECT_SOURCE_DIR}")
message(STATUS "current source directory is ${CMAKE_CURRENT_SOURCE_DIR}")
set(CMAKE_CXX_FLAGS "-std=c++11")
option (SUPPORT_TLS "Support tls connect" ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/bin)
if (SUPPORT_TLS)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/mbedtls/include
${CMAKE_CURRENT_SOURCE_DIR}/mbedtls/crypto/include
)
link_directories(
${PROJECT_BINARY_DIR}/bin
)
set(ENABLE_PROGRAMS OFF CACHE INTERNAL "set mbedtls sample off")
add_subdirectory(mbedtls)
endif (SUPPORT_TLS)
#set(LIBPATH ${PROJECT_BINARY_DIR}/mbedtls/library/${CMAKE_BUILD_TYPE})
#message(${LIBPATH})
set(SRCS ../src/sample.cpp
../src/xsocket.h
../src/xsocket.cpp
)
if (SUPPORT_TLS)
set(SRCS ${SRCS}
../src/tls_socket.h
../src/tls_socket.cpp
)
endif (SUPPORT_TLS)
add_executable(xsocket ${SRCS})
# get compiler
string(REGEX MATCH "Clang" CMAKE_COMPILER_IS_CLANG "${CMAKE_C_COMPILER_ID}")
string(REGEX MATCH "GNU" CMAKE_COMPILER_IS_GNU "${CMAKE_C_COMPILER_ID}")
string(REGEX MATCH "IAR" CMAKE_COMPILER_IS_IAR "${CMAKE_C_COMPILER_ID}")
string(REGEX MATCH "MSVC" CMAKE_COMPILER_IS_MSVC "${CMAKE_C_COMPILER_ID}")
if(CMAKE_COMPILER_IS_MSVC)
target_link_libraries(xsocket "mbedtls.lib" "mbedx509.lib" "mbedcrypto.lib")
else()
target_link_libraries(xsocket "mbedtls.so" "mbedx509.so" "mbedcrypto.so")
endif()