1 set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.navitproject.navit")
2 set(MACOSX_BUNDLE_BUNDLE_NAME "Navit")
5 if(DEFINED CMAKE_CXX_COMPILER AND CMAKE_CXX_COMPILER MATCHES "^$")
6 set(CMAKE_CXX_COMPILER CMAKE_CXX_COMPILER-NOTFOUND)
7 endif(DEFINED CMAKE_CXX_COMPILER AND CMAKE_CXX_COMPILER MATCHES "^$")
9 enable_language(CXX OPTIONAL)
10 endif(NOT DISABLE_CXX)
12 cmake_minimum_required(VERSION 2.6)
13 cmake_policy(VERSION 2.6)
15 set(PACKAGE_VERSION "0.5.0")
16 set(PACKAGE_NAME "navit-svn")
18 set(PACKAGE_STRING "${PACKAGE} ${PACKAGE_VERSION}")
20 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
21 include("${PROJECT_SOURCE_DIR}/cmake/navit_macros.cmake")
23 IF(NOT CMAKE_BUILD_TYPE)
24 SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
25 ENDIF(NOT CMAKE_BUILD_TYPE)
29 set(SHARE_DIR share/navit)
30 set(LOCALE_DIR share/locale)
31 set(IMAGE_DIR share/navit/xpm)
34 foreach(EXTRA_MODULE ${EXTRA_MODULES})
35 add_module(${EXTRA_MODULE} "extra module specified" TRUE)
39 list(APPEND NAVIT_LIBS ${EXTRA_LIBS})
43 include_directories(${EXTRA_INCLUDES})
46 ### Detect environment
48 add_plugin(support/ezxml "native Glib found" FALSE)
49 add_plugin(support/glib "native Glib found" FALSE)
50 add_plugin(support/zlib "native zlib found" FALSE)
51 add_plugin(support/libpng "native libpng found" FALSE)
52 add_plugin(support/wordexp "native wordexp found" FALSE)
53 add_module(font/freetype "freetype not found" FALSE)
54 add_module(graphics/android "FreeType library not found" FALSE)
55 add_module(graphics/gd "FreeType library not found" FALSE)
56 add_module(graphics/gtk_drawing_area "FreeType library not found" FALSE)
57 add_module(graphics/opengl "FreeType library not found" FALSE)
58 add_module(graphics/sdl "FreeType library not found" FALSE)
59 add_module(graphics/qt_qpainter "Qt libraries not found" FALSE)
60 add_module(gui/qml "Qt Declarative not found" FALSE)
61 add_module(gui/gtk "GTK libs not found" FALSE)
62 add_module(vehicle/gpsd "gpsd lib not found" FALSE)
63 add_module(vehicle/gypsy "gypsy lib not found" FALSE)
64 add_module(vehicle/maemo "Default" FALSE)
65 add_module(binding/dbus "dbus-glib-1 not found" FALSE)
66 add_module(speech/dbus "dbus-glib-1 not found" FALSE)
67 add_module(speech/cmdline "neither system() nor CreateProcess() found" FALSE)
68 add_module(vehicle/gpsd_dbus "dbus-glib-1 not found" FALSE)
69 add_module(speech/speech_dispatcher "speech_dispatcher lib not found" FALSE)
70 add_module(autoload/osso "Default" FALSE)
71 add_module(map/garmin "Garmin library not found" FALSE)
72 add_feature(ENABLE_NLS "default" TRUE)
75 INCLUDE (CheckIncludeFiles)
76 INCLUDE (CheckLibraryExists)
77 INCLUDE (CheckFunctionExists)
78 INCLUDE (CheckSymbolExists)
82 find_package(Freetype)
85 find_package(SDL_image)
88 find_package(GTK2 2.6 COMPONENTS gtk)
91 find_package(DBusGLib)
94 libfind_pkg_check_modules(FONTCONFIG fontconfig)
97 SET(QT_USE_QTSVG TRUE)
98 SET(QT_USE_QTXML TRUE)
99 SET(QT_USE_QTDECLARATIVE TRUE)
100 find_package(Qt4 COMPONENTS QtCore QtGui QtXml QtDeclarative QtSvg OPTIONAL)
101 endif (NOT DISABLE_QT)
102 #pkg-config based detection
103 find_package(PkgConfig)
105 pkg_check_modules(QUESOGLC quesoglc)
106 pkg_check_modules(LIBGPS libgps)
107 pkg_check_modules(LIBLOCATION liblocation)
108 pkg_check_modules(LIBOSSO libosso)
109 pkg_check_modules(LIBGPS19 libgps>=2.90)
110 pkg_check_modules(LIBGARMIN libgarmin)
111 endif(PKG_CONFIG_FOUND)
113 CHECK_INCLUDE_FILES(wordexp.h HAVE_WORDEXP)
114 CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
115 CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
116 CHECK_INCLUDE_FILES(byteswap.h HAVE_BYTESWAP_H)
117 CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND)
118 CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD)
119 CHECK_INCLUDE_FILES(sys/socket.h HAVE_SOCKET)
120 CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
121 CHECK_INCLUDE_FILES(locale.h HAVE_LC_MESSAGES)
122 CHECK_INCLUDE_FILES(libintl.h HAVE_LIBINTL)
123 CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
124 CHECK_INCLUDE_FILES(getopt.h HAVE_GETOPT_H)
125 CHECK_INCLUDE_FILES(string.h HAVE_STRING_H)
126 CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
127 CHECK_SYMBOL_EXISTS(system stdlib.h HAVE_SYSTEM)
128 CHECK_SYMBOL_EXISTS(CreateProcess windows.h HAVE_CREATEPROCESS)
129 CHECK_SYMBOL_EXISTS(stpcpy string.h HAVE_STPCPY)
130 CHECK_FUNCTION_EXISTS(sbrk HAVE_SBRK)
131 CHECK_FUNCTION_EXISTS(getdelim HAVE_GETDELIM)
132 CHECK_FUNCTION_EXISTS(getline HAVE_GETLINE)
136 #Required libraries, supplied with navit
137 if (NOT HAVE_LIBINTL)
138 add_plugin(intl_cmake "native libintl missing" TRUE)
139 set(USE_LIBGNUINTL TRUE)
141 CHECK_LIBRARY_EXISTS(intl libintl_fprintf "" NEEDS_LIBINTL)
143 list(APPEND NAVIT_LIBS intl)
146 endif(NOT HAVE_LIBINTL)
149 if (CMAKE_USE_PTHREADS_INIT)
150 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
151 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
152 set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
153 endif(CMAKE_USE_PTHREADS_INIT)
156 include_directories(${Glib_INCLUDE_DIRS})
157 list(APPEND NAVIT_LIBS ${Glib_LIBRARIES})
159 set_with_reason(support/glib "Glib not found" TRUE ${INTL_LIBS})
163 include_directories(${Gmodule_INCLUDE_DIRS})
164 list(APPEND NAVIT_LIBS ${Gmodule_LIBRARIES})
168 include_directories(${ZLIB_INCLUDE_DIRS})
169 list(APPEND NAVIT_LIBS ${ZLIB_LIBRARIES})
171 message(STATUS "using internal zlib")
172 set_with_reason(support/zlib "native zlib missing" TRUE)
174 if(OPENSSL_CRYPTO_LIBRARIES)
175 set(HAVE_LIBCRYPTO 1)
176 include_directories(${OPENSSL_INCLUDE_DIR})
177 list(APPEND NAVIT_LIBS ${OPENSSL_CRYPTO_LIBRARIES})
181 include_directories(${PNG_INCLUDE_DIR})
182 list(APPEND NAVIT_LIBS ${PNG_LIBRARIES})
184 message(STATUS "using internal libpng")
185 set_with_reason(support/libpng "native libpng missing" TRUE)
187 if (NOT HAVE_WORDEXP)
188 message(STATUS "wordexp.h not found. use internal wordexp")
189 set_with_reason(support/wordexp "native wordexp missing" TRUE)
192 set_with_reason(support/ezxml "Glib not found" TRUE)
196 pkg_check_modules(FRIBIDI fribidi)
197 pkg_check_modules(FRIBIDI2 fribidi>=0.19.0)
198 include_directories(${FREETYPE_INCLUDE_DIRS})
199 set_with_reason(font/freetype "freetype found" TRUE "${FREETYPE_LIBRARY};${FONTCONFIG_LDFLAGS};${FRIBIDI_LIBRARIES}")
201 MESSAGE("No freetype library found, graphics modules may not be available")
202 set_with_reason(graphics/android "FreeType library not found" FALSE)
203 set_with_reason(graphics/gd "FreeType library not found" FALSE)
204 set_with_reason(graphics/gtk_drawing_area "FreeType library not found" FALSE)
205 set_with_reason(graphics/opengl "FreeType library not found" FALSE)
206 set_with_reason(graphics/sdl "FreeType library not found" FALSE)
207 endif(FREETYPE_FOUND)
210 set(HAVE_FONTCONFIG 1)
211 endif(FONTCONFIG_FOUND)
214 if (QT_QTCORE_FOUND AND QT_QTGUI_FOUND AND FREETYPE_FOUND)
215 include(${QT_USE_FILE})
216 set_with_reason(graphics/qt_qpainter "Qt libraries found" TRUE ${QT_LIBRARIES})
218 if (QT_QTDECLARATIVE_FOUND AND QT_QTXML_FOUND)
219 set_with_reason(gui/qml "Qt Declarative found" TRUE ${QT_LIBRARIES})
224 elseif( USE_SVG AND graphics/qt_qpainter)
225 message( WARNING "QT compiled without SVG support")
231 include_directories(${GTK2_INCLUDE_DIRS})
233 set_with_reason(gui/gtk "GTK libs found" TRUE ${GTK2_LIBRARIES})
235 set_with_reason(graphics/gtk_drawing_area "GTK libs found" TRUE ${GTK2_LIBRARIES})
236 endif(FREETYPE_FOUND)
239 CHECK_LIBRARY_EXISTS(freeimage FreeImage_Load "" FREEIMAGE_FOUND)
240 if (QUESOGLC_FOUND AND FREETYPE_FOUND)
241 if (OPENGL_FOUND AND OPENGL_GLU_FOUND AND OPENGL_GLUT_FOUND AND OPENGL_INCLUDE_DIR AND FREEIMAGE_FOUND)
242 message (STATUS "opengl found: ${OPENGL_gl_LIBRARY}")
243 include_directories(${OPENGL_INCLUDE_DIR})
244 set_with_reason(graphics/opengl "Found OpenGL and Quesoglc" TRUE ${OPENGL_gl_LIBRARY};${OPENGL_glu_LIBRARY};${GLUT_glut_LIBRARY};freeimage)
246 message (STATUS "opengl not found")
249 message (STATUS "no glc implementation found. Install Quesoglc for OpenGL support")
250 endif(QUESOGLC_FOUND AND FREETYPE_FOUND)
252 if(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND)
256 list(APPEND SDL_LIBRARY ${SDLTTF_LIBRARY})
258 set_with_reason(graphics/sdl "SDL/SDL_image libs found" TRUE ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY})
259 endif(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND)
262 set_with_reason(vehicle/gpsd "gpsd lib found" TRUE ${LIBGPS_LDFLAGS})
266 set_with_reason(vehicle/gypsy "gypsy lib found" TRUE)
270 include_directories(${LIBGARMIN_INCLUDE_DIRS})
271 set_with_reason(map/garmin "Garmin library found" TRUE ${LIBGARMIN_LDFLAGS})
272 endif(LIBGARMIN_FOUND)
275 include_directories(${DBusGLib_INCLUDE_DIRS})
276 set_with_reason(binding/dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
277 set_with_reason(speech/dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
278 set_with_reason(vehicle/gpsd_dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
282 set_with_reason(speech/speech_dispatcher "speech_dispatcher lib found" TRUE speechd)
283 endif(HAVE_LIBSPEECHD)
286 set_with_reason(speech/cmdline "system() call is available" TRUE)
289 if (HAVE_CREATEPROCESS)
290 set_with_reason(speech/cmdline "CreateProcess() call is available" TRUE)
291 endif(HAVE_CREATEPROCESS)
294 execute_process(COMMAND echo "<test/>" COMMAND xgettext -L glade - RESULT_VARIABLE GETTEXT_RET)
295 if ("${GETTEXT_RET}" STREQUAL "0")
296 set(XGETTEXT_GLADE TRUE)
298 set(XGETTEXT_GLADE FALSE)
302 if (LIBLOCATION_FOUND)
303 set_with_reason(vehicle/maemo "Maemo location library found" TRUE ${LIBLOCATION_LIBRARIES})
304 endif(LIBLOCATION_FOUND)
307 set_with_reason(autoload/osso "Maemo osso library found" TRUE ${LIBOSSO_LIBRARIES})
311 add_module(graphics/null "Default" TRUE)
312 add_module(osd/core "Default" TRUE)
313 add_module(vehicle/demo "Default" TRUE)
314 add_module(vehicle/file "Default" TRUE)
315 add_module(vehicle/null "Default" FALSE)
316 add_module(gui/internal "Default" TRUE)
317 add_module(map/binfile "Default" TRUE)
318 add_module(map/filter "Default" TRUE)
320 add_module(map/mg "Default" TRUE)
322 add_module_plugin(support/shapefile "Default" TRUE)
323 set(map_shapefile_INCLUDES "${CMAKE_SOURCE_DIR}/navit/support/shapefile")
324 #set(map_shapefile_LIBRARY_DIRS "${CMAKE_BINARY_DIR}/navit/support/shapefile")
325 set(map_shapefile_LIBS "support_shapefile")
326 add_module(map/shapefile "Default" TRUE)
327 add_module(map/textfile "Default" TRUE)
328 add_module(map/csv "Default" TRUE)
330 #Modules without test yet
331 add_module(plugin/pedestrian "Default" FALSE)
332 add_module(speech/android "Default" FALSE)
333 add_module(speech/espeak "Default" FALSE)
334 add_plugin(support/espeak "Default" FALSE)
335 add_module(vehicle/android "Default" FALSE)
336 add_module(vehicle/iphone "Default" FALSE)
337 add_module(vehicle/wince "Default" FALSE)
338 add_module(graphics/cocoa "Default" FALSE)
341 add_feature(USE_PLUGINS "default" TRUE)
342 add_feature(SHARED_LIBNAVIT "default" FALSE)
343 add_feature(USE_ROUTING "default" TRUE)
344 add_feature(USE_SVG "default" TRUE)
345 add_feature(SVG2PNG "default" TRUE)
346 add_feature(SAMPLE_MAP "default" TRUE)
348 IF(NOT svg2png_scaling)
349 set(svg2png_scaling 0 32 48 64)
351 IF(NOT svg2png_scaling_flag)
352 set(svg2png_scaling_flag 32)
354 IF(NOT svg2png_scaling_nav)
355 set(svg2png_scaling_nav 64)
358 add_feature(DBUS_USE_SYSTEM_BUS "default" FALSE)
359 add_feature(BUILD_MAPTOOL "default" TRUE)
360 add_feature(XSL_PROCESSING "default" TRUE)
362 find_program(XSLT_PROCESSOR NAMES saxon saxon8 saxon-xslt saxonb-xslt xsltproc transform.exe)
364 execute_process(COMMAND ${XSLT_PROCESSOR} -snone ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test.xml ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test.xslt
365 RESULT_VARIABLE SAXON_ERROR ERROR_QUIET)
367 set (XSLT_PROCESSOR_OPTIONS -snone)
370 cfg_feature(XSL_PROCESSING "Saxon missing" FALSE)
371 endif(XSLT_PROCESSOR)
373 if (NOT XSL_PROCESSING)
374 message(WARNING "XSLT processing disabled. You have to configure navit.xml yourself, or enable XSLT processing.")
377 ### Platform specific settings
379 SET(CACHE_SIZE 1048576)
380 endif(NOT CACHE_SIZE)
383 SET(CMAKE_EXECUTABLE_SUFFIX ".exe")
384 add_module(graphics/win32 "Windows detected" TRUE)
385 add_plugin(support/win32 "Windows detected" TRUE)
387 SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -I ${CMAKE_CURRENT_SOURCE_DIR}/navit/gui/win32/resources <DEFINES> -i <SOURCE> -o <OBJECT>")
388 set_with_reason(support/ezxml "Windows detected" TRUE)
389 set_with_reason(speech/espeak "Windows detected" TRUE)
390 set_with_reason(support/espeak "Windows detected" TRUE)
392 # vehicle_file is broken for windows. use vehicle_wince instead
393 # whicle_wince isn't buildable on non-CE windows ssytems
395 # plugins currently not supported on windows
396 set_with_reason(USE_PLUGINS "win32: currently not supported" FALSE)
398 set(HAVE_API_WIN32_BASE 1)
402 if(NOT graphics/qt_qpainter)
403 set_with_reason(USE_SVG "win32: SVGs currently not supported" FALSE)
404 else(NOT graphics/qt_qpainter)
405 MESSAGE(STATUS "win32: SVGs may not be supported by every available graphics")
406 endif(NOT graphics/qt_qpainter)
410 set(LOCALE_DIR locale)
414 if(HAVE_GTK2 AND NOT MSVC)
415 #GTK requires special compile flags
416 add_definitions("-mms-bitfields")
417 endif(HAVE_GTK2 AND NOT MSVC)
418 if(MSVC AND support/espeak)
419 add_definitions(-DPLATFORM_WINDOWS)
420 endif(MSVC AND support/espeak)
421 CHECK_LIBRARY_EXISTS(ws2_32 WSAStartup "" HAVE_WINSOCK)
423 list(APPEND NAVIT_LIBS ws2_32)
425 CHECK_LIBRARY_EXISTS(ws2 WSAStartup "" HAVE_WINSOCK_2)
428 list(APPEND NAVIT_LIBS ws2)
433 set(HAVE_PRAGMA_PACK 1)
434 add_plugin(support/xgetopt "Windows detected" TRUE)
435 set(ENABLE_NLS FALSE)
441 set(XSLTS "windows;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process")
443 if (WIN32 AND NOT WINCE)
444 set(HAVE_PRAGMA_PACK 1)
445 set(HAVE_API_WIN32 1)
447 #set(BUILD_MAPTOOL FALSE)
448 set(SAMPLE_MAP FALSE)
449 list(APPEND NAVIT_LIBS winmm)
452 add_plugin(support/libc "wince detected" TRUE)
453 set(HAVE_PRAGMA_PACK 1)
454 set(HAVE_API_WIN32_CE 1)
455 set(BUILD_MAPTOOL FALSE)
456 set_with_reason(vehicle/file "wince: currently broken" FALSE)
457 set_with_reason(vehicle/wince "wince detected" TRUE)
459 if (APPLE OR USE_UIKIT)
460 set_with_reason(vehicle/iphone "apple detected" TRUE)
461 set_with_reason(graphics/cocoa "apple detected" TRUE)
462 set(BUILD_BUNDLE TRUE CACHE BOOLEAN "build an osx bundle")
465 set(LOCALEDIR "${LOCALE_DIR}/locale")
467 find_program(BZCAT NAMES bzcat)
469 if(CMAKE_CROSSCOMPILING)
470 cfg_feature(SAMPLE_MAP "downloading binary map because of cross compiling" TRUE)
472 cfg_feature(SAMPLE_MAP "downloading binary map because of missing bzcat" TRUE)
473 endif(CMAKE_CROSSCOMPILING)
477 # for android API 3 compatiblity
478 SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,/data/data/org.navitproject.navit/lib/")
480 find_program(ANDROID_LOCATION NAMES android android.bat)
481 find_program(ANT_LOCATION NAMES ant)
482 if (NOT ANT_LOCATION)
483 message_error("Could not find ant. Please install ant and add it to the search path.")
485 if (NOT ANDROID_LOCATION)
486 message_error( "Could not find 'Android SDK and AVD Manager'. Please install the android sdk and add the <android-sdk>/tools directory to the search path.")
488 if (NOT XSL_PROCESSING)
489 message(WARNING "XSLT processing disabled. You have to configure navit.xml yourself, or enable XSLT processing.")
491 set(XSLTS "android;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process")
492 list(APPEND NAVIT_LIBS log)
493 set(HAVE_API_ANDROID 1)
494 set_with_reason(graphics/android "Android detected" TRUE)
495 set_with_reason(speech/android "Android detected" TRUE)
496 set_with_reason(vehicle/android "Android detected" TRUE)
497 set_with_reason(plugin/pedestrian "Android detected" TRUE)
498 cfg_feature(SHARED_LIBNAVIT "Android detected" TRUE)
500 add_feature(XPM2PNG "Android detected" TRUE)
501 set(NAVIT_COMPILE_FLAGS "${NAVIT_COMPILE_FLAGS} -fPIC")
505 if(FREETYPE_FOUND AND NOT FONTCONFIG_FOUND)
506 add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/navit/fonts")
510 find_program(IMAGE_CONVERTER NAMES convert)
511 execute_process(COMMAND ${IMAGE_CONVERTER} -list format OUTPUT_VARIABLE CONVERT_FORMATS)
512 if(CONVERT_FORMATS MATCHES ".*XPM[ *][ ]*XPM[ ]*r[w-].*")
513 set(IMAGE_CONVERTER_XPM ${IMAGE_CONVERTER})
516 set(CMAKE_APPBUNDLE_PATH "")
518 if (NOT IMAGE_CONVERTER_SVGZ)
519 set (SVG_CONVERTER_PROGS rsvg-convert ksvgtopng ksvgtopng4 inkscape)
520 set (CMAKE_FIND_APPBUNDLE "NEVER")
521 find_program(IMAGE_CONVERTER_SVGZ NAMES ${SVG_CONVERTER_PROGS} PATHS /Applications/Inkscape.app/Contents/Resources/bin)
522 if (NOT IMAGE_CONVERTER_SVGZ)
523 if(CONVERT_FORMATS MATCHES ".*[ ]*SVG[ ]*r[w-].*")
524 set(IMAGE_CONVERTER_SVGZ ${IMAGE_CONVERTER})
527 endif(NOT IMAGE_CONVERTER_SVGZ)
528 if (NOT IMAGE_CONVERTER_SVG)
529 set(IMAGE_CONVERTER_SVG ${IMAGE_CONVERTER_SVGZ})
530 endif(NOT IMAGE_CONVERTER_SVG)
532 message(STATUS "SVG2PNG-Converter: ${IMAGE_CONVERTER_SVGZ}")
533 if (NOT IMAGE_CONVERTER_SVGZ)
534 message(WARNING "No SVG2PNG converter found. Please install one of the following tools: ${SVG_CONVERTER_PROGS}, or imagemagick with svg support")
535 set_with_reason(SVG2PNG "no converter found" FALSE)
536 endif(NOT IMAGE_CONVERTER_SVGZ)
540 message(STATUS "XPM2PNG-Converter: ${IMAGE_CONVERTER_XPM}")
541 if (NOT IMAGE_CONVERTER_XPM)
542 message(WARNING "No XPM2PNG converter found. Please install imagemagick with xpm support")
543 set_with_reason(XPM2PNG "no converter found" FALSE)
544 endif(NOT IMAGE_CONVERTER_XPM)
547 set(XSLTS ${XSLTS} CACHE STRING "define a semicolon seperated list of XSLTs to process")
551 set(MODULE_BUILD_TYPE "MODULE")
552 add_definitions("-fPIC")
553 list(APPEND NAVIT_LIBS dl)
555 set(MODULE_BUILD_TYPE "STATIC")
557 message(STATUS "Use plugins: ${MODULE_BUILD_TYPE}")
560 set(NAVIT_CORE_BUILD_TYPE "STATIC")
561 else(SHARED_LIBNAVIT)
562 set(NAVIT_CORE_BUILD_TYPE "SHARED")
563 endif(SHARED_LIBNAVIT)
565 CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
566 CHECK_INCLUDE_FILES ("sys/param.h;sys/mount.h" HAVE_SYS_MOUNT_H)
567 CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
568 CHECK_FUNCTION_EXISTS (getcwd HAVE_GETCWD)
569 CHECK_FUNCTION_EXISTS (memalign HAVE_MEMALIGN)
570 CHECK_FUNCTION_EXISTS (valloc HAVE_VALLOC)
571 CHECK_FUNCTION_EXISTS (posix_memalign HAVE_POSIX_MEMALIGN)
572 CHECK_FUNCTION_EXISTS (popen HAVE_POPEN)
573 CHECK_FUNCTION_EXISTS (_atoi64 HAVE__ATOI64)
575 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
577 add_definitions("-Wall")
579 add_definitions("${EXTRA_DEFINES}")
582 if (NOT NAVIT_DEPENDENCY_ERROR)
583 message("\nSummary:\n")
585 set(SUMMARY_COMPONENTS ${ALL_PLUGINS} ${ALL_MODULE_PLUGINS} ${ALL_MODULES})
586 list(SORT SUMMARY_COMPONENTS)
589 foreach ( SUMMARY_COMP ${SUMMARY_COMPONENTS})
590 # split path to type and name
591 string(REPLACE "/" ";" SUMMARY_COMP_LIST ${SUMMARY_COMP})
592 list(GET SUMMARY_COMP_LIST 0 SUMMARY_COMP_TYPE)
593 list(LENGTH SUMMARY_COMP_LIST SUMMARY_COMP_LIST_LENGTH)
594 if ( SUMMARY_COMP_LIST_LENGTH GREATER 1 )
595 list(GET SUMMARY_COMP_LIST 1 SUMMARY_COMP_NAME)
597 set(SUMMARY_COMP_NAME ${SUMMARY_COMP})
599 if ( NOT ${LAST_TYPE} STREQUAL ${SUMMARY_COMP_TYPE})
600 message("\n--->>> ${SUMMARY_COMP_TYPE}")
601 set(LAST_TYPE ${SUMMARY_COMP_TYPE})
604 message("Enabled ${SUMMARY_COMP_NAME} ( ${${SUMMARY_COMP}_REASON} )")
606 message("Disabled ${SUMMARY_COMP_NAME} ( ${${SUMMARY_COMP}_REASON} )")
610 list(SORT ALL_FEATURES)
611 message("\n--->>> Features")
612 foreach ( FEATURE ${ALL_FEATURES})
614 message("Enabled ${FEATURE} ( ${${FEATURE}_REASON} )")
616 message("Disabled ${FEATURE} ( ${${FEATURE}_REASON} )")
622 message("\nProcessing XSLTS: ${XSLTS}")
624 message("\nProcessing XSLTS: NONE")
626 endif(XSL_PROCESSING)
628 message("\nTo configure your build use 'cmake -L' to find changeable variables and run cmake again with 'cmake -D <var-name>=<your value> ...'.")
629 endif(NOT NAVIT_DEPENDENCY_ERROR)
631 add_subdirectory (navit)
632 add_subdirectory (man)
636 add_subdirectory (po)