diff options
author | Stefan Wildemann <gta04@metalstrolche.de> | 2017-04-10 16:52:47 +0200 |
---|---|---|
committer | Stefan Wildemann <gta04@metalstrolche.de> | 2017-04-10 16:57:22 +0200 |
commit | efdf6144474d9aeb4cb962887c39f18f427cc248 (patch) | |
tree | 9cd5800d59dcbd73f2db3986cb748282d4c4ba8e | |
parent | f466ed624c282e30869fa1cc04f191812e0b4888 (diff) | |
download | navit-efdf6144474d9aeb4cb962887c39f18f427cc248.tar.gz |
Support unusual building
This patch updates navits cmake system to allow more unusual build and
install path configurations as well as renaming the navit binary. This
sis required for restricted environments like Sailfish OS harbour that
do not follow usual path conventions.
-rwxr-xr-x | CMakeLists.txt | 29 | ||||
-rw-r--r-- | man/CMakeLists.txt | 6 | ||||
-rw-r--r-- | navit/CMakeLists.txt | 4 | ||||
-rw-r--r-- | navit/main.c | 6 | ||||
-rw-r--r-- | navit/xpm/CMakeLists.txt | 11 | ||||
-rw-r--r-- | navit/xpm/desktop_icons/navit.desktop.in (renamed from navit/xpm/desktop_icons/navit.desktop) | 4 | ||||
-rw-r--r-- | po/CMakeLists.txt | 2 |
7 files changed, 40 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index fe9457e23..5e8faf5b4 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ set(NAVIT_VERSION_PATCH "1") set(PACKAGE_VERSION "${NAVIT_VERSION_MAJOR}.${NAVIT_VERSION_MINOR}.${NAVIT_VERSION_PATCH}") set(PACKAGE_NAME "navit-git") -set(PACKAGE "navit") +set(PACKAGE "navit" CACHE STRING "Navit package name") set(PACKAGE_STRING "${PACKAGE} ${PACKAGE_VERSION}") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") @@ -28,12 +28,19 @@ IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) +# binary name +set(NAVIT_BINARY navit CACHE PATH "Navit binary name") # install path -set(BIN_DIR bin) -set(SHARE_DIR share/navit) -set(LOCALE_DIR share/locale) -set(IMAGE_DIR share/navit/xpm) -set(MAN_DIR share/man/man1) +set(BIN_DIR bin CACHE PATH "Navit bin path") +add_definitions ("-DBIN_DIR=\"${BIN_DIR}\"") +set(SHARE_DIR share/navit CACHE PATH "Navit share path") +add_definitions ("-DSHARE_DIR=\"${SHARE_DIR}\"") +set(LOCALE_DIR share/locale CACHE PATH "Navit locale path") +add_definitions ("-DLOCALE_DIR=\"${LOCALE_DIR}\"") +set(IMAGE_DIR share/navit/xpm CACHE PATH "Navit image path") +add_definitions ("-DIMAGE_DIR=\"${IMAGE_DIR}\"") +set(MAN_DIR share/man/man1 CACHE PATH "Navit man path") +add_definitions ("-DMAN_DIR=\"${MAN_DIR}\"") # LIB_DIR IF(UNIX AND NOT ANDROID AND NOT APPLE) IF (NOT LIBDIR) @@ -41,10 +48,10 @@ IF(UNIX AND NOT ANDROID AND NOT APPLE) MESSAGE(STATUS "You can set it manually with -DLIBDIR=<value>") # check 64 bit IF (CMAKE_SIZEOF_VOID_P EQUAL 4) - SET(LIB_DIR lib) + SET(LIB_DIR lib CACHE PATH "Navit 32bit bin path") MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'") ELSE (CMAKE_SIZEOF_VOID_P EQUAL 4) - SET(LIB_DIR lib64) + SET(LIB_DIR lib64 CACHE PATH "Navit 64bit bin path") MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'") ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4) ELSE (NOT LIBDIR) @@ -52,12 +59,12 @@ IF(UNIX AND NOT ANDROID AND NOT APPLE) MESSAGE(STATUS " LIB_DIR (highest subdirectory if LIBDIR) is set to '${LIB_DIR}'") ENDIF (NOT LIBDIR) ELSE (UNIX AND NOT ANDROID AND NOT APPLE) - SET(LIB_DIR lib) + SET(LIB_DIR lib CACHE PATH "Navit unix bin path") ENDIF (UNIX AND NOT ANDROID AND NOT APPLE) - foreach(EXTRA_MODULE ${EXTRA_MODULES}) add_module(${EXTRA_MODULE} "extra module specified" TRUE) endforeach() +add_definitions ("-DLIB_DIR=\"${LIB_DIR}\"") if (EXTRA_LIBS) list(APPEND NAVIT_LIBS ${EXTRA_LIBS}) @@ -634,7 +641,7 @@ if(CMAKE_SIZEOF_VOID_P LESS 8) set_with_reason(BUILD_MAPTOOL "maptool works only on 64 bit architectures" FALSE) endif() -set(LOCALEDIR "${LOCALE_DIR}/locale") +set(LOCALEDIR "${LOCALE_DIR}") find_program(BZCAT NAMES bzcat) if (SAMPLE_MAP) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index ceb2ca3c9..886dc1227 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -1 +1,5 @@ -INSTALL(FILES maptool.1 navit.1 DESTINATION ${MAN_DIR}) +INSTALL(FILES maptool.1 DESTINATION ${MAN_DIR}) +if(NOT DEFINED NAVIT_BINARY) + set(NAVIT_BINARY navit) +endif() +INSTALL(FILES navit.1 DESTINATION ${MAN_DIR} RENAME ${NAVIT_BINARY}.1) diff --git a/navit/CMakeLists.txt b/navit/CMakeLists.txt index 5333c9ff4..c9d56cd34 100644 --- a/navit/CMakeLists.txt +++ b/navit/CMakeLists.txt @@ -81,7 +81,9 @@ if(NOT ANDROID) endif() add_executable(navit ${NAVIT_START_SRC}) target_link_libraries (navit ${NAVIT_LIBNAME}) - set_target_properties(navit PROPERTIES COMPILE_DEFINITIONS "MODULE=${MODULE_NAME}") + if(DEFINED NAVIT_BINARY) + set_target_properties(navit PROPERTIES OUTPUT_NAME ${NAVIT_BINARY}) + endif(DEFINED NAVIT_BINARY) if (BUILD_BUNDLE) add_custom_command(OUTPUT resources/share COMMAND mkdir -p resources/share) set_source_files_properties(resources/share resources/Icon.png resources/Default.png PROPERTIES MACOSX_PACKAGE_LOCATION Resources) diff --git a/navit/main.c b/navit/main.c index 986bcb13b..a64ed1067 100644 --- a/navit/main.c +++ b/navit/main.c @@ -81,9 +81,9 @@ setenv(char *var, char *val, int overwrite) * '~' replaced with HOME */ static char *environment_vars[][5]={ - {"NAVIT_LIBDIR", ":", "::/navit", ":\\lib", ":/lib"}, - {"NAVIT_SHAREDIR", ":", ":/share/navit", ":", ":/share"}, - {"NAVIT_LOCALEDIR", ":/../locale",":/share/locale",":\\locale", ":/locale"}, + {"NAVIT_LIBDIR", ":", ":/"LIB_DIR"/navit",":\\lib", ":/lib"}, + {"NAVIT_SHAREDIR", ":", ":/"SHARE_DIR, ":", ":/share"}, + {"NAVIT_LOCALEDIR", ":/../locale",":/"LOCALE_DIR, ":\\locale", ":/locale"}, {"NAVIT_USER_DATADIR",":", "~/.navit", ":\\data", ":/home"}, {"NAVIT_LOGFILE", NULL, NULL, ":\\navit.log",NULL}, {"NAVIT_LIBPREFIX", "*/.libs/", NULL, NULL, NULL}, diff --git a/navit/xpm/CMakeLists.txt b/navit/xpm/CMakeLists.txt index a2ce9e4b4..096d76ff0 100644 --- a/navit/xpm/CMakeLists.txt +++ b/navit/xpm/CMakeLists.txt @@ -66,9 +66,14 @@ macro(add_scale_targets IMAGE_SRC IMAGE_NAME) 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) +if(NOT DEFINED ${NAVIT_BINARY}) + set(NAVIT_BINARY navit) +endif() +#patch binary name in desktop file +configure_file(desktop_icons/navit.desktop.in desktop_icons/${PACKAGE}.desktop) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/desktop_icons/${PACKAGE}.desktop DESTINATION share/applications) +install(FILES desktop_icons/22x22/navit.png DESTINATION share/icons/hicolor/22x22/apps RENAME ${PACKAGE}.png) +install(FILES desktop_icons/128x128/navit.png DESTINATION share/icons/hicolor/128x128/apps RENAME ${PACKAGE}.png) #install(FILES bench.xpm DESTINATION ) if (USE_SVG OR SVG2PNG) diff --git a/navit/xpm/desktop_icons/navit.desktop b/navit/xpm/desktop_icons/navit.desktop.in index ff66f8aeb..03ce80da1 100644 --- a/navit/xpm/desktop_icons/navit.desktop +++ b/navit/xpm/desktop_icons/navit.desktop.in @@ -6,8 +6,8 @@ Name[fr]=Navit Comment=The open source vector based navigation program with routing engine Comment[de]=Ein vektorbasiertes Navigationsprogramm Comment[fr]=Le logiciel opensource de navigation vectorielle -Exec=navit -Icon=navit +Exec=@NAVIT_BINARY@ +Icon=@PACKAGE@ StartupNotify=true Terminal=false Type=Application diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index de83bb52b..1967005b4 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -84,7 +84,7 @@ foreach (LANG ${LANGUAGES}) COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES/navit.mo" ) SET(MOFILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo ${MOFILES}) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo DESTINATION ${LOCALE_DIR}/${LANG}/LC_MESSAGES RENAME navit.mo) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo DESTINATION ${LOCALE_DIR}/${LANG}/LC_MESSAGES RENAME ${PACKAGE}.mo) endforeach(LANG ${LANGUAGES}) add_custom_target(locales ALL DEPENDS ${MOFILES}) |