diff options
44 files changed, 774 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..11b5cdd55 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,293 @@ +project(navit) + +cmake_minimum_required(VERSION 2.8) +cmake_policy(VERSION 2.8) + +set(PACKAGE_VERSION "0.2.0") +set(PACKAGE_NAME "navit-svn") + +include("${PROJECT_SOURCE_DIR}/cmake/navit_macros.cmake") + +### set defaults +# modules +add_module(binding/dbus TRUE) +add_module(graphics/android FALSE) +add_module(graphics/gd FALSE) +add_module(graphics/gtk_drawing_area FALSE) +add_module(graphics/null FALSE) +add_module(graphics/opengl TRUE) +add_module(graphics/qt_qpainter FALSE) +add_module(graphics/sdl TRUE) +add_module(graphics/win32 FALSE) +add_module(gui/gtk FALSE) +add_module(gui/internal TRUE) +add_module(gui/qml FALSE) +add_module(gui/win32 FALSE) +add_module(map/binfile TRUE) +add_module(map/filter TRUE) +add_module(map/mg TRUE) +add_module(map/shapefile TRUE) +add_module(map/textfile TRUE) +add_module(osd/core TRUE) +add_module(plugin/pedestrian FALSE) +add_module(speech/android FALSE) +add_module(speech/cmdline TRUE) +add_module(speech/dbus FALSE) +add_module(speech/espeak FALSE) +add_module(speech/speech_dispatcher TRUE) +add_plugin(support/espeak FALSE) +add_plugin(support/ezxml TRUE) +add_plugin(support/glib FALSE) +add_plugin(support/libpng FALSE) +add_plugin(support/win32 FALSE) +add_plugin(support/wordexp FALSE) +add_plugin(support/zlib FALSE) +add_module(vehicle/android FALSE) +add_module(vehicle/demo TRUE) +add_module(vehicle/file TRUE) +add_module(vehicle/gpsd TRUE) +add_module(vehicle/gpsd_dbus FALSE) +add_module(vehicle/gypsy TRUE) +add_module(vehicle/iphone FALSE) +add_module(vehicle/maemo FALSE) +add_module(vehicle/null FALSE) +add_module(vehicle/wince FALSE) + +# other features +set(USE_PLUGINS TRUE) +set(USE_ROUTING TRUE)# routing/reason=default +set(USE_SVG TRUE) +set(SVG2PNG TRUE) +set(DBUS_USE_SYSTEM_BUS FALSE) +set(BUILD_MAPTOOL TRUE) + +# install path +set(BIN_DIR bin) +set(SHARE_DIR share/navit) +set(LOCALE_DIR share) +set(IMAGE_DIR share/navit/xpm) +set(LIB_DIR lib) +#message (STATUS ${CMAKE_SYSTEM_NAME}) + +# set platform defaults +if(WIN32) + set_with_reason(graphics/win32 "win32" TRUE) + set_with_reason(support/glib "win32" TRUE) + set_with_reason(support/libpng "win32" TRUE) + set_with_reason(support/win32 "win32" TRUE) + set_with_reason(speech/espeak "win32" TRUE) + set_with_reason(support/espeak "win32" TRUE) + + # vehicle_file is broken for windows. use vehicle_wince instead + set_with_reason(vehicle/wince "win32: replace broken vehicle_file" TRUE) + set_with_reason(vehicle/file "win32: currently broken" FALSE) + + # plugins currently not supported on windows + set_with_reason(USE_PLUGINS "win32: currently not supported" FALSE) + + set_with_reason(HAVE_API_WIN32_BASE 1) + set_with_reason(HAVE_API_WIN32 1) + + # Image stuff + set_with_reason(USE_SVG "win32: urrently not supported" TRUE) + + set_with_reason(SVG2PNG FALSE) + set_with_reason(svg2png_scaling 32 48 96) + set_with_reason(svg2png_scaling_flag 32 48 96) + set_with_reason(svg2png_scaling_nav 32 48 96) + + set(BIN_DIR ./) + set(SHARE_DIR ./) + set(LOCALE_DIR ./) + set(IMAGE_DIR xpm) + +endif() + +foreach(PLUMO ${ALL_PLUGINS} ${ALL_MODULES} USE_PLUGINS USE_ROUTING BUILD_MAPTOOL USE_SVG SVG2PNG DBUS_USE_SYSTEM_BUS) + set(OLDVALUE ${${PLUMO}}) + OPTION(${PLUMO} "Enable/Disable module/plugin/support" ${${PLUMO}}) + if ( NOT (${OLDVALUE} STREQUAL ${${PLUMO}} )) + set(${PLUMO}_REASON "User defined") + endif() +endforeach() + +## check for all nessessary progs and libs +INCLUDE (CheckIncludeFiles) + +# SVG2PNG conversion +set (IMAGE_CONVERTER_PROGS rsvg-convert ksvgtopng ksvgtopng4) +find_program(IMAGE_CONVERTER NAMES ${IMAGE_CONVERTER_PROGS}) +if (SVG2PNG) + message(STATUS ${IMAGE_CONVERTER}) + if (NOT IMAGE_CONVERTER) + message(WARNING "No SVG2PNG converter found. Please install one of the following tools: ${IMAGE_CONVERTER_PROGS}") + set_with_reason(SVG2PNG "no converter found" FALSE) + endif(NOT IMAGE_CONVERTER) +endif(SVG2PNG) + +if (NOT ${support/glib}) + # Find glib + find_package(GTK2 2.6 COMPONENTS gtk) + + if(GTK2_GLIB_INCLUDE_DIR) + include_directories(${GTK2_GLIB_INCLUDE_DIR} ${GTK2_GLIBCONFIG_INCLUDE_DIR}) + # link_directories(${GTK2_GLIB_LIBRARY}) + set(HAVE_GLIB 1) + if (FOUND_GTK2) + list(APPEND NAVIT_LIBS ${GTK2_GLIB_LIBRARY}) + set(HAVE_GTK2 1) + set_with_reason(gui/gtk "GTK libs found" TRUE) + set_with_reason(graphics/gtk_drawing_area "GTK libs found" TRUE) + endif(FOUND_GTK2) + else() + message (FATAL_ERROR "glib not found ${GTK_glib_INCLUDE_PATH}") + endif() +endif(NOT ${support/glib}) + +# QT stuff +find_package(Qt4 COMPONENTS QtCore QtGui QtXml QtDeclarative QtSvg OPTIONAL) +if (QT_FOUND) + if (QT_QTCORE_FOUND AND QT_QTGUI_FOUND) + set(graphics/qt_qpainter TRUE)# graphics/qt/qpainter/reason=default + + + if (QT_QTDECLARATIVE_FOUND AND QT_QTXML_FOUND) + set_with_reason(gui/qml "Qt libs found" TRUE)# gui/qml/reason=default + endif() + + if (QT_QTSVG_FOUND) + set(HAVE_QT_SVG 1) + elseif( USE_SVG AND graphics/qt_qpainter) + message( WARNING "QT compiled without SVG support") + endif() + + include(${QT_USE_FILE}) + list(APPEND NAVIT_LIBS ${QT_LIBRARIES}) + endif() +endif(QT_FOUND) + +# zlib +find_package(ZLIB) +if(ZLIB_FOUND) + set(HAVE_ZLIB 1) + list(APPEND NAVIT_LIBS ${ZLIB_LIBRARIES}) +else() + message(STATUS "using internal zlib") + set_with_reason(support/zlib "native zlib missing" TRUE) +endif(ZLIB_FOUND) + +# OpenGL +if (${graphics/opengl}) + CHECK_INCLUDE_FILES(glc.h HAVE_GLC) + if (NOT HAVE_GLC) + set(graphics/opengl FALSE) + message (STATUS "no glc implementation found. Install Quesoglc for OpenGL support") + else() + find_package(OpenGL) + if (OPENGL_FOUND AND OPENGL_GLU_FOUND AND OPENGL_INCLUDE_DIR) + message (STATUS "opengl found: ${OPENGL_gl_LIBRARY}") + include_directories(${OPENGL_INCLUDE_DIR}) + else() + set(graphics/opengl FALSE) + message (STATUS "opengl not found") + endif() + endif(NOT HAVE_GLC) +endif() + +# SDL +if (${graphics/sdl}) + find_package(SDL) + if (SDL_FOUND) + list(APPEND NAVIT_LIBS ${SDL_LIBRARY}) + find_package(SDL_ttf) + if(SDLTTF_FOUND) + set(SDL_TTF 1) + list(APPEND NAVIT_LIBS ${SDLTTF_LIBRARY}) + endif(SDLTTF_FOUND) + else() + set_with_reason(graphics/sdl "SDL libs missing" FALSE) + endif(SDL_FOUND) + + find_package(SDL_image) + if (SDLIMAGE_FOUND) + list(APPEND NAVIT_LIBS ${SDLIMAGE_LIBRARY}) + set(SDL_IMAGE 1) + endif(SDLIMAGE_FOUND) +endif() + +# freetype +find_package(Freetype) +if (FREETYPE_FOUND) + include_directories(${FREETYPE_INCLUDE_DIRS}) +endif(FREETYPE_FOUND) + +CHECK_INCLUDE_FILES(wordexp.h HAVE_WORDEXP) +if (NOT HAVE_WORDEXP) + set_with_reason(support/wordexp "native wordexp missing" TRUE) + message(STATUS "wordexp.h not found. use internal wordexp") +endif() + +# gpsd +CHECK_INCLUDE_FILES(gps.h HAVE_LIBGPS) +if ( NOT HAVE_LIBGPS) + set_with_reason(vehicle/gpsd "gpsd lib missing" FALSE) + set_with_reason(vehicle/gpsd_dbus "gpsd lib missing" FALSE) +endif() + +# gypsy +CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND) +if (NOT GYPSY_FOUND) + set_with_reason(vehicle/gypsy "gypsy lib missing" FALSE) +endif(NOT GYPSY_FOUND) + +# gettext +find_package(Gettext) + +# DBUS +if(${binding/dbus}) + find_package(PkgConfig) + if(PKG_CONFIG_FOUND) + pkg_check_modules(DBUS_GLIB dbus-glib-1) + if(DBUS_GLIB_FOUND) + include_directories(${DBUS_GLIB_INCLUDE_DIRS}) + set_with_reason(speech/dbus "dbus-glib-1 found" TRUE)# speech/dbus/reason=default + set_with_reason(vehicle/gpsd_dbus "dbus-glib-1 found" TRUE)# vehicle/gpsd/dbus/reason=default + else() + set_with_reason(binding/dbus "dbus-glib-1 missing" FALSE) + endif() + endif() +endif() + + +# speech +if(${speech/speech_dispatcher}) + CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD) + if (NOT HAVE_LIBSPEECHD) + set_with_reason(speech/speech_dispatcher "speech_dispatcher lib missing" FALSE) + endif() +endif() + + +# Plugins +if(USE_PLUGINS) + set(MODULE_BUILD_TYPE "MODULE") + list(APPEND NAVIT_COMPILE_FLAGS -fPIC) + message(STATUS "Use plugins: ${MODULE_BUILD_TYPE}") +else() + set(MODULE_BUILD_TYPE "STATIC") +endif(USE_PLUGINS) + +CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H) +CHECK_INCLUDE_FILES ("sys/param.h;sys/mount.h" HAVE_SYS_MOUNT_H) +#CHECK_INCLUDE_FILES (windows.h HAVE_API_WIN32_BASE) +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) + +add_subdirectory (navit) +add_subdirectory (man) + +if (GETTEXT_FOUND) + add_subdirectory (po) +endif(GETTEXT_FOUND) + +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/locale DESTINATION ${LOCALE_DIR}) + diff --git a/cmake/navit_macros.cmake b/cmake/navit_macros.cmake new file mode 100644 index 000000000..cc8b714a8 --- /dev/null +++ b/cmake/navit_macros.cmake @@ -0,0 +1,44 @@ +macro(set_with_reason VARIABLE REASON) + set(${VARIABLE} ${ARGN}) + set(${VARIABLE}_REASON ${REASON}) +endmacro() + +# modules may be linked static, or shared for import at runtime +macro(add_module MODULE_PATH) + list(APPEND ALL_MODULES ${MODULE_PATH}) + set(${MODULE_PATH} ${ARGN}) + set(${MODULE_PATH}_REASON "default") +endmacro() + +# plugins are always linked static +macro(add_plugin PLUGIN_PATH) + list(APPEND ALL_PLUGINS ${PLUGIN_PATH}) + set(${PLUGIN_PATH} ${ARGN}) + set(${PLUGIN_PATH}_REASON "default") +endmacro() + +macro(module_add_library MODULE_NAME ) +# add_definitions( -DMODULE=${MODULE_NAME} -fPIC) + add_library(${MODULE_NAME} ${MODULE_BUILD_TYPE} ${ARGN}) + SET_TARGET_PROPERTIES(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "MODULE=${MODULE_NAME}") + + if (USE_PLUGINS) + SET_TARGET_PROPERTIES( ${LIB_NAME} PROPERTIES COMPILE_FLAGS ${NAVIT_COMPILE_FLAGS}) + TARGET_LINK_LIBRARIES(${MODULE_NAME} navit_core) + install(TARGETS ${MODULE_NAME} + DESTINATION ${LIB_DIR}/navit + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() +# TARGET_LINK_LIBRARIES(${MODULE_NAME} ${NAVIT_SUPPORT_LIBS}) +endmacro(module_add_library) + +macro(supportlib_add_library LIB_NAME ) + add_library(${LIB_NAME} ${ARGN}) + if (USE_PLUGINS) + SET_TARGET_PROPERTIES( ${LIB_NAME} PROPERTIES COMPILE_FLAGS ${NAVIT_COMPILE_FLAGS}) + TARGET_LINK_LIBRARIES(${MODULE_NAME} navit_core) + endif() +# SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES COMPILE_DEFINITIONS "MODULE=${LIB_NAME}") + +# TARGET_LINK_LIBRARIES(${LIB_NAME} ${NAVIT_SUPPORT_LIBS}) +endmacro(supportlib_add_library) diff --git a/cmake/navit_xml_parser.cmake b/cmake/navit_xml_parser.cmake new file mode 100644 index 000000000..d39833010 --- /dev/null +++ b/cmake/navit_xml_parser.cmake @@ -0,0 +1,8 @@ +file(STRINGS "${SRC}" TEXT_LINES REGEX "_\\(") +file(WRITE ${DST} "// Strings from navit_shipped.xml\n") + +foreach (LINE ${TEXT_LINES}) + message(STATUS ${LINE}) + string(REGEX REPLACE ".*(_\\(\"[^\"]*\"\\)).*" "\\1\n" OUTPUT_LINE ${LINE}) + file(APPEND ${DST} ${OUTPUT_LINE}) +endforeach() diff --git a/cmake/version.cmake b/cmake/version.cmake new file mode 100644 index 000000000..87cc1ac71 --- /dev/null +++ b/cmake/version.cmake @@ -0,0 +1,54 @@ +#FIND_PACKAGE(Subversion) + +#if (Subversion_FOUND) +# Subversion_WC_INFO("${PROJECT_SOURCE_DIR}" Project) +# MESSAGE("Current revision is ${Project_WC_REVISION}") +# set (VERSION ${Project_WC_REVISION}) +# Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project) +# MESSAGE("Last changed log is ${Project_LAST_CHANGED_LOG}") +#endif(Subversion_FOUND) + + +#FIND_PROGRAM(Subversion_SVN_EXECUTABLE svn DOC "subversion command line client") +#EXECUTE_PROCESS( +# COMMAND ${Subversion_SVN_EXECUTABLE} --version +# OUTPUT_VARIABLE VERSION +# OUTPUT_STRIP_TRAILING_WHITESPACE +#) +FIND_PROGRAM(GIT_EXECUTABLE git DOC "git command line client") + +#set (VERSION "") +EXECUTE_PROCESS( + COMMAND ${GIT_EXECUTABLE} svn info + COMMAND grep "Revision" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + OUTPUT_VARIABLE VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +set( SVN_VERSION "unknown" ) + +if (NOT VERSION) + FIND_PACKAGE(Subversion) + + if (Subversion_FOUND) + + EXECUTE_PROCESS( + COMMAND svnversion + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + OUTPUT_VARIABLE VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif(Subversion_FOUND) + + if (VERSION) + set( SVN_VERSION ${VERSION} ) + endif(VERSION) +else() + string(REGEX REPLACE "Revision: " "" SVN_VERSION ${VERSION}) +endif(NOT VERSION) + +set(NAVIT_VARIANT "-") + +message (STATUS "SVN-version ${SVN_VERSION}") +CONFIGURE_FILE(${SRC} ${DST} @ONLY) diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 000000000..7f580ebd5 --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,25 @@ +#cmakedefine HAVE_MALLOC_H 1 +#cmakedefine HAVE_SYS_MOUNT_H +#cmakedefine HAVE_API_WIN32_BASE 1 +#cmakedefine HAVE_API_WIN32 1 +#cmakedefine HAVE_GLIB 1 + +/* Versions */ +#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@" +#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@" + +#cmakedefine HAVE_ZLIB 1 + +#cmakedefine USE_ROUTING 1 + +#cmakedefine HAVE_GTK2 1 + +#cmakedefine USE_PLUGINS 1 + +#cmakedefine SDL_TTF 1 + +#cmakedefine SDL_IMAGE 1 + +#cmakedefine HAVE_QT_SVG 1 + +#cmakedefine DBUS_USE_SYSTEM_BUS 1 diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/man/CMakeLists.txt diff --git a/navit/CMakeLists.txt b/navit/CMakeLists.txt new file mode 100644 index 000000000..d477b972e --- /dev/null +++ b/navit/CMakeLists.txt @@ -0,0 +1,111 @@ +include_directories( "${PROJECT_BINARY_DIR}") +include_directories( "${CMAKE_CURRENT_SOURCE_DIR}") +include_directories( "${CMAKE_CURRENT_BINARY_DIR}") +include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/support") + +message("" ) +message("Summary:\n") + +foreach ( PLUGIN_PATH ${ALL_PLUGINS}) + if (${${PLUGIN_PATH}}) + message("Enabled ${PLUGIN_PATH} ( ${${PLUGIN_PATH}_REASON} )") + + include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_PATH}") + + string(REPLACE "/" "_" MODULE_INC ${PLUGIN_PATH}) + list(APPEND NAVIT_SUPPORT_LIBS ${MODULE_INC}) + else() + message("Disabled ${PLUGIN_PATH} ( ${${PLUGIN_PATH}_REASON} )") + endif() +endforeach() + +foreach ( MODULE_PATH ${ALL_MODULES}) + if (${${MODULE_PATH}}) + message("Enabled ${MODULE_PATH} ( ${${MODULE_PATH}_REASON} )") + + include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE_PATH}") + + string(REPLACE "/" "_" MODULE_INC ${MODULE_PATH}) + list(APPEND MODULES_PROTOTYPE "void\tmodule_${MODULE_INC}_init(void)\;\\n") + list(APPEND MODULES_FUNC "module_${MODULE_INC}_init()\;\\n") + + if (NOT USE_PLUGINS) + list(APPEND MODULES_NAME ${MODULE_INC}) + endif() + else() + message("Disabled ${MODULE_PATH} ( ${${MODULE_PATH}_REASON} )") + endif() +endforeach() + +message( "") + +include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/fib-1.1") + +# Add module paths +foreach (CURRENT_MODULE ${ALL_PLUGINS} ${ALL_MODULES}) + if (${${CURRENT_MODULE}}) + add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/${CURRENT_MODULE}") + endif() +endforeach() + +add_subdirectory (fib-1.1) + +# navit cre +set(NAVIT_SRC announcement.c atom.c attr.c cache.c callback.c command.c compass.c config_.c coord.c country.c data_window.c debug.c + event.c file.c graphics.c gui.c item.c layout.c log.c main.c map.c + linguistics.c mapset.c maptype.c menu.c messages.c bookmarks.c navit.c navigation.c osd.c param.c phrase.c plugin.c popup.c + profile.c projection.c roadprofile.c route.c routech.c search.c speech.c start_real.c sunriset.c transform.c track.c + util.c vehicle.c vehicleprofile.c xmlconfig.c ) + +if(NOT USE_PLUGINS) + list(APPEND NAVIT_SRC builtin.c) +endif(NOT USE_PLUGINS) + +if (${HAVE_GLIB}) + list(APPEND NAVIT_SRC event_glib.c) +endif() + +add_library (navit_core ${NAVIT_SRC} ) +target_link_libraries(navit_core ${MODULES_NAME} ${NAVIT_SUPPORT_LIBS} fib) # support_glib support_zlib support_win32 support_libpng support_wordexp +set_target_properties(navit_core PROPERTIES COMPILE_DEFINITIONS "MODULE=navit;LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${LIB_DIR}\";PREFIX=\"${CMAKE_INSTALL_PREFIX}\"") +set_target_properties(navit_core PROPERTIES COMPILE_FLAGS ${NAVIT_COMPILE_FLAGS}) + +# Subversion revision +ADD_CUSTOM_TARGET( + version + cd ${CMAKE_CURRENT_SOURCE_DIR} && ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/version.h.in + -D DST=${CMAKE_CURRENT_BINARY_DIR}/version.h + -P ${PROJECT_SOURCE_DIR}/cmake/version.cmake +) + +ADD_CUSTOM_COMMAND( + OUTPUT builtin.c + COMMAND echo -e \"${MODULES_PROTOTYPE}\" > ${CMAKE_CURRENT_BINARY_DIR}/builtin.c + COMMAND echo -e \"extern void builtin_init(void)\;\\nvoid builtin_init(void) {\" >> ${CMAKE_CURRENT_BINARY_DIR}/builtin.c + COMMAND echo -e \"${MODULES_FUNC}\" >> ${CMAKE_CURRENT_BINARY_DIR}/builtin.c + COMMAND echo -e "\"}\"" >> ${CMAKE_CURRENT_BINARY_DIR}/builtin.c +) + +ADD_CUSTOM_COMMAND( + OUTPUT navit.xml + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/navit_shipped.xml ${CMAKE_CURRENT_BINARY_DIR}/navit.xml +) + + +#configure_file (${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) +ADD_DEPENDENCIES(navit_core version) + +add_executable (navit start.c navit.xml) +target_link_libraries (navit navit_core ${NAVIT_LIBS} m) +set_target_properties(navit PROPERTIES COMPILE_DEFINITIONS "MODULE=${MODULE_NAME}") + +add_subdirectory (xpm) + +install(TARGETS navit + DESTINATION ${BIN_DIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/navit.xml + DESTINATION ${SHARE_DIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) diff --git a/navit/binding/dbus/CMakeLists.txt b/navit/binding/dbus/CMakeLists.txt new file mode 100644 index 000000000..95fbd8267 --- /dev/null +++ b/navit/binding/dbus/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(binding_dbus binding_dbus.c) diff --git a/navit/fib-1.1/CMakeLists.txt b/navit/fib-1.1/CMakeLists.txt new file mode 100644 index 000000000..01ea1167a --- /dev/null +++ b/navit/fib-1.1/CMakeLists.txt @@ -0,0 +1,5 @@ +add_library(fib fib.c) +if (USE_PLUGINS) + SET_TARGET_PROPERTIES( fib PROPERTIES COMPILE_FLAGS -fPIC) +endif() + diff --git a/navit/graphics/CMakeLists.txt b/navit/graphics/CMakeLists.txt new file mode 100644 index 000000000..004accfc8 --- /dev/null +++ b/navit/graphics/CMakeLists.txt @@ -0,0 +1,11 @@ +# Create a library called "Hello" which includes the source file "hello.cxx". +# The extension is already found. Any number of sources could be listed here. + +add_subdirectory (ezxml) + +if (HAVE_API_WIN32_BASE) +add_subdirectory (glib) +add_subdirectory (win32) +endif (HAVE_API_WIN32_BASE) + +add_subdirectory (zlib) diff --git a/navit/graphics/null/CMakeLists.txt b/navit/graphics/null/CMakeLists.txt new file mode 100644 index 000000000..f9cd65ecf --- /dev/null +++ b/navit/graphics/null/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(graphics_null graphics_null.c) diff --git a/navit/graphics/opengl/CMakeLists.txt b/navit/graphics/opengl/CMakeLists.txt new file mode 100644 index 000000000..335d27f5f --- /dev/null +++ b/navit/graphics/opengl/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(graphics_opengl graphics_opengl.c) + diff --git a/navit/graphics/qt_qpainter/CMakeLists.txt b/navit/graphics/qt_qpainter/CMakeLists.txt new file mode 100644 index 000000000..c87bb81ac --- /dev/null +++ b/navit/graphics/qt_qpainter/CMakeLists.txt @@ -0,0 +1,10 @@ +# Create a library called "Hello" which includes the source file "hello.cxx". +# The extension is already found. Any number of sources could be listed here. + +add_definitions( -DMODULE=graphics_qt_qpainter ) + +QT4_GENERATE_MOC(graphics_qt_qpainter.cpp graphics_qt_qpainter.moc) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +add_library(graphics_qt_qpainter ${MODULE_BUILD_TYPE} graphics_qt_qpainter.moc graphics_qt_qpainter.cpp ) + diff --git a/navit/graphics/sdl/CMakeLists.txt b/navit/graphics/sdl/CMakeLists.txt new file mode 100644 index 000000000..b8cad6025 --- /dev/null +++ b/navit/graphics/sdl/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(graphics_sdl graphics_sdl.c raster.c) + diff --git a/navit/graphics/win32/CMakeLists.txt b/navit/graphics/win32/CMakeLists.txt new file mode 100644 index 000000000..68013dbd5 --- /dev/null +++ b/navit/graphics/win32/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(graphics_win32 graphics_win32.c xpm2bmp.c) diff --git a/navit/gui/gtk/CMakeLists.txt b/navit/gui/gtk/CMakeLists.txt new file mode 100644 index 000000000..33b5d3cb1 --- /dev/null +++ b/navit/gui/gtk/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(gui_gtk datawindow.c destination.c gui_gtk_statusbar.c gui_gtk_action.c gui_gtk_window.c) + diff --git a/navit/gui/internal/CMakeLists.txt b/navit/gui/internal/CMakeLists.txt new file mode 100644 index 000000000..4b9133cac --- /dev/null +++ b/navit/gui/internal/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(gui_internal gui_internal.c) diff --git a/navit/gui/qml/CMakeLists.txt b/navit/gui/qml/CMakeLists.txt new file mode 100644 index 000000000..531817e44 --- /dev/null +++ b/navit/gui/qml/CMakeLists.txt @@ -0,0 +1,14 @@ +# Create a library called "Hello" which includes the source file "hello.cxx". +# The extension is already found. Any number of sources could be listed here. + +add_definitions( -DMODULE=gui_qml ) +QT4_GENERATE_MOC(proxy.h proxy.moc) +QT4_GENERATE_MOC(ngqpoint.h ngqpoint.moc) +QT4_GENERATE_MOC(searchProxy.h searchProxy.moc) +QT4_GENERATE_MOC(bookmarksProxy.h bookmarksProxy.moc) +QT4_GENERATE_MOC(vehicleProxy.h vehicleProxy.moc) +QT4_GENERATE_MOC(navitProxy.h navitProxy.moc) +QT4_GENERATE_MOC(guiProxy.h guiProxy.moc) +QT4_GENERATE_MOC(gui_qml.cpp gui_qml.moc) +add_library(gui_qml ${MODULE_BUILD_TYPE} gui_qml.cpp proxy.moc ngqpoint.moc searchProxy.moc bookmarksProxy.moc vehicleProxy.moc navitProxy.moc guiProxy.moc gui_qml.moc) + diff --git a/navit/gui/win32/CMakeLists.txt b/navit/gui/win32/CMakeLists.txt new file mode 100644 index 000000000..16b653c9f --- /dev/null +++ b/navit/gui/win32/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(gui_win32 gui_win32.c win32_gui_destination.c win32_gui_notify.c ceglue.c) + diff --git a/navit/map/binfile/CMakeLists.txt b/navit/map/binfile/CMakeLists.txt new file mode 100644 index 000000000..9b5a6cc96 --- /dev/null +++ b/navit/map/binfile/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(map_binfile binfile.c) diff --git a/navit/map/filter/CMakeLists.txt b/navit/map/filter/CMakeLists.txt new file mode 100644 index 000000000..15da3f3c6 --- /dev/null +++ b/navit/map/filter/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(map_filter filter.c) diff --git a/navit/map/mg/CMakeLists.txt b/navit/map/mg/CMakeLists.txt new file mode 100644 index 000000000..5a2dd387c --- /dev/null +++ b/navit/map/mg/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(map_mg map.c block.c town.c tree.c poly.c street.c) diff --git a/navit/map/shapefile/CMakeLists.txt b/navit/map/shapefile/CMakeLists.txt new file mode 100644 index 000000000..7401f7e11 --- /dev/null +++ b/navit/map/shapefile/CMakeLists.txt @@ -0,0 +1,6 @@ +set (map_shapefile_SRC shapefile.c) +if (NOT HAVE_SYSTEM_SHAPEFILELIB) + set (map_shapefile_SRC ${map_shapefile_SRC} dbfopen.c shpopen.c shptree.c) +endif() + +module_add_library(map_shapefile ${map_shapefile_SRC}) diff --git a/navit/map/textfile/CMakeLists.txt b/navit/map/textfile/CMakeLists.txt new file mode 100644 index 000000000..00ef8211c --- /dev/null +++ b/navit/map/textfile/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(map_textfile textfile.c) diff --git a/navit/maptool/CMakeLists.txt b/navit/maptool/CMakeLists.txt new file mode 100644 index 000000000..848e2c103 --- /dev/null +++ b/navit/maptool/CMakeLists.txt @@ -0,0 +1,12 @@ + +if(BUILD_MAPTOOL) + add_definitions( -DMODULE=maptool ) + add_library (maptool_core boundaries.c buffer.c ch.c coastline.c geom.c itembin.c itembin_buffer.c misc.c osm.c sourcesink.c tempfile.c tile.c zip.c ) + add_executable (maptool maptool.c) + target_link_libraries(maptool maptool_core navit_core ${NAVIT_LIBS} m) + + install(TARGETS maptool + DESTINATION ${BIN_DIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + +endif() diff --git a/navit/osd/core/CMakeLists.txt b/navit/osd/core/CMakeLists.txt new file mode 100644 index 000000000..84231464b --- /dev/null +++ b/navit/osd/core/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(osd_core osd_core.c) diff --git a/navit/speech/cmdline/CMakeLists.txt b/navit/speech/cmdline/CMakeLists.txt new file mode 100644 index 000000000..f8c00ad4b --- /dev/null +++ b/navit/speech/cmdline/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(speech_cmdline speech_cmdline.c) diff --git a/navit/speech/dbus/CMakeLists.txt b/navit/speech/dbus/CMakeLists.txt new file mode 100644 index 000000000..87413018a --- /dev/null +++ b/navit/speech/dbus/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(speech_dbus speech_dbus.c) diff --git a/navit/speech/speech_dispatcher/CMakeLists.txt b/navit/speech/speech_dispatcher/CMakeLists.txt new file mode 100644 index 000000000..897a8c088 --- /dev/null +++ b/navit/speech/speech_dispatcher/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(speech_speech_dispatcher speech_speech_dispatcher.c) diff --git a/navit/support/ezxml/CMakeLists.txt b/navit/support/ezxml/CMakeLists.txt new file mode 100644 index 000000000..77cb571fd --- /dev/null +++ b/navit/support/ezxml/CMakeLists.txt @@ -0,0 +1,2 @@ +add_definitions( -DMODULE=support_ezxml -DEZXML_NOMMAP ) +add_library(support_ezxml ezxml.c ezxml_init.c ) diff --git a/navit/support/glib/CMakeLists.txt b/navit/support/glib/CMakeLists.txt new file mode 100644 index 000000000..658cac60c --- /dev/null +++ b/navit/support/glib/CMakeLists.txt @@ -0,0 +1,4 @@ +add_definitions( -DMODULE=support_glib ) +add_library(support_glib STATIC fake.c galiasdef.c gatomic.c gerror.c ghash.c +glib_init.c glist.c gmem.c gmessages.c gprimes.c gprintf.c gslice.c +gstrfuncs.c gstring.c gutf8.c gutils.c) diff --git a/navit/support/libpng/CMakeLists.txt b/navit/support/libpng/CMakeLists.txt new file mode 100644 index 000000000..cb8ea6f01 --- /dev/null +++ b/navit/support/libpng/CMakeLists.txt @@ -0,0 +1,3 @@ +add_definitions( -DMODULE=support_libpng ) +add_library(support_libpng png.c pngerror.c pngget.c pngmem.c pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c libpng_init.c) + diff --git a/navit/support/win32/CMakeLists.txt b/navit/support/win32/CMakeLists.txt new file mode 100644 index 000000000..2b1db52e9 --- /dev/null +++ b/navit/support/win32/CMakeLists.txt @@ -0,0 +1,3 @@ +add_definitions( -DMODULE=support_win32 ) +add_library(support_win32 mmap.c win32_init.c ConvertUTF.c) + diff --git a/navit/support/wordexp/CMakeLists.txt b/navit/support/wordexp/CMakeLists.txt new file mode 100644 index 000000000..650c9d1de --- /dev/null +++ b/navit/support/wordexp/CMakeLists.txt @@ -0,0 +1 @@ +supportlib_add_library(support_wordexp wordexp.c wordexp_init.c glob.c) diff --git a/navit/support/zlib/CMakeLists.txt b/navit/support/zlib/CMakeLists.txt new file mode 100644 index 000000000..80bcffd6e --- /dev/null +++ b/navit/support/zlib/CMakeLists.txt @@ -0,0 +1,2 @@ +add_definitions( -DMODULE=support_zlib ) +add_library(support_zlib adler32.c crc32.c infback.c inffast.c inflate.c inftrees.c zutil.c zlib_init.c) diff --git a/navit/vehicle/demo/CMakeLists.txt b/navit/vehicle/demo/CMakeLists.txt new file mode 100644 index 000000000..e7f57f902 --- /dev/null +++ b/navit/vehicle/demo/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(vehicle_demo vehicle_demo.c) diff --git a/navit/vehicle/file/CMakeLists.txt b/navit/vehicle/file/CMakeLists.txt new file mode 100644 index 000000000..ed71e92f3 --- /dev/null +++ b/navit/vehicle/file/CMakeLists.txt @@ -0,0 +1,3 @@ +module_add_library(vehicle_file vehicle_file.c) +module_add_library(vehicle_pipe vehicle_pipe.c) +module_add_library(vehicle_socket vehicle_socket.c) diff --git a/navit/vehicle/gpsd/CMakeLists.txt b/navit/vehicle/gpsd/CMakeLists.txt new file mode 100644 index 000000000..913bc131a --- /dev/null +++ b/navit/vehicle/gpsd/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(vehicle_gpsd vehicle_gpsd.c) + diff --git a/navit/vehicle/gpsd_dbus/CMakeLists.txt b/navit/vehicle/gpsd_dbus/CMakeLists.txt new file mode 100644 index 000000000..435a987a0 --- /dev/null +++ b/navit/vehicle/gpsd_dbus/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(vehicle_gpsd_dbus vehicle_gpsd_dbus.c) + diff --git a/navit/vehicle/gypsy/CMakeLists.txt b/navit/vehicle/gypsy/CMakeLists.txt new file mode 100644 index 000000000..a57a8fb7b --- /dev/null +++ b/navit/vehicle/gypsy/CMakeLists.txt @@ -0,0 +1,2 @@ +module_add_library(vehicle_gypsy vehicle_gypsy.c) + diff --git a/navit/vehicle/wince/CMakeLists.txt b/navit/vehicle/wince/CMakeLists.txt new file mode 100644 index 000000000..d35904a3e --- /dev/null +++ b/navit/vehicle/wince/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(vehicle_wince vehicle_wince.c) diff --git a/navit/version.h.in b/navit/version.h.in new file mode 100644 index 000000000..cc58ebe24 --- /dev/null +++ b/navit/version.h.in @@ -0,0 +1,2 @@ +#cmakedefine SVN_VERSION "@SVN_VERSION@" +#cmakedefine NAVIT_VARIANT "@NAVIT_VARIANT@" diff --git a/navit/xpm/CMakeLists.txt b/navit/xpm/CMakeLists.txt new file mode 100644 index 000000000..fad65ccbc --- /dev/null +++ b/navit/xpm/CMakeLists.txt @@ -0,0 +1,80 @@ +macro(convert_svg2png IMAGE_INPUT IMAGE_OUTPUT SCALE) + if(${IMAGE_CONVERTER} MATCHES "rsvg-convert") + if (${SCALE} GREATER 0) + set(SCALE_ARGS --width=${SCALE} --height=${SCALE}) + endif() + set(COMMAND_ARGS ${SCALE_ARGS} --output ${IMAGE_OUTPUT} ${IMAGE_INPUT}) + elseif(${IMAGE_CONVERTER} MATCHES "ksvgtopng") + set (NEW_SCALE ${SCALE}) + if (${SCALE} EQUAL 0) + file(STRINGS ${IMAGE_INPUT} NEW_SCALE_LINE REGEX "width=\"[0-9pxt.]*\"") + string(REGEX REPLACE ".*width=\"([0-9]*).*\"" "\\1" NEW_SCALE ${NEW_SCALE_LINE}) + message(STATUS "newscale='${NEW_SCALE}'") + endif() + set(COMMAND_ARGS ${NEW_SCALE} ${NEW_SCALE} ${IMAGE_INPUT} --output ${IMAGE_OUTPUT}) + else() + message(FATAL_ERROR "no svg2png converter defined here.") + endif() + + add_custom_command ( + OUTPUT ${IMAGE_OUTPUT} + DEPENDS ${IMAGE_INPUT} + COMMAND ${IMAGE_CONVERTER} ${COMMAND_ARGS} + ) +endmacro() + +macro(add_scale_targets IMAGE_NAME) + foreach (CURRENT_SCALE ${ARGN}) + convert_svg2png( + ${CMAKE_CURRENT_SOURCE_DIR}/${SVG} + ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}_${CURRENT_SCALE}_${CURRENT_SCALE}.png + ${CURRENT_SCALE} + ) + list(APPEND IMAGE_TARGETS ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}_${CURRENT_SCALE}_${CURRENT_SCALE}.png) + endforeach() +endmacro() + +#install(FILES desktop_icons/navit.desktop DESTINATION share/applications) +#install(FILES desktop_icons/22x22/navit.png DESTINATION share/icons/hicolor/22x22/apps) +#install(FILES desktop_icons/128x128/navit.png DESTINATION share/icons/hicolor/128x128/apps) +#install(FILES bench.xpm DESTINATION ) + +FILE(GLOB XPM_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.xpm") +list(APPEND IMAGE_TARGETS ${XPM_FILES}) + +if (USE_SVG OR SVG2PNG) + FILE(GLOB SVG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg") + + if(USE_SVG) + list(APPEND IMAGE_TARGETS ${SVG_FILES}) + endif(USE_SVG) + + if (SVG2PNG) + foreach (SVG ${SVG_FILES}) + string(REPLACE ".svg" "" IMAGE ${SVG}) + + if ( DEFINED svg2png_scaling_nav AND ${IMAGE} MATCHES "^nav_") + add_scale_targets(${IMAGE} ${svg2png_scaling_nav}) + elseif( DEFINED svg2png_scaling_flag AND ${IMAGE} MATCHES "^country_") + add_scale_targets(${IMAGE} ${svg2png_scaling_flag}) + elseif( DEFINED svg2png_scaling) + add_scale_targets(${IMAGE} ${svg2png_scaling}) + endif() + + convert_svg2png ( + "${CMAKE_CURRENT_SOURCE_DIR}/${SVG}" + "${CMAKE_CURRENT_BINARY_DIR}/${IMAGE}.png" + 0 + ) + list(APPEND IMAGE_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/${IMAGE}.png") + endforeach() + endif(SVG2PNG) +endif(USE_SVG OR SVG2PNG) + +add_custom_target(images ALL DEPENDS ${IMAGE_TARGETS}) + +install( + FILES ${IMAGE_TARGETS} + DESTINATION ${IMAGE_DIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE +) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 000000000..e73c79aca --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,53 @@ +FIND_PROGRAM(XGETTEXT xgettext) + +set(POTFILES + ${PROJECT_SOURCE_DIR}/navit/main.c + ${PROJECT_SOURCE_DIR}/navit/navigation.c + ${PROJECT_SOURCE_DIR}/navit/navit.c + ${PROJECT_SOURCE_DIR}/navit/popup.c + ${PROJECT_SOURCE_DIR}/navit/country.c + ${PROJECT_SOURCE_DIR}/navit/gui/gtk/destination.c + ${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_action.c + ${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_statusbar.c + ${PROJECT_SOURCE_DIR}/navit/gui/internal/gui_internal.c + navit_shipped.c +) + +ADD_CUSTOM_COMMAND( + OUTPUT navit_shipped.c + DEPENDS ${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml + COMMAND ${CMAKE_COMMAND} -D SRC=${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml -D DST=${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c + -P ${PROJECT_SOURCE_DIR}/cmake/navit_xml_parser.cmake +) + + +ADD_CUSTOM_COMMAND( + OUTPUT navit.po + DEPENDS ${POTFILES} + COMMAND ${XGETTEXT} --no-location --default-domain=navit --add-comments --keyword=_ --keyword=_n ${POTFILES} +) + +FILE(GLOB POIN_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po.in") + +string(REPLACE ".po.in" "" LANGUAGES "${POIN_FILES}") +string(REPLACE ".po.in" ".mo" MOFILES "${POIN_FILES}") + +foreach (LANG ${LANGUAGES}) + ADD_CUSTOM_COMMAND( + OUTPUT ${LANG}.po + DEPENDS navit.po + COMMAND sed 's/^\"Project-Id-Version:.*/\"Project-Id-Version: ${PACKAGE_STRING}\\\\n\"/' < "${CMAKE_CURRENT_SOURCE_DIR}/${LANG}.po.in" | ${GETTEXT_MSGMERGE_EXECUTABLE} --no-fuzzy-matching --verbose -o "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po" - navit.po + ) +endforeach(LANG ${LANGUAGES}) + +foreach (LANG ${LANGUAGES}) + ADD_CUSTOM_COMMAND( + OUTPUT ${LANG}.mo + DEPENDS ${LANG}.po + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check --verbose --statistics --output-file="${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po" + COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES/navit.mo" + ) +endforeach(LANG ${LANGUAGES}) + +add_custom_target(locales ALL DEPENDS ${MOFILES}) |