summaryrefslogtreecommitdiff
path: root/src/core/CMakeLists.txt
blob: 162f75ed58119c99f9dec1bf33cde21f646de6d5 (plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# -*- CMakeLists.txt generated by CodeLite IDE. Do not edit by hand -*-

cmake_minimum_required(VERSION 2.8.11)

# Project name
project(core)

# This setting is useful for providing JSON file used by CodeLite for code completion
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

set(CONFIGURATION_NAME "Debug")

# Define some variables
set(PROJECT_core_PATH "${CMAKE_CURRENT_LIST_DIR}")
set(WORKSPACE_PATH "${CMAKE_CURRENT_LIST_DIR}/..")



#{{{{ User Code 1
# Place your code here
#}}}}

include_directories(
    .
    ../../3rdparty/json.h
    ./include
    ../rdp/include
    ../../3rdparty/wslay/lib/includes
    ../../3rdparty/wslay/build/lib/includes
    ../../3rdparty/libev
    ../../3rdparty/picohttpparser
    ../../3rdparty/libcb/include
    ../../3rdparty/curl/build/lib
    ../../3rdparty/curl/include
)


# Compiler options
add_definitions(-Wall)
add_definitions(-std=c99)
add_definitions(-fno-strict-aliasing)
add_definitions(-pthread)
add_definitions(-D_POSIX_C_SOURCE=200112L)
add_definitions(-D_XOPEN_SOURCE=500)
add_definitions(-D_GNU_SOURCE)

# Linker options
#set(LINK_OPTIONS -pthread)


link_libraries(
"-pthread \
-lssl \
-lcrypto \
-ldl \
-lm \
-lrt \
-lpng \
-lz \
../../rdp/build/librdp.a \
../../../3rdparty/libev/build/libev.a \
../../../3rdparty/wslay/build/lib/libwslay.a \
../../../3rdparty/FreeRDP/build/client/common/libfreerdp-client3.a \
../../../3rdparty/FreeRDP/build/channels/rdpgfx/client/librdpgfx-client.a \
../../../3rdparty/FreeRDP/build/channels/video/client/libvideo-client.a \
../../../3rdparty/FreeRDP/build/channels/geometry/client/libgeometry-client.a \
../../../3rdparty/FreeRDP/build/channels/parallel/client/libparallel-client.a \
../../../3rdparty/FreeRDP/build/channels/drive/client/libdrive-client.a \
../../../3rdparty/FreeRDP/build/channels/cliprdr/client/libcliprdr-client.a \
../../../3rdparty/FreeRDP/build/channels/drdynvc/client/libdrdynvc-client.a \
../../../3rdparty/FreeRDP/build/channels/remdesk/client/libremdesk-client.a \
../../../3rdparty/FreeRDP/build/channels/rdpei/client/librdpei-client.a \
../../../3rdparty/FreeRDP/build/channels/encomsp/client/libencomsp-client.a \
../../../3rdparty/FreeRDP/build/channels/disp/client/libdisp-client.a \
../../../3rdparty/FreeRDP/build/channels/echo/client/libecho-client.a \
../../../3rdparty/FreeRDP/build/channels/rail/client/librail-client.a \
../../../3rdparty/FreeRDP/build/channels/serial/client/libserial-client.a \
../../../3rdparty/FreeRDP/build/channels/rdpsnd/client/librdpsnd-client.a \
../../../3rdparty/FreeRDP/build/channels/rdpsnd/client/fake/librdpsnd-client-fake.a \
../../../3rdparty/FreeRDP/build/channels/smartcard/client/libsmartcard-client.a \
../../../3rdparty/FreeRDP/build/channels/rdp2tcp/client/librdp2tcp-client.a \
../../../3rdparty/FreeRDP/build/channels/ainput/client/libainput-client.a \
../../../3rdparty/FreeRDP/build/channels/rdpdr/client/librdpdr-client.a \
../../../3rdparty/FreeRDP/build/client/common/libfreerdp-client3.a \
../../../3rdparty/FreeRDP/build/libfreerdp/libfreerdp3.a \
../../../3rdparty/FreeRDP/build/winpr/libwinpr/libwinpr3.a \
../../../3rdparty/curl/build/libcurl.a \
-ldl"
)
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
    add_definitions(-DDEBUG)
    link_libraries(
    "-pthread \
    -lssl \
    -lcrypto \
    -lm \
    -lrt \
    -lpng \
    -lz \
    -lunwind \
    -lunwind-x86_64 \
    ../../rdp/build/librdp.a \
    ../../../3rdparty/libev/build/libev.a \
    ../../../3rdparty/wslay/build/lib/libwslay.a \
    ../../../3rdparty/FreeRDP/build/client/common/libfreerdp-client3.a \
    ../../../3rdparty/FreeRDP/build/channels/geometry/client/libgeometry-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rdpgfx/client/librdpgfx-client.a \
    ../../../3rdparty/FreeRDP/build/channels/video/client/libvideo-client.a \
    ../../../3rdparty/FreeRDP/build/channels/parallel/client/libparallel-client.a \
    ../../../3rdparty/FreeRDP/build/channels/drive/client/libdrive-client.a \
    ../../../3rdparty/FreeRDP/build/channels/cliprdr/client/libcliprdr-client.a \
    ../../../3rdparty/FreeRDP/build/channels/drdynvc/client/libdrdynvc-client.a \
    ../../../3rdparty/FreeRDP/build/channels/remdesk/client/libremdesk-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rdpei/client/librdpei-client.a \
    ../../../3rdparty/FreeRDP/build/channels/encomsp/client/libencomsp-client.a \
    ../../../3rdparty/FreeRDP/build/channels/disp/client/libdisp-client.a \
    ../../../3rdparty/FreeRDP/build/channels/echo/client/libecho-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rail/client/librail-client.a \
    ../../../3rdparty/FreeRDP/build/channels/serial/client/libserial-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rdpsnd/client/librdpsnd-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rdpsnd/client/fake/librdpsnd-client-fake.a \
    ../../../3rdparty/FreeRDP/build/channels/smartcard/client/libsmartcard-client.a \
    ../../../3rdparty/FreeRDP/build/channels/rdp2tcp/client/librdp2tcp-client.a \
    ../../../3rdparty/FreeRDP/build/libfreerdp/libfreerdp3.a \
    ../../../3rdparty/FreeRDP/build/winpr/libwinpr/libwinpr3.a \
    ../../../3rdparty/curl/build/libcurl.a \
    -ldl"
    )
endif()


# Library path
set(CMAKE_LDFLAGS "${CMAKE_LDFLAGS} -L. ")

# Define the C sources
set ( C_SRCS
    ${CMAKE_CURRENT_LIST_DIR}/config_file.c
    ${CMAKE_CURRENT_LIST_DIR}/cmdline.c
    ${CMAKE_CURRENT_LIST_DIR}/ws_protocol.c
    ${CMAKE_CURRENT_LIST_DIR}/ev_loop.c
    ${CMAKE_CURRENT_LIST_DIR}/main.c
    ${CMAKE_CURRENT_LIST_DIR}/utilities.c
    ${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/picohttpparser/picohttpparser.c
    ${CMAKE_CURRENT_LIST_DIR}/thread_impl.c
    ${CMAKE_CURRENT_LIST_DIR}/exports.c
    ${CMAKE_CURRENT_LIST_DIR}/wrdp_thpool.c
    ${CMAKE_CURRENT_LIST_DIR}/ws_session.c
    ${CMAKE_CURRENT_LIST_DIR}/json_helpers.c
    ${CMAKE_CURRENT_LIST_DIR}/curl_helpers.c
    ${CMAKE_CURRENT_LIST_DIR}/backend_helpers.c
    ${CMAKE_CURRENT_LIST_DIR}/remote_control.c
    ${CMAKE_CURRENT_LIST_DIR}/socket_helpers.c
    ${CMAKE_CURRENT_LIST_DIR}/thread_sync.c
    ${CMAKE_CURRENT_LIST_DIR}/log.c
)

set_source_files_properties(
    ${C_SRCS} PROPERTIES COMPILE_FLAGS 
    " -std=c99 -Wall -fno-strict-aliasing -pthread -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 -D_GNU_SOURCE")

if(WIN32)
    enable_language(RC)
    set(CMAKE_RC_COMPILE_OBJECT
        "<CMAKE_RC_COMPILER> ${RC_OPTIONS} -O coff -i <SOURCE> -o <OBJECT>")
endif(WIN32)

add_executable(core ${RC_SRCS} ${CXX_SRCS} ${C_SRCS})