/
CMakeLists.txt
198 lines (165 loc) · 4.64 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
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#
# Find deps
#
FIND_PACKAGE(Fcgi REQUIRED)
IF (NOT FCGI_FOUND)
MESSAGE (SEND_ERROR "Fast CGI dependency was not found!")
ENDIF (NOT FCGI_FOUND)
IF (CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
ADD_DEFINITIONS(-DQGSMSDEBUG=1)
ENDIF (CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
IF (ENABLE_TESTS)
ADD_DEFINITIONS(-DENABLE_MS_TESTS=1)
ENDIF (ENABLE_TESTS)
ADD_SUBDIRECTORY(services)
########################################################
# Files
SET(QGIS_SERVER_SRCS
qgsbufferserverrequest.cpp
qgsbufferserverresponse.cpp
qgscapabilitiescache.cpp
qgsconfigcache.cpp
qgsconfigparserutils.cpp
qgsfcgiserverrequest.cpp
qgsfcgiserverresponse.cpp
qgsfilterresponsedecorator.cpp
qgsfilterrestorer.cpp
qgsrequesthandler.cpp
qgsserver.cpp
qgsserverexception.cpp
qgsserverinterface.cpp
qgsserverinterfaceimpl.cpp
qgsserverlogger.cpp
qgsserverprojectutils.cpp
qgsserverrequest.cpp
qgsserverresponse.cpp
qgsserversettings.cpp
qgsservice.cpp
qgsservicemodule.cpp
qgsservicenativeloader.cpp
qgsserviceregistry.cpp
qgsfeaturefilterprovidergroup.cpp
qgsfeaturefilter.cpp
)
SET (QGIS_SERVER_HDRS
qgsmapserviceexception.h
)
SET (QGIS_SERVER_MOC_HDRS
qgscapabilitiescache.h
qgsconfigcache.h
qgsserverlogger.h
qgsserversettings.h
)
#############################################################
# qgis_server library
SET(QGIS_SERVER_MOC_HDRS ${QGIS_SERVER_MOC_HDRS})
IF (WITH_SERVER_PLUGINS)
SET(QGIS_SERVER_SRCS ${QGIS_SERVER_SRCS}
qgsserverplugins.cpp
qgsserverfilter.cpp
qgsaccesscontrolfilter.cpp
qgsaccesscontrol.cpp
)
ENDIF (WITH_SERVER_PLUGINS)
QT5_WRAP_CPP(QGIS_SERVER_MOC_SRCS ${QGIS_SERVER_MOC_HDRS})
IF(MSVC)
SET_SOURCE_FILES_PROPERTIES(${QGIS_SERVER_MOC_SRCS} PROPERTIES COMPILE_FLAGS "/wd4512 /wd4996" )
ELSE(MSVC)
SET_SOURCE_FILES_PROPERTIES(${QGIS_SERVER_MOC_SRCS} PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations" )
ENDIF(MSVC)
INCLUDE_DIRECTORIES(SYSTEM
${GDAL_INCLUDE_DIR}
${FCGI_INCLUDE_DIR}
${GEOS_INCLUDE_DIR}
${PROJ_INCLUDE_DIR}
${POSTGRES_INCLUDE_DIR}
)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
)
INCLUDE_DIRECTORIES(SYSTEM
${QT_INCLUDE_DIR}
${QGIS_INCLUDE_DIR}
${QCA_INCLUDE_DIR}
${QTKEYCHAIN_INCLUDE_DIR}
)
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/src/core
${CMAKE_SOURCE_DIR}/src/core/auth
${CMAKE_SOURCE_DIR}/src/core/dxf
${CMAKE_SOURCE_DIR}/src/core/expression
${CMAKE_SOURCE_DIR}/src/core/geometry
${CMAKE_SOURCE_DIR}/src/core/metadata
${CMAKE_SOURCE_DIR}/src/core/raster
${CMAKE_SOURCE_DIR}/src/core/symbology
${CMAKE_SOURCE_DIR}/src/core/layout
${CMAKE_SOURCE_DIR}/src/core/layertree
${CMAKE_SOURCE_DIR}/src/analysis/interpolation
${CMAKE_SOURCE_DIR}/src/plugins/diagram_overlay
${CMAKE_SOURCE_DIR}/src/python
${CMAKE_BINARY_DIR}/src/core
${CMAKE_BINARY_DIR}/src/python
${CMAKE_BINARY_DIR}/src/analysis
${CMAKE_BINARY_DIR}/src/server
)
ADD_LIBRARY(qgis_server SHARED ${QGIS_SERVER_SRCS} ${QGIS_SERVER_MOC_SRCS} ${QGIS_SERVER_HDRS} ${QGIS_SERVER_MOC_HDRS})
GENERATE_EXPORT_HEADER(
qgis_server
BASE_NAME SERVER
EXPORT_FILE_NAME qgis_server.h
)
#generate unversioned libs for android
IF (NOT ANDROID)
SET_TARGET_PROPERTIES(qgis_server PROPERTIES
VERSION ${COMPLETE_VERSION}
SOVERSION ${COMPLETE_VERSION}
)
ENDIF (NOT ANDROID)
TARGET_LINK_LIBRARIES(qgis_server
qgis_core
qgis_analysis
${PROJ_LIBRARY}
${FCGI_LIBRARY}
${POSTGRES_LIBRARY}
${GDAL_LIBRARY}
${QCA_LIBRARY}
)
IF (WITH_BINDINGS)
TARGET_LINK_LIBRARIES(qgis_server qgispython)
ENDIF(WITH_BINDINGS)
IF (APPLE)
SET_TARGET_PROPERTIES(qgis_server PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
ENDIF (APPLE)
# install
INSTALL(TARGETS qgis_server
RUNTIME DESTINATION ${QGIS_BIN_DIR}
LIBRARY DESTINATION ${QGIS_LIB_DIR}
ARCHIVE DESTINATION ${QGIS_LIB_DIR}
FRAMEWORK DESTINATION ${QGIS_FW_SUBDIR}
PUBLIC_HEADER DESTINATION ${QGIS_INCLUDE_DIR}
)
# end qgis_server library
# add test resources, e.g. standard test font
SET(QGIS_SERVER_TESTRCCS ../../tests/testdata/testdata.qrc)
QT5_ADD_RESOURCES(QGIS_SERVER_TESTRCC_SRCS ${QGIS_SERVER_TESTRCCS})
ADD_EXECUTABLE(qgis_mapserv.fcgi qgis_map_serv.cpp ${QGIS_SERVER_TESTRCC_SRCS})
TARGET_LINK_LIBRARIES(qgis_mapserv.fcgi qgis_server)
# clang-tidy
IF(CLANG_TIDY_EXE)
SET_TARGET_PROPERTIES(
qgis_mapserv.fcgi PROPERTIES
CXX_CLANG_TIDY "${DO_CLANG_TIDY}"
)
ENDIF(CLANG_TIDY_EXE)
########################################################
# Install
INSTALL(CODE "MESSAGE(\"Installing server...\")")
INSTALL(TARGETS
qgis_mapserv.fcgi
DESTINATION ${QGIS_CGIBIN_DIR}
)
INSTALL(FILES
admin.sld
wms_metadata.xml
DESTINATION ${QGIS_CGIBIN_DIR}
)