44#
55#-----------------------------------------------------------------------------
66
7- cmake_minimum_required (VERSION 3.7 FATAL_ERROR )
7+ cmake_minimum_required (VERSION 3.13 FATAL_ERROR )
88list (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake" )
99
1010#-----------------------------------------------------------------------------
@@ -101,13 +101,33 @@ check_include_file(sys/loadavg.h HAVE_SYS_LOADAVG_H)
101101#
102102#-----------------------------------------------------------------------------
103103
104- execute_process (COMMAND ${APXS_EXECUTABLE} -q exp_libexecdir
105- OUTPUT_VARIABLE HTTPD_MODULES_DIR
104+ execute_process (COMMAND ${APXS_EXECUTABLE} -q libexecdir
105+ OUTPUT_VARIABLE HTTPD_LIBEXECDIR
106106 OUTPUT_STRIP_TRAILING_WHITESPACE
107107)
108108
109+ execute_process (COMMAND ${APXS_EXECUTABLE} -q sysconfdir
110+ OUTPUT_VARIABLE HTTPD_SYSCONFDIR
111+ OUTPUT_STRIP_TRAILING_WHITESPACE
112+ )
113+
114+ if (LibMapnik_VERSION STRLESS "4" )
115+ find_program (MAPNIK_CONFIG_EXECUTABLE NAMES mapnik-config REQUIRED )
116+ execute_process (COMMAND ${MAPNIK_CONFIG_EXECUTABLE} --fonts
117+ OUTPUT_STRIP_TRAILING_WHITESPACE
118+ OUTPUT_VARIABLE MAPNIK_FONTS_DIR
119+ )
120+ execute_process (COMMAND ${MAPNIK_CONFIG_EXECUTABLE} --input-plugins
121+ OUTPUT_STRIP_TRAILING_WHITESPACE
122+ OUTPUT_VARIABLE MAPNIK_PLUGINS_DIR
123+ )
124+ elseif (LibMapnik_VERSION STRGREATER_EQUAL "4" )
125+ pkg_get_variable (MAPNIK_FONTS_DIR libmapnik fonts_dir )
126+ pkg_get_variable (MAPNIK_PLUGINS_DIR libmapnik plugins_dir )
127+ endif ()
128+
109129if (NOT CMAKE_INSTALL_MODULESDIR)
110- set (CMAKE_INSTALL_MODULESDIR ${HTTPD_MODULES_DIR } )
130+ set (CMAKE_INSTALL_MODULESDIR ${HTTPD_LIBEXECDIR } )
111131endif ()
112132
113133if (Cairo_FOUND)
@@ -130,19 +150,44 @@ if(CMAKE_HAVE_PTHREAD_H)
130150 set (HAVE_PTHREAD 1)
131151endif ()
132152
133- set (VERSION ${PROJECT_VERSION} )
153+ set (MAPNIK_FONTS_DIR "${MAPNIK_FONTS_DIR} " )
154+ set (MAPNIK_FONTS_DIR_RECURSE 0)
155+ set (MAPNIK_PLUGINS_DIR "${MAPNIK_PLUGINS_DIR} " )
156+ set (RENDERD_CONFIG "/${CMAKE_INSTALL_SYSCONFDIR} /renderd.conf" )
157+ set (RENDERD_RUN_DIR "/${CMAKE_INSTALL_RUNSTATEDIR} /renderd" )
158+ set (RENDERD_TILE_DIR "/${CMAKE_INSTALL_LOCALSTATEDIR} /cache/renderd/tiles" )
159+
160+ set (RENDERD_PIDFILE "${RENDERD_RUN_DIR} /renderd.pid" )
161+ set (RENDERD_SOCKET "${RENDERD_RUN_DIR} /renderd.sock" )
162+
163+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} " )
164+ set (TILE_LOAD_FILENAME "tile.load" )
165+ set (VERSION "${PROJECT_VERSION} " )
134166
135167#-----------------------------------------------------------------------------
136168#
137- # config.h
169+ # Configure
138170#
139171#-----------------------------------------------------------------------------
140172
173+ # include/config.h.in
141174configure_file (
142175 ${PROJECT_SOURCE_DIR} /includes/config.h.in
143176 ${PROJECT_SOURCE_DIR} /includes/config.h
144177)
145178
179+ # etc/apache2/tile.load.in
180+ configure_file (
181+ ${PROJECT_SOURCE_DIR} /etc/apache2/tile.load.in
182+ ${PROJECT_BINARY_DIR} /tile.load
183+ )
184+
185+ # etc/renderd/renderd.conf.in
186+ configure_file (
187+ ${PROJECT_SOURCE_DIR} /etc/renderd/renderd.conf.in
188+ ${PROJECT_BINARY_DIR} /renderd.conf
189+ )
190+
146191#-----------------------------------------------------------------------------
147192#
148193# Build
@@ -157,6 +202,57 @@ add_subdirectory(src)
157202#
158203#-----------------------------------------------------------------------------
159204
205+ # Determine install destination for 'etc/apache2/tile.load.in'
206+ if (EXISTS "/etc/os-release" )
207+ execute_process (COMMAND sh -c ". /etc/os-release && echo $ID"
208+ OUTPUT_STRIP_TRAILING_WHITESPACE
209+ OUTPUT_VARIABLE DISTRO_ID
210+ )
211+ message (STATUS "Found ID='${DISTRO_ID} ' in '/etc/os-release'" )
212+ if (DISTRO_ID MATCHES "arch" )
213+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} /extra" )
214+ set (TILE_LOAD_FILENAME "httpd-tile.conf" )
215+ elseif (DISTRO_ID MATCHES "centos|fedora|rhel" )
216+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} .modules.d" )
217+ set (TILE_LOAD_FILENAME "11-tile.conf" )
218+ elseif (DISTRO_ID MATCHES "debian|ubuntu" )
219+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} /mods-available" )
220+ elseif (DISTRO_ID MATCHES "freebsd" )
221+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} /modules.d" )
222+ set (TILE_LOAD_FILENAME "080_tile.conf" )
223+ endif ()
224+ elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin" )
225+ set (TILE_LOAD_DIRECTORY "${HTTPD_SYSCONFDIR} /extra" )
226+ set (TILE_LOAD_FILENAME "httpd-tile.conf" )
227+ endif ()
228+ message (STATUS "File 'etc/apache2/tile.load.in' will be installed to '${TILE_LOAD_DIRECTORY} /${TILE_LOAD_FILENAME} '" )
229+
230+ # Directories
231+ install (
232+ DIRECTORY
233+ DESTINATION ${RENDERD_TILE_DIR}
234+ )
235+
236+ install (
237+ DIRECTORY
238+ DESTINATION ${RENDERD_RUN_DIR}
239+ )
240+
241+ # Configuration files
242+ install (
243+ FILES
244+ ${PROJECT_BINARY_DIR} /tile.load
245+ DESTINATION ${TILE_LOAD_DIRECTORY}
246+ RENAME ${TILE_LOAD_FILENAME}
247+ )
248+
249+ install (
250+ FILES
251+ ${PROJECT_BINARY_DIR} /renderd.conf
252+ DESTINATION /${CMAKE_INSTALL_SYSCONFDIR}
253+ )
254+
255+ # Targets
160256install (
161257 TARGETS
162258 mod_tile
@@ -169,6 +265,7 @@ install(
169265 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
170266)
171267
268+ # Man files
172269if (ENABLE_MAN)
173270install (
174271 FILES
0 commit comments