1 set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.navitproject.navit")
2 set(MACOSX_BUNDLE_BUNDLE_NAME "Navit")
5 # Workaround for CMake issue 8345 / 9220, see http://trac.navit-project.org/ticket/1041
6 if(DEFINED CMAKE_CXX_COMPILER AND CMAKE_CXX_COMPILER MATCHES "^$")
7 set(CMAKE_CXX_COMPILER CMAKE_CXX_COMPILER-NOTFOUND)
8 endif(DEFINED CMAKE_CXX_COMPILER AND CMAKE_CXX_COMPILER MATCHES "^$")
10 enable_language(CXX OPTIONAL)
11 endif(NOT DISABLE_CXX)
13 cmake_minimum_required(VERSION 2.6)
14 cmake_policy(VERSION 2.6)
16 set(PACKAGE_VERSION "0.5.0")
17 set(PACKAGE_NAME "navit-svn")
19 set(PACKAGE_STRING "${PACKAGE} ${PACKAGE_VERSION}")
21 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
22 include("${PROJECT_SOURCE_DIR}/cmake/navit_macros.cmake")
24 IF(NOT CMAKE_BUILD_TYPE)
25 SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
26 ENDIF(NOT CMAKE_BUILD_TYPE)
30 set(SHARE_DIR share/navit)
31 set(LOCALE_DIR share/locale)
32 set(IMAGE_DIR share/navit/xpm)
33 set(MAN_DIR share/man/man1)
35 IF(UNIX AND NOT ANDROID AND NOT APPLE)
37 MESSAGE(STATUS "LIBDIR variable is not defined. It will be autodetected now.")
38 MESSAGE(STATUS "You can set it manually with -DLIBDIR=<value>")
40 IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
42 MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'")
43 ELSE (CMAKE_SIZEOF_VOID_P EQUAL 4)
45 MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'")
46 ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
48 GET_FILENAME_COMPONENT (LIB_DIR ${LIBDIR} NAME)
49 MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'")
51 ELSE (UNIX AND NOT ANDROID AND NOT APPLE)
53 ENDIF (UNIX AND NOT ANDROID AND NOT APPLE)
55 foreach(EXTRA_MODULE ${EXTRA_MODULES})
56 add_module(${EXTRA_MODULE} "extra module specified" TRUE)
60 list(APPEND NAVIT_LIBS ${EXTRA_LIBS})
64 include_directories(${EXTRA_INCLUDES})
68 link_directories(${EXTRA_LIBDIR})
71 ### Detect environment
73 add_plugin(support/ezxml "native Glib found" FALSE)
74 add_plugin(support/glib "native Glib found" FALSE)
75 add_plugin(support/zlib "native zlib found" FALSE)
76 add_plugin(support/libpng "native libpng found" FALSE)
77 add_plugin(support/wordexp "native wordexp found" FALSE)
78 add_module(font/freetype "freetype not found" FALSE)
79 add_module(graphics/android "FreeType library not found" FALSE)
80 add_module(graphics/gd "FreeType library not found" FALSE)
81 add_module(graphics/gtk_drawing_area "FreeType library not found" FALSE)
82 add_module(graphics/opengl "FreeType library not found" FALSE)
83 add_module(graphics/sdl "FreeType library not found" FALSE)
84 add_module(graphics/qt_qpainter "Qt libraries not found" FALSE)
85 add_module(gui/qml "Qt Declarative not found" FALSE)
86 add_module(gui/gtk "GTK libs not found" FALSE)
87 add_module(vehicle/gpsd "gpsd lib not found" FALSE)
88 add_module(vehicle/gypsy "gypsy lib not found" FALSE)
89 add_module(vehicle/maemo "Default" FALSE)
90 add_module(binding/win32 "Default" FALSE)
91 add_module(binding/dbus "dbus-glib-1 not found" FALSE)
92 add_module(speech/dbus "dbus-glib-1 not found" FALSE)
93 add_module(speech/cmdline "neither system() nor CreateProcess() found" FALSE)
94 add_module(vehicle/gpsd_dbus "dbus-glib-1 not found" FALSE)
95 add_module(speech/speech_dispatcher "speech_dispatcher lib not found" FALSE)
96 add_module(autoload/osso "Default" FALSE)
97 add_module(map/garmin "Garmin library not found" FALSE)
98 add_feature(ENABLE_NLS "default" TRUE)
101 INCLUDE (CheckIncludeFiles)
102 INCLUDE (CheckLibraryExists)
103 INCLUDE (CheckFunctionExists)
104 INCLUDE (CheckSymbolExists)
106 find_package(Gmodule)
108 find_package(Freetype)
110 find_package(SDL_ttf)
111 find_package(SDL_image)
114 find_package(GTK2 2.6 COMPONENTS gtk)
115 find_package(Gettext)
117 find_package(DBusGLib)
118 find_package(OpenSSL)
119 find_package(Threads)
120 libfind_pkg_check_modules(FONTCONFIG fontconfig)
123 SET(QT_USE_QTSVG TRUE)
124 SET(QT_USE_QTXML TRUE)
125 SET(QT_USE_QTDECLARATIVE TRUE)
126 find_package(Qt4 COMPONENTS QtCore QtGui QtXml QtDeclarative QtSvg OPTIONAL)
127 endif (NOT DISABLE_QT)
128 #pkg-config based detection
129 find_package(PkgConfig)
131 pkg_check_modules(QUESOGLC quesoglc)
132 pkg_check_modules(LIBGPS libgps)
133 pkg_check_modules(LIBLOCATION liblocation)
134 pkg_check_modules(LIBOSSO libosso)
135 pkg_check_modules(LIBGPS19 libgps>=2.90)
136 pkg_check_modules(LIBGARMIN libgarmin)
137 endif(PKG_CONFIG_FOUND)
139 CHECK_INCLUDE_FILES(wordexp.h HAVE_WORDEXP)
140 CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
141 CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
142 CHECK_INCLUDE_FILES(byteswap.h HAVE_BYTESWAP_H)
143 CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND)
144 CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD)
145 CHECK_INCLUDE_FILES(sys/socket.h HAVE_SOCKET)
146 CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
147 CHECK_INCLUDE_FILES(locale.h HAVE_LC_MESSAGES)
148 CHECK_INCLUDE_FILES(libintl.h HAVE_LIBINTL)
149 CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
150 CHECK_INCLUDE_FILES(getopt.h HAVE_GETOPT_H)
151 CHECK_INCLUDE_FILES(string.h HAVE_STRING_H)
152 CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
153 CHECK_SYMBOL_EXISTS(system stdlib.h HAVE_SYSTEM)
154 CHECK_SYMBOL_EXISTS(CreateProcess windows.h HAVE_CREATEPROCESS)
155 CHECK_SYMBOL_EXISTS(stpcpy string.h HAVE_STPCPY)
156 CHECK_FUNCTION_EXISTS(sbrk HAVE_SBRK)
157 CHECK_FUNCTION_EXISTS(getdelim HAVE_GETDELIM)
158 CHECK_FUNCTION_EXISTS(getline HAVE_GETLINE)
162 #Required libraries, supplied with navit
163 if (NOT HAVE_LIBINTL)
164 add_plugin(intl_cmake "native libintl missing" TRUE)
165 set(USE_LIBGNUINTL TRUE)
167 CHECK_LIBRARY_EXISTS(intl libintl_fprintf "" NEEDS_LIBINTL)
169 list(APPEND NAVIT_LIBS intl)
172 endif(NOT HAVE_LIBINTL)
175 if (CMAKE_USE_PTHREADS_INIT)
177 list(APPEND NAVIT_LIBS pthread)
179 endif(CMAKE_USE_PTHREADS_INIT)
182 include_directories(${Glib_INCLUDE_DIRS})
183 list(APPEND NAVIT_LIBS ${Glib_LIBRARIES})
185 set_with_reason(support/glib "Glib not found" TRUE ${INTL_LIBS})
189 include_directories(${Gmodule_INCLUDE_DIRS})
190 list(APPEND NAVIT_LIBS ${Gmodule_LIBRARIES})
194 include_directories(${ZLIB_INCLUDE_DIRS})
195 list(APPEND NAVIT_LIBS ${ZLIB_LIBRARIES})
197 message(STATUS "using internal zlib")
198 set_with_reason(support/zlib "native zlib missing" TRUE)
200 if(OPENSSL_CRYPTO_LIBRARIES)
201 set(HAVE_LIBCRYPTO 1)
202 include_directories(${OPENSSL_INCLUDE_DIR})
203 list(APPEND NAVIT_LIBS ${OPENSSL_CRYPTO_LIBRARIES})
207 include_directories(${PNG_INCLUDE_DIR})
208 list(APPEND NAVIT_LIBS ${PNG_LIBRARIES})
210 message(STATUS "using internal libpng")
211 set_with_reason(support/libpng "native libpng missing" TRUE)
213 if (NOT HAVE_WORDEXP)
214 message(STATUS "wordexp.h not found. use internal wordexp")
215 set_with_reason(support/wordexp "native wordexp missing" TRUE)
218 set_with_reason(support/ezxml "Glib not found" TRUE)
222 pkg_check_modules(FRIBIDI fribidi)
223 pkg_check_modules(FRIBIDI2 fribidi>=0.19.0)
224 include_directories(${FREETYPE_INCLUDE_DIRS})
225 set_with_reason(font/freetype "freetype found" TRUE "${FREETYPE_LIBRARY};${FONTCONFIG_LDFLAGS};${FRIBIDI_LIBRARIES}")
227 MESSAGE("No freetype library found, graphics modules may not be available")
228 set_with_reason(graphics/android "FreeType library not found" FALSE)
229 set_with_reason(graphics/gd "FreeType library not found" FALSE)
230 set_with_reason(graphics/gtk_drawing_area "FreeType library not found" FALSE)
231 set_with_reason(graphics/opengl "FreeType library not found" FALSE)
232 set_with_reason(graphics/sdl "FreeType library not found" FALSE)
233 endif(FREETYPE_FOUND)
236 set(HAVE_FONTCONFIG 1)
237 endif(FONTCONFIG_FOUND)
240 if (QT_QTCORE_FOUND AND QT_QTGUI_FOUND AND FREETYPE_FOUND)
241 include(${QT_USE_FILE})
242 set_with_reason(graphics/qt_qpainter "Qt libraries found" TRUE ${QT_LIBRARIES})
244 if (QT_QTDECLARATIVE_FOUND AND QT_QTXML_FOUND)
245 set_with_reason(gui/qml "Qt Declarative found" TRUE ${QT_LIBRARIES})
250 elseif( USE_SVG AND graphics/qt_qpainter)
251 message( WARNING "QT compiled without SVG support")
257 include_directories(${GTK2_INCLUDE_DIRS})
259 set_with_reason(gui/gtk "GTK libs found" TRUE ${GTK2_LIBRARIES})
261 set_with_reason(graphics/gtk_drawing_area "GTK libs found" TRUE ${GTK2_LIBRARIES})
262 endif(FREETYPE_FOUND)
265 CHECK_LIBRARY_EXISTS(freeimage FreeImage_Load "" HAVE_FREEIMAGE)
266 if (USE_OPENGLES OR USE_OPENGLES2)
267 CHECK_LIBRARY_EXISTS(EGL eglInitialize "" HAVE_EGL)
268 endif(USE_OPENGLES OR USE_OPENGLES2)
270 if (OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND AND OPENGL_INCLUDE_DIR)
271 message (STATUS "opengl found: ${OPENGL_gl_LIBRARY}")
272 include_directories(${OPENGL_INCLUDE_DIR})
274 set(USE_OPENGLES TRUE)
275 set(GRAPHICS_OPENGL_LIBRARY GLESv2 EGL)
276 elseif (USE_OPENGLES)
277 set(GRAPHICS_OPENGL_LIBRARY GLESv1_CM EGL)
279 set(GRAPHICS_OPENGL_LIBRARY ${OPENGL_gl_LIBRARY};${OPENGL_glu_LIBRARY};${GLUT_glut_LIBRARY})
282 list(APPEND GRAPHICS_OPENGL_LIBRARY freeimage)
283 endif(HAVE_FREEIMAGE)
284 set_with_reason(graphics/opengl "Found OpenGL" TRUE ${GRAPHICS_OPENGL_LIBRARY})
286 message (STATUS "opengl not found")
289 message (STATUS "no Freetype found")
290 endif(FREETYPE_FOUND)
292 if(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND)
296 list(APPEND SDL_LIBRARY ${SDLTTF_LIBRARY})
298 set_with_reason(graphics/sdl "SDL/SDL_image libs found" TRUE ${SDL_LIBRARY} ${SDLIMAGE_LIBRARY})
299 endif(SDL_FOUND AND SDLIMAGE_FOUND AND FREETYPE_FOUND)
302 set_with_reason(vehicle/gpsd "gpsd lib found" TRUE ${LIBGPS_LDFLAGS})
306 set_with_reason(vehicle/gypsy "gypsy lib found" TRUE)
310 include_directories(${LIBGARMIN_INCLUDE_DIRS})
311 set_with_reason(map/garmin "Garmin library found" TRUE ${LIBGARMIN_LDFLAGS})
312 endif(LIBGARMIN_FOUND)
315 include_directories(${DBusGLib_INCLUDE_DIRS})
316 set_with_reason(binding/dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
317 set_with_reason(speech/dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
318 set_with_reason(vehicle/gpsd_dbus "dbus-glib-1 found" TRUE ${DBusGLib_LIBRARIES})
322 set_with_reason(speech/speech_dispatcher "speech_dispatcher lib found" TRUE speechd)
323 endif(HAVE_LIBSPEECHD)
326 set_with_reason(speech/cmdline "system() call is available" TRUE)
329 if (HAVE_CREATEPROCESS)
330 set_with_reason(speech/cmdline "CreateProcess() call is available" TRUE)
331 endif(HAVE_CREATEPROCESS)
334 execute_process(COMMAND echo "<test/>" COMMAND xgettext -L glade - RESULT_VARIABLE GETTEXT_RET)
335 if ("${GETTEXT_RET}" STREQUAL "0")
336 set(XGETTEXT_GLADE TRUE)
338 set(XGETTEXT_GLADE FALSE)
342 if (LIBLOCATION_FOUND)
343 set_with_reason(vehicle/maemo "Maemo location library found" TRUE ${LIBLOCATION_LIBRARIES})
344 endif(LIBLOCATION_FOUND)
347 set_with_reason(autoload/osso "Maemo osso library found" TRUE ${LIBOSSO_LIBRARIES})
351 add_module(graphics/null "Default" TRUE)
352 add_module(osd/core "Default" TRUE)
353 add_module(vehicle/demo "Default" TRUE)
354 add_module(vehicle/file "Default" TRUE)
355 add_module(vehicle/null "Default" FALSE)
356 add_module(gui/internal "Default" TRUE)
357 add_module(map/binfile "Default" TRUE)
358 add_module(map/filter "Default" TRUE)
360 add_module(map/mg "Default" TRUE)
362 add_module_plugin(support/shapefile "Default" TRUE)
363 set(map_shapefile_INCLUDES "${CMAKE_SOURCE_DIR}/navit/support/shapefile")
364 #set(map_shapefile_LIBRARY_DIRS "${CMAKE_BINARY_DIR}/navit/support/shapefile")
365 set(map_shapefile_LIBS "support_shapefile")
366 add_module(map/shapefile "Default" TRUE)
367 add_module(map/textfile "Default" TRUE)
368 add_module(map/csv "Default" TRUE)
370 #Modules without test yet
371 add_module(plugin/pedestrian "Default" FALSE)
372 add_module(speech/android "Default" FALSE)
373 add_module(speech/espeak "Default" FALSE)
374 add_module(speech/iphone "Default" FALSE)
375 add_plugin(support/espeak "Default" FALSE)
376 add_module(vehicle/android "Default" FALSE)
377 add_module(vehicle/iphone "Default" FALSE)
378 add_module(vehicle/wince "Default" FALSE)
379 add_module(graphics/cocoa "Default" FALSE)
382 add_feature(USE_PLUGINS "default" TRUE)
383 add_feature(SHARED_LIBNAVIT "default" FALSE)
384 add_feature(USE_ROUTING "default" TRUE)
385 add_feature(USE_SVG "default" TRUE)
386 add_feature(SVG2PNG "default" TRUE)
387 add_feature(SAMPLE_MAP "default" TRUE)
389 IF(NOT svg2png_scaling)
390 set(svg2png_scaling 0 16 32 48 64 96)
392 IF(NOT svg2png_scaling_flag)
393 set(svg2png_scaling_flag 32)
395 IF(NOT svg2png_scaling_nav)
396 set(svg2png_scaling_nav 64)
399 add_feature(DBUS_USE_SYSTEM_BUS "default" FALSE)
400 add_feature(BUILD_MAPTOOL "default" TRUE)
401 add_feature(XSL_PROCESSING "default" TRUE)
403 set(SUPPORTED_XSLT_PROCESSORS "saxon;saxon8;saxon-xslt;saxonb-xslt;xsltproc;transform.exe")
404 find_program(XSLT_PROCESSOR NAMES ${SUPPORTED_XSLT_PROCESSORS})
406 message(STATUS "Found XSLT processor: ${XSLT_PROCESSOR}")
407 execute_process(COMMAND ${XSLT_PROCESSOR} -snone ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test.xml ${CMAKE_CURRENT_SOURCE_DIR}/cmake/test.xslt
408 RESULT_VARIABLE SAXON_ERROR ERROR_QUIET)
410 set (XSLT_PROCESSOR_OPTIONS -snone)
413 cfg_feature(XSL_PROCESSING "Saxon missing" FALSE)
414 endif(XSLT_PROCESSOR)
416 if (NOT XSL_PROCESSING)
417 message(WARNING "No XSLT processor available. You have to configure "
418 "navit.xml yourself, or install an XSLT processor (supported: "
419 "${SUPPORTED_XSLT_PROCESSORS}).")
422 ### Platform specific settings
424 SET(CACHE_SIZE 1048576)
425 endif(NOT CACHE_SIZE)
428 SET(CMAKE_EXECUTABLE_SUFFIX ".exe")
429 add_module(graphics/win32 "Windows detected" TRUE)
430 add_plugin(support/win32 "Windows detected" TRUE)
432 SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -I ${CMAKE_CURRENT_SOURCE_DIR}/navit/gui/win32/resources <DEFINES> -i <SOURCE> -o <OBJECT>")
433 set_with_reason(support/ezxml "Windows detected" TRUE)
434 set_with_reason(speech/espeak "Windows detected" TRUE)
435 set_with_reason(support/espeak "Windows detected" TRUE)
436 set_with_reason(binding/win32 "Windows detected" TRUE)
438 # vehicle_file is broken for windows. use vehicle_wince instead
439 # whicle_wince isn't buildable on non-CE windows ssytems
441 # plugins currently not supported on windows
442 set_with_reason(USE_PLUGINS "win32: currently not supported" FALSE)
444 set(HAVE_API_WIN32_BASE 1)
448 if(NOT graphics/qt_qpainter)
449 set_with_reason(USE_SVG "win32: SVGs currently not supported" FALSE)
450 else(NOT graphics/qt_qpainter)
451 MESSAGE(STATUS "win32: SVGs may not be supported by every available graphics")
452 endif(NOT graphics/qt_qpainter)
456 set(LOCALE_DIR locale)
460 if(HAVE_GTK2 AND NOT MSVC)
461 #GTK requires special compile flags
462 add_definitions("-mms-bitfields")
463 endif(HAVE_GTK2 AND NOT MSVC)
464 if(MSVC AND support/espeak)
465 add_definitions(-DPLATFORM_WINDOWS)
466 endif(MSVC AND support/espeak)
467 CHECK_LIBRARY_EXISTS(ws2_32 WSAStartup "" HAVE_WINSOCK)
469 list(APPEND NAVIT_LIBS ws2_32)
471 CHECK_LIBRARY_EXISTS(ws2 WSAStartup "" HAVE_WINSOCK_2)
474 list(APPEND NAVIT_LIBS ws2)
479 set(HAVE_PRAGMA_PACK 1)
480 add_plugin(support/xgetopt "Windows detected" TRUE)
485 set(XSLTS "windows;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process")
487 if (WIN32 AND NOT WINCE)
488 set(HAVE_PRAGMA_PACK 1)
489 set(HAVE_API_WIN32 1)
491 #set(BUILD_MAPTOOL FALSE)
492 set(SAMPLE_MAP FALSE)
493 list(APPEND NAVIT_LIBS winmm)
496 add_plugin(support/libc "wince detected" TRUE)
497 set(HAVE_PRAGMA_PACK 1)
498 set(HAVE_API_WIN32_CE 1)
499 set(BUILD_MAPTOOL FALSE)
500 set_with_reason(vehicle/file "wince: currently broken" FALSE)
501 set_with_reason(vehicle/wince "wince detected" TRUE)
503 if (APPLE OR USE_UIKIT)
504 set_with_reason(vehicle/iphone "apple detected" TRUE)
505 set_with_reason(graphics/cocoa "apple detected" TRUE)
506 if (EXISTS "${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks/VoiceServices.framework")
507 set_with_reason(speech/iphone "apple detected" TRUE)
509 set(BUILD_BUNDLE TRUE CACHE BOOLEAN "build an osx bundle")
512 set(LOCALEDIR "${LOCALE_DIR}/locale")
514 find_program(BZCAT NAMES bzcat)
516 if(CMAKE_CROSSCOMPILING)
517 cfg_feature(SAMPLE_MAP "downloading binary map because of cross compiling" TRUE)
518 set(DOWNLOAD_SAMPLE_MAP TRUE)
520 cfg_feature(SAMPLE_MAP "downloading binary map because of missing bzcat" TRUE)
521 set(DOWNLOAD_SAMPLE_MAP TRUE)
522 endif(CMAKE_CROSSCOMPILING)
526 # for android API 3 compatiblity
527 SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,/data/data/org.navitproject.navit/lib/")
529 find_program(ANDROID_LOCATION NAMES android android.bat)
530 find_program(ANT_LOCATION NAMES ant)
531 if (NOT ANT_LOCATION)
532 message_error("Could not find ant. Please install ant and add it to the search path.")
534 if (NOT ANDROID_LOCATION)
535 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.")
537 set(XSLTS "android;${XSLTS}" CACHE STRING "define a semicolon seperated list of XSLTs to process")
538 list(APPEND NAVIT_LIBS log)
539 set(HAVE_API_ANDROID 1)
540 set_with_reason(graphics/android "Android detected" TRUE)
541 set_with_reason(speech/android "Android detected" TRUE)
542 set_with_reason(vehicle/android "Android detected" TRUE)
543 set_with_reason(plugin/pedestrian "Android detected" TRUE)
544 cfg_feature(SHARED_LIBNAVIT "Android detected" TRUE)
546 add_feature(XPM2PNG "Android detected" TRUE)
547 set(NAVIT_COMPILE_FLAGS "${NAVIT_COMPILE_FLAGS} -fPIC")
551 if(FREETYPE_FOUND AND NOT FONTCONFIG_FOUND)
552 add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/navit/fonts")
556 find_program(IMAGE_CONVERTER NAMES convert)
557 execute_process(COMMAND ${IMAGE_CONVERTER} -list format OUTPUT_VARIABLE CONVERT_FORMATS)
558 if(CONVERT_FORMATS MATCHES ".*XPM[ *][ ]*XPM[ ]*r[w-].*")
559 set(IMAGE_CONVERTER_XPM ${IMAGE_CONVERTER})
562 set(CMAKE_APPBUNDLE_PATH "")
564 if (NOT IMAGE_CONVERTER_SVGZ)
565 set (SVG_CONVERTER_PROGS rsvg-convert ksvgtopng ksvgtopng4 inkscape)
566 set (CMAKE_FIND_APPBUNDLE "NEVER")
567 find_program(IMAGE_CONVERTER_SVGZ NAMES ${SVG_CONVERTER_PROGS} PATHS /Applications/Inkscape.app/Contents/Resources/bin)
568 if (NOT IMAGE_CONVERTER_SVGZ)
569 if(CONVERT_FORMATS MATCHES ".*[ ]*SVG[ ]*r[w-].*")
570 set(IMAGE_CONVERTER_SVGZ ${IMAGE_CONVERTER})
573 endif(NOT IMAGE_CONVERTER_SVGZ)
574 if (NOT IMAGE_CONVERTER_SVG)
575 set(IMAGE_CONVERTER_SVG ${IMAGE_CONVERTER_SVGZ})
576 endif(NOT IMAGE_CONVERTER_SVG)
578 message(STATUS "SVG2PNG-Converter: ${IMAGE_CONVERTER_SVGZ}")
579 if (NOT IMAGE_CONVERTER_SVGZ)
580 message(WARNING "No SVG2PNG converter found. Please install one of the following tools: ${SVG_CONVERTER_PROGS}, or imagemagick with svg support")
581 set_with_reason(SVG2PNG "no converter found" FALSE)
582 endif(NOT IMAGE_CONVERTER_SVGZ)
586 message(STATUS "XPM2PNG-Converter: ${IMAGE_CONVERTER_XPM}")
587 if (NOT IMAGE_CONVERTER_XPM)
588 message(WARNING "No XPM2PNG converter found. Please install imagemagick with xpm support")
589 set_with_reason(XPM2PNG "no converter found" FALSE)
590 endif(NOT IMAGE_CONVERTER_XPM)
593 set(XSLTS ${XSLTS} CACHE STRING "define a semicolon seperated list of XSLTs to process")
597 set(MODULE_BUILD_TYPE "MODULE")
598 add_definitions("-fPIC")
599 list(APPEND NAVIT_LIBS dl)
601 set(MODULE_BUILD_TYPE "STATIC")
603 message(STATUS "Use plugins: ${MODULE_BUILD_TYPE}")
606 set(NAVIT_CORE_BUILD_TYPE "STATIC")
607 else(SHARED_LIBNAVIT)
608 set(NAVIT_CORE_BUILD_TYPE "SHARED")
609 endif(SHARED_LIBNAVIT)
611 CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
612 CHECK_INCLUDE_FILES ("sys/param.h;sys/mount.h" HAVE_SYS_MOUNT_H)
613 CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
614 CHECK_FUNCTION_EXISTS (getcwd HAVE_GETCWD)
615 CHECK_FUNCTION_EXISTS (memalign HAVE_MEMALIGN)
616 CHECK_FUNCTION_EXISTS (valloc HAVE_VALLOC)
617 CHECK_FUNCTION_EXISTS (posix_memalign HAVE_POSIX_MEMALIGN)
618 CHECK_FUNCTION_EXISTS (popen HAVE_POPEN)
619 CHECK_FUNCTION_EXISTS (_atoi64 HAVE__ATOI64)
621 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
623 add_definitions("-Wall")
625 add_definitions("${EXTRA_DEFINES}")
628 if (NOT NAVIT_DEPENDENCY_ERROR)
629 message("\nSummary:\n")
631 set(SUMMARY_COMPONENTS ${ALL_PLUGINS} ${ALL_MODULE_PLUGINS} ${ALL_MODULES})
632 list(SORT SUMMARY_COMPONENTS)
635 foreach ( SUMMARY_COMP ${SUMMARY_COMPONENTS})
636 # split path to type and name
637 string(REPLACE "/" ";" SUMMARY_COMP_LIST ${SUMMARY_COMP})
638 list(GET SUMMARY_COMP_LIST 0 SUMMARY_COMP_TYPE)
639 list(LENGTH SUMMARY_COMP_LIST SUMMARY_COMP_LIST_LENGTH)
640 if ( SUMMARY_COMP_LIST_LENGTH GREATER 1 )
641 list(GET SUMMARY_COMP_LIST 1 SUMMARY_COMP_NAME)
643 set(SUMMARY_COMP_NAME ${SUMMARY_COMP})
645 if ( NOT ${LAST_TYPE} STREQUAL ${SUMMARY_COMP_TYPE})
646 message("\n--->>> ${SUMMARY_COMP_TYPE}")
647 set(LAST_TYPE ${SUMMARY_COMP_TYPE})
650 message("Enabled ${SUMMARY_COMP_NAME} ( ${${SUMMARY_COMP}_REASON} )")
652 message("Disabled ${SUMMARY_COMP_NAME} ( ${${SUMMARY_COMP}_REASON} )")
656 list(SORT ALL_FEATURES)
657 message("\n--->>> Features")
658 foreach ( FEATURE ${ALL_FEATURES})
660 message("Enabled ${FEATURE} ( ${${FEATURE}_REASON} )")
662 message("Disabled ${FEATURE} ( ${${FEATURE}_REASON} )")
668 message("\nProcessing XSLT files: ${XSLTS}")
670 message("\nProcessing XSLT files: NONE")
672 message("See navit/xslt for available XSLT files, and put them into "
673 "cache variable 'XSLTS' (without extension .xslt).")
674 endif(XSL_PROCESSING)
676 message("\nTo configure your build use 'cmake -L' to find changeable variables and run cmake again with 'cmake -D <var-name>=<your value> ...'.")
677 endif(NOT NAVIT_DEPENDENCY_ERROR)
679 add_subdirectory (navit)
680 add_subdirectory (man)
684 add_subdirectory (po)