Repository navigation
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
72 lines (61 loc) · 3.16 KB
/
Copy pathCMakeLists.txt
File metadata and controls
72 lines (61 loc) · 3.16 KB
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
67
68
69
70
71
72
#CMake build, Pedro Vicente
#command line options for library dependencies
cmake_minimum_required(VERSION 3.1)
project (lib_netsockets)
include(CheckCXXCompilerFlag)
set(BUILD_SHARED_LIBRARIES OFF)
set (CMAKE_CXX_STANDARD 11)
if (MSVC)
add_definitions( "/D_CRT_SECURE_NO_WARNINGS /D_WINSOCK_DEPRECATED_NO_WARNINGS" )
endif(MSVC)
set(LIBS ${LIBS})
if (MSVC)
set(LIBS ${LIBS} ws2_32.lib)
else()
set( CMAKE_CXX_FLAGS " -pthread " )
endif(MSVC)
include_directories(src)
set(sources ${sources})
set(sources ${sources} src/socket.hh)
set(sources ${sources} src/socket.cc)
set(sources ${sources} src/http.hh)
set(sources ${sources} src/http.cc)
set(sources ${sources} src/ftp.hh)
set(sources ${sources} src/ftp.cc)
add_library(lib_netsockets ${sources})
add_executable(pub_sub_client examples/pub_sub_client.cc)
add_executable(pub_sub_server examples/pub_sub_server.cc)
add_executable(block_client examples/block_client.cc)
add_executable(block_server examples/block_server.cc)
add_executable(select_server examples/select_server.cc)
add_executable(http_client examples/http_client.cc)
add_executable(http_server examples/http_server.cc)
add_executable(ftp_client examples/ftp_client.cc)
add_executable(json_client examples/json_client.cc examples/json_message.hh examples/json_message.cc external/gason/src/gason.cpp)
add_executable(json_server examples/json_server.cc examples/json_message.hh examples/json_message.cc external/gason/src/gason.cpp)
add_executable(ftp_upload_append examples/ftp_upload_append.cc)
find_package( CURL REQUIRED )
target_link_libraries( ftp_upload_append CURL::libcurl )
target_include_directories(json_server PRIVATE external/gason/src)
set(lib_netsockets lib_netsockets)
target_link_libraries (pub_sub_client ${lib_netsockets} ${LIBS})
target_link_libraries (pub_sub_server ${lib_netsockets} ${LIBS})
target_link_libraries (block_client ${lib_netsockets} ${LIBS})
target_link_libraries (block_server ${lib_netsockets} ${LIBS})
target_link_libraries (select_server ${lib_netsockets} ${LIBS})
target_link_libraries (http_client ${lib_netsockets} ${LIBS})
target_link_libraries (http_server ${lib_netsockets} ${LIBS})
target_link_libraries (ftp_client ${lib_netsockets} ${LIBS})
target_link_libraries (json_client ${lib_netsockets} ${LIBS})
target_link_libraries (json_server ${lib_netsockets} ${LIBS})
#///////////////////////////////////////////////////////
#SQLite server/client example (uses JSON, SQLite)
#///////////////////////////////////////////////////////
add_executable(sqlite_server examples/sqlite_server.cc external/sqlite-3.18.0/sqlite3.c external/gason/src/gason.cpp)
add_executable(sqlite_client examples/sqlite_client.cc examples/sql_message.hh examples/sql_message.cc external/sqlite-3.18.0/sqlite3.c external/gason/src/gason.cpp)
target_include_directories(sqlite_server PRIVATE external/sqlite-3.18.0)
target_include_directories(sqlite_server PRIVATE external/gason/src)
target_link_libraries (sqlite_server ${lib_netsockets} ${LIBS} ${CMAKE_DL_LIBS})
target_include_directories(sqlite_client PRIVATE external/sqlite-3.18.0)
target_include_directories(sqlite_client PRIVATE external/gason/src)
target_link_libraries (sqlite_client ${lib_netsockets} ${LIBS} ${CMAKE_DL_LIBS})