diff options
author | rikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-10-02 19:58:55 +0000 |
---|---|---|
committer | rikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-10-02 19:58:55 +0000 |
commit | 90592b376cd249678431e1272c6661a6f1d10312 (patch) | |
tree | e2cdd914ff2b3be4c97a0d3ffb150ab13068f3d1 /cmake | |
parent | bc0e688ebd4badd625d4d3c493a51a2e66b9c36c (diff) | |
download | navit-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.cmake | 44 | ||||
-rw-r--r-- | cmake/navit_xml_parser.cmake | 8 | ||||
-rw-r--r-- | cmake/version.cmake | 54 |
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) |