-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
60 lines (49 loc) · 1.71 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
cmake_minimum_required( VERSION 3.12 )
set_property( GLOBAL PROPERTY USE_FOLDERS ON )
project( AICLIENTLIB VERSION 0.0.1 )
# Set up compiler
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
if(MSVC)
# No min/max macros, disable deprecation warninigs
add_compile_definitions( NOMINMAX _CRT_SECURE_NO_WARNINGS _WIN32_WINNT=0x0601)
endif()
# Set up paths
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )
set( SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/client )
set( EXAMPLESPATH ${CMAKE_CURRENT_SOURCE_DIR}/examples/cpp )
set( UTIL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/inc/Utilities )
set( INCPATH
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/inc
${UTIL_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/inc/DglibInterface
)
# Get dependency
if( WIN32 )
execute_process ( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/loadDependency.bat
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ )
else()
execute_process ( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/loadDependency.sh
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ )
endif()
# Set up API library
set( DG_API_SRCs
${SRCPATH}/dg_client.cpp
${SRCPATH}/dg_client_asio.cpp
${SRCPATH}/dg_client_http.cpp
${SRCPATH}/dg_model_api.cpp
${UTIL_PATH}/easywsclient.cpp
${UTIL_PATH}/dg_utility_singletons.cpp
)
find_package( Threads REQUIRED )
add_library( aiclientlib STATIC ${DG_API_SRCs} )
target_include_directories( aiclientlib PUBLIC ${INCPATH} )
if( WIN32 )
target_link_libraries( aiclientlib PUBLIC Ws2_32 )
else()
target_link_libraries( aiclientlib PUBLIC pthread dl )
endif()
add_subdirectory( ${EXAMPLESPATH} )