summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-10-02 19:58:55 +0000
committerrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-10-02 19:58:55 +0000
commit90592b376cd249678431e1272c6661a6f1d10312 (patch)
treee2cdd914ff2b3be4c97a0d3ffb150ab13068f3d1 /cmake
parentbc0e688ebd4badd625d4d3c493a51a2e66b9c36c (diff)
downloadnavit-svn-90592b376cd249678431e1272c6661a6f1d10312.tar.gz
Add:core:Initial support for cmake build system. This first stage partly supports windows and linux platforms.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3589 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'cmake')
-rw-r--r--cmake/navit_macros.cmake44
-rw-r--r--cmake/navit_xml_parser.cmake8
-rw-r--r--cmake/version.cmake54
3 files changed, 106 insertions, 0 deletions
diff --git a/cmake/navit_macros.cmake b/cmake/navit_macros.cmake
new file mode 100644
index 00000000..cc8b714a
--- /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 00000000..d3983301
--- /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 00000000..87cc1ac7
--- /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)