11
2- cmake_minimum_required (VERSION 2.8...3.22 )
2+ cmake_minimum_required (VERSION 3.12 )
33if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} )
44 message (FATAL_ERROR "In-source builds not allowed.
55 Please make a new directory (called a build directory) and run CMake from there.
66 You may need to remove CMakeCache.txt." )
77endif ()
88
9- #---------------------------------------------
10- #---------------------------------------------
119#---------------------------------------------
1210
1311project (PGR_WORKSHOP LANGUAGES NONE)
1412set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake" )
1513
16- #---------------------------------------------
17- #---------------------------------------------
1814#---------------------------------------------
1915
2016#---------------------------------------------
@@ -25,7 +21,7 @@ set(WORKSHOP_AREA "FOSS4G ${PGR_WORKSHOP_CITY}")
2521set (COPYRIGHT "2010-2024 pgRouting Developers" )
2622set (PGR_WORKSHOP_VERSION_MAJOR "3" )
2723set (PGR_WORKSHOP_VERSION_MINOR "0" )
28- set (PGR_WORKSHOP_VERSION_PATCH "0 " )
24+ set (PGR_WORKSHOP_VERSION_PATCH "1 " )
2925set (PGR_WORKSHOP_VERSION_DEV "" )
3026set (PGR_WORKSHOP_VERSION "${PGR_WORKSHOP_VERSION_MAJOR} .${PGR_WORKSHOP_VERSION_MINOR} " )
3127set (PGR_WORKSHOP_RELEASE "${PGR_WORKSHOP_VERSION_MAJOR} .${PGR_WORKSHOP_VERSION_MINOR} .${PGR_WORKSHOP_VERSION_PATCH}${PGR_WORKSHOP_VERSION_DEV} " )
@@ -62,6 +58,10 @@ set(PGR_WORKSHOP_LITTLE_NET_BBOX "-48.52,-1.46,-48.45,-1.41")
6258set (PGR_WORKSHOP_DOWNLOAD_DIR "workshop-2024" )
6359set (DATE_OF_DATA "Sep 2024" )
6460
61+ if (WORKSHOP_DEBUG)
62+ message (STATUS "WORKSHOP_CITY_FILE=${WORKSHOP_CITY_FILE} " )
63+ endif ()
64+
6565set (OSMID_1 "10982869752" )
6666set (OSMID_2 "11818739588" )
6767set (OSMID_3 "491465035" )
@@ -91,26 +91,46 @@ set(CH7_PLACE_2 ${PLACE_1})
9191set (CH7_OSMID_1 ${OSMID_5} )
9292set (CH7_OSMID_2 ${OSMID_1} )
9393
94+
95+
9496#---------------------------------------------
9597# minimum versions
9698#---------------------------------------------
97- set (SPHINX_MINIMUM_VERSION "2.3 " )
99+ set (SPHINX_MINIMUM_VERSION "4.0.0 " )
98100set (Osm2pgrouting_FIND_VERSION "2.3" )
99101
100102
101103#---------------------------------------------
102104# Finding sphinx
103105#---------------------------------------------
104- find_package (Sphinx REQUIRED)
105- if (NOT SPHINX_FOUND)
106+
107+ find_program (SPHINX_EXECUTABLE
108+ REQUIRED
109+ NAMES sphinx-build
110+ DOC "Sphinx Documentation Builder (sphinx-doc.org)"
111+ )
112+
113+ # Getting sphinx version
114+ execute_process (COMMAND "${SPHINX_EXECUTABLE} " --version
115+ OUTPUT_VARIABLE SPHINX_EXECUTABLE_VERSION
116+ OUTPUT_STRIP_TRAILING_WHITESPACE)
117+ string (REPLACE "sphinx-build" "" SPHINX_EXECUTABLE_VERSION "${SPHINX_EXECUTABLE_VERSION} " )
118+ string (STRIP "${SPHINX_EXECUTABLE_VERSION} " SPHINX_EXECUTABLE_VERSION)
119+
120+ if ("${SPHINX_EXECUTABLE_VERSION} " VERSION_LESS "${SPHINX_MINIMUM_VERSION} " )
121+ message (FATAL_ERROR "Sphinx required version is ${SPHINX_MINIMUM_VERSION} " )
122+ endif ()
123+
124+ message (STATUS "Found ${SPHINX_EXECUTABLE} version '${SPHINX_EXECUTABLE_VERSION} '" )
125+
126+ if (NOT SPHINX_EXECUTABLE)
106127 message (FATAL_ERROR "Sphinx not found" )
107- #elseif (SPHINX_VERSION VERSION_LESS SPHINX_MINIMUM_VERSION)
108- # message(WARNING "Your Sphinx version is too old!
109- # This project requires Sphinx v1.0 or above to produce
110- # proper documentation (you have v${SPHINX_VERSION}).
111- # You will get output but it will have errors.")
128+ return ()
112129endif ()
113130
131+ set (SPHINX_FLAGS "" CACHE STRING "Flags to pass to sphinx-build" )
132+ separate_arguments (sphinx_flags UNIX_COMMAND "${SPHINX_FLAGS} " )
133+
114134#---------------------------------------------
115135# Finding osm2pgRouting
116136#---------------------------------------------
@@ -131,138 +151,79 @@ message(STATUS "Found dropdb ${DROPDB_EXECUTABLE}")
131151#---------------------------------------------
132152# Perl
133153#---------------------------------------------
134- #---------------------------------------------
135- include (FindPerl)
136- if (NOT PERL_EXECUTABLE)
137- message (FATAL_ERROR " Please check your Perl installation." )
138- endif (NOT PERL_EXECUTABLE)
139-
140- execute_process (
141- COMMAND ${PERL_EXECUTABLE} -MDateTime -e ""
142- ERROR_QUIET RESULT_VARIABLE DATETIME_STAUS
143- )
154+ find_package (Perl REQUIRED)
144155
145156
146157#---------------------------------------------
147- #---------------------------------------------
148- #---------------------------------------------
149- #---------------------------------------------
150-
151158# Kind of output
152159# http://www.sphinx-doc.org/en/stable/builders.html
153-
154- #---------------------------------------------
155160#---------------------------------------------
156- #---------------------------------------------
157- #---------------------------------------------
158- option (ALL_DOC
159- "Set ON|OFF (default=OFF) to build all documentation styles (exept LOCALE)" OFF )
160-
161- option (HTML
162- "Set ON|OFF (default=OFF) to build Documentation library tree as HTML" ON )
163-
164- option (DIRHTML
165- "Set ON|OFF (default=OFF) to build Documentation library tree as DIRHTML
166- STATUS: the navigation does not work " OFF
167- )
168-
169- option (SINGLEHTML
170- "Set ON|OFF (default=OFF) to build Documentation library tree as a single HTML file" OFF
171- )
172-
173- option (PICKLE
174- "Set ON|OFF (default=OFF) to build Documentation library tree as PICKLE" OFF )
175-
176- option (JSON
177- "Set ON|OFF (default=OFF) to build Documentation library tree as JSON page" OFF )
161+ option (BUILD_HTML "Set ON|OFF (default=OFF) to build Documentation library tree as HTML" ON )
162+ option (BUILD_PDF "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF )
163+ option (BUILD_LOCALE "Set ON|OFF (default=OFF) to build the locale files" OFF )
164+ option (BUILD_LINKCHECK "Set ON|OFF (default=OFF) to build Documentation library tree as LINKCHECK page" OFF )
178165
179- option (HTMLHELP
180- "Set ON|OFF (default=OFF) to build Documentation library tree as HTMLHELP page" OFF )
181166
182- option (DUMMY
183- "Set ON|OFF (default=OFF) to build Documentation library tree as DUMMY page" OFF )
184-
185- option (LATEX
186- "Set ON|OFF (default=OFF) to build Documentation library tree as LATEX page" OFF )
187-
188- option (LINKCHECK
189- "Set ON|OFF (default=OFF) to build Documentation library tree as LINKCHECK page" OFF )
190-
191- option (LOCALE
192- "Set ON|OFF (default=OFF) to build the locale files of all languages." OFF
193- )
194-
195- foreach (opt HTML DIRHTML SINGLEHTML PICKLE JSON HTMLHELP LATEX LINKCHECK)
196- if (${${opt} } OR ALL_DOC)
167+ foreach (opt BUILD_HTML BUILD_PDF BUILD_LOCALE BUILD_LINKCHECK)
168+ if (${${opt} } OR WITH_ALL_DOC)
197169 string (TOLOWER ${opt} val)
170+ string (REPLACE "build_" "" val ${val} )
198171 list (APPEND PGR_WORKSHOP_DOC_TARGETS ${val} )
199172 endif ()
200173endforeach ()
201174
202- message (STATUS "PGR_WORKSHOP_DOC_TARGETS = ${PGR_WORKSHOP_DOC_TARGETS} " )
203-
204-
205- #---------------------------------------------
206- #---------------------------------------------
207- #---------------------------------------------
175+ if ("${PGR_WORKSHOP_DOC_TARGETS} " STREQUAL "" )
176+ message (FATAL_ERROR "No documentation targets found" )
177+ endif ()
208178
209- # LANGUAGES SETINGS
179+ message ( STATUS "PGR_WORKSHOP_DOC_TARGETS= ${PGR_WORKSHOP_DOC_TARGETS} " )
210180
211- #---------------------------------------------
212- #---------------------------------------------
213- #---------------------------------------------
214181
215182#---------------------------------------------
216- # Avaliable Languages
217- # English is allways built
218-
219- # list of sphinx languges support
220- # http://www.sphinx-doc.org/en/stable/config.html#confval-language
221- # TODO: figure out how to support this
222- # "el" "hu" "id" "zh")
183+ # LANGUAGES SETTINGS
223184#---------------------------------------------
224- set (PGR_WORKSHOP_SUPPORTED_LANGUAGES "es" "ja" )
225- set (PGR_WORKSHOP_ENGLISH "en" )
185+ list (APPEND WORKSHOP_LANGUAGES_TRANSLATED "EN" "ES" "SV" )
186+ list (APPEND WORKSHOP_LANGUAGES "en" "es" "ja" "sv" )
187+ message (STATUS "WORKSHOP_LANGUAGES=${WORKSHOP_LANGUAGES} " )
226188
227- #---------------------------------------------
228- # Language options
229- #---------------------------------------------
230- option (ALL_LANG
231- "Set ON|OFF (default=OFF) to build all documentation supported languages
232- ${PGR_WORKSHOP_SUPPORTED_LANGUAGES} " OFF )
233-
234- foreach (lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES} )
189+ foreach (lang ${WORKSHOP_LANGUAGES} )
235190 string (TOUPPER ${lang} val)
236- option (${val}
237- "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF )
191+ if ("${val} " IN_LIST WORKSHOP_LANGUAGES_TRANSLATED)
192+ option (${val} "Set ON|OFF (default=ON) build ${lang} Documentation" ON )
193+ else ()
194+ option (${val} "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF )
195+ endif ()
238196endforeach ()
239197
240198#---------------------------------------------
241199# Catching the language options to be build
242200#---------------------------------------------
243- list (APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${PGR_WORKSHOP_ENGLISH} )
244- foreach (lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES} )
201+ foreach (lang ${WORKSHOP_LANGUAGES} )
245202 string (TOUPPER ${lang} opt)
246- if (${opt} OR ALL_LANG )
203+ if (${opt} )
247204 list (APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${lang} )
248205 endif ()
249206endforeach ()
250207
208+ if ("${PGR_WORKSHOP_BUILD_LANGUAGES} " STREQUAL "" )
209+ message (FATAL_ERROR "No documentation languages found" )
210+ endif ()
211+
212+ message (STATUS "PGR_WORKSHOP_BUILD_LANGUAGES=${PGR_WORKSHOP_BUILD_LANGUAGES} " )
213+
214+
251215
252216#---------------------------------------------
253217# All languages po files are to be generated
254218#---------------------------------------------
255- set (SPHINXINTL_LANGUAGE ${PGR_WORKSHOP_ENGLISH} )
256219if (LOCALE)
257- foreach (lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES } )
220+ foreach (lang ${WORKSHOP_LANGUAGES } )
258221 set (SPHINXINTL_LANGUAGE "${SPHINXINTL_LANGUAGE} ,${lang} " )
259222 endforeach ()
260- set (PGR_WORKSHOP_LANGUAGES ${PGR_WORKSHOP_ENGLISH} )
223+ message ( STATUS "SPHINXINTL_LANGUAGE= ${SPHINXINTL_LANGUAGE} " )
261224endif ()
262225
263226
264- message (STATUS "SPHINXINTL_LANGUAGE ${SPHINXINTL_LANGUAGE} " )
265-
266227
267228#------------------------------------------
268229# Used to generate the languages bar
@@ -286,20 +247,15 @@ INSERT_INTO_MAP("ko" "한국어")
286247INSERT_INTO_MAP("pl" "Polski" )
287248INSERT_INTO_MAP("pt" "Portugus" )
288249INSERT_INTO_MAP("ru" "Русский" )
250+ INSERT_INTO_MAP("sv" "Svenska" )
289251INSERT_INTO_MAP("zh" "中文" )
290252
291253
292254message (STATUS "PGR_WORKSHOP_BUILD_LANGUAGES = ${PGR_WORKSHOP_BUILD_LANGUAGES} " )
293255message (STATUS "SPHINXINTL_LANGUAGE = ${SPHINXINTL_LANGUAGE} " )
294256
295257#---------------------------------------------
296- #---------------------------------------------
297- #---------------------------------------------
298-
299- # The list of projects to be documented
300-
301- #---------------------------------------------
302- #---------------------------------------------
258+ # The documentation
303259#---------------------------------------------
304260
305261add_subdirectory (docs)
0 commit comments