/[zanavi_public1]/navit/navit/CMakeLists.txt
ZANavi

Contents of /navit/navit/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 56 - (show annotations) (download)
Sun Mar 19 08:44:36 2017 UTC (7 years ago) by zoff99
File MIME type: text/plain
File size: 7756 byte(s)
updates
1 include_directories( "${PROJECT_BINARY_DIR}")
2 include_directories( "${PROJECT_SOURCE_DIR}")
3 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}")
4 include_directories( "${CMAKE_CURRENT_BINARY_DIR}")
5 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/support")
6
7 # navit
8 set(NAVIT_SRC announcement.c atom.c attr.c cache.c callback.c command.c config_.c coord.c country.c data_window.c debug.c
9 event.c file.c graphics.c gui.c item.c layout.c log.c main.c map.c
10 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
11 profile.c projection.c roadprofile.c route.c search.c speech.c start_real.c sunriset.c transform.c track.c
12 maptool/miniz.c coffeecatch.c
13 coffeejni.c snprintf.c
14 vehicle/android/vehicle_android.c vehicle/demo/vehicle_demo.c
15 gui/internal/gui_internal.c
16 graphics/android/graphics_android.c map/binfile/binfile.c
17 map/csv/csv.c map/csv/quadtree.c map/textfile/textfile.c
18 osd/core/osd_core.c speech/android/speech_android.c android.c
19 util.c vehicle.c vehicleprofile.c xmlconfig.c )
20
21 if(NOT USE_PLUGINS)
22 list(APPEND NAVIT_SRC ${CMAKE_CURRENT_BINARY_DIR}/builtin.c)
23 endif(NOT USE_PLUGINS)
24
25 if (${HAVE_GLIB})
26 list(APPEND NAVIT_SRC event_glib.c)
27 endif()
28
29 if(ANDROID)
30 list(APPEND NAVIT_SRC android.c)
31 set(NAVIT_LIBNAME navit)
32 else()
33 set(NAVIT_LIBNAME navit_core)
34 endif()
35
36
37 foreach ( PLUGIN_PATH ${ALL_PLUGINS})
38 if (${PLUGIN_PATH})
39 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_PATH}")
40
41 string(REPLACE "/" "_" MODULE_INC ${PLUGIN_PATH})
42 list(APPEND NAVIT_SUPPORT_LIBS ${MODULE_INC})
43 endif()
44 endforeach()
45
46 foreach ( MODULE_PATH ${ALL_MODULES})
47 if ( ${MODULE_PATH} )
48 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE_PATH}")
49
50 string(REPLACE "/" "_" MODULE_INC ${MODULE_PATH})
51 list(APPEND MODULES_PROTOTYPE "\nvoid\tmodule_${MODULE_INC}_init(void)")
52 list(APPEND MODULES_FUNC "\nmodule_${MODULE_INC}_init()")
53
54 if (NOT USE_PLUGINS)
55 list(APPEND MODULES_NAME ${MODULE_INC})
56 else()
57 string(REGEX REPLACE "(^[^/]*)/.*" "\\1" ${MODULE_INC}_TYPE ${MODULE_PATH})
58 endif()
59 endif()
60 endforeach()
61
62 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/builtin.c.in ${CMAKE_CURRENT_BINARY_DIR}/builtin.c)
63
64 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/fib-1.1")
65 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/../intl")
66
67 # Add module paths
68 foreach (CURRENT_MODULE ${ALL_PLUGINS} ${ALL_MODULE_PLUGINS} ${ALL_MODULES})
69 if (${CURRENT_MODULE})
70 add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/${CURRENT_MODULE}")
71 endif()
72 endforeach()
73
74 add_subdirectory (fib-1.1)
75 add_subdirectory (../intl ./intl) # out-of-source dir needs bin dir
76
77 if(NOT ANDROID)
78 set(NAVIT_START_SRC start.c)
79 if(WIN32 OR WINCE AND NOT WIN_OMIT_RESOURCES)
80 list(APPEND NAVIT_START_SRC ${CMAKE_CURRENT_SOURCE_DIR}/gui/win32/resources/resource.rc)
81 else()
82 if (APPLE)
83 set(NAVIT_START_SRC start_apple.m)
84 endif()
85 endif()
86 if (BUILD_BUNDLE)
87 list(APPEND NAVIT_START_SRC resources/share resources/Icon.png resources/Default.png)
88 add_custom_command(OUTPUT resources/Icon.png COMMAND convert -scale 79x79 -crop 60x60+8+19 ${CMAKE_CURRENT_SOURCE_DIR}/xpm/desktop_icons/128x128/navit.png resources/Icon.png)
89 add_custom_command(OUTPUT resources/Default.png COMMAND convert -scale 79x79 -crop 60x60+8+19 ${CMAKE_CURRENT_SOURCE_DIR}/xpm/desktop_icons/128x128/navit.png resources/Default.png)
90 endif()
91 add_executable(navit ${NAVIT_START_SRC})
92 target_link_libraries (navit ${NAVIT_LIBNAME})
93 set_target_properties(navit PROPERTIES COMPILE_DEFINITIONS "MODULE=${MODULE_NAME}")
94 if (BUILD_BUNDLE)
95 add_custom_command(OUTPUT resources/share COMMAND mkdir -p resources/share)
96 set_source_files_properties(resources/share resources/Icon.png resources/Default.png PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
97 set_target_properties(navit PROPERTIES MACOSX_BUNDLE TRUE)
98 set_target_properties(navit PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
99 add_dependencies(navit navit_config_xml_resource)
100 add_dependencies(navit images_resource)
101 add_dependencies(navit locale_resource)
102 endif()
103 endif()
104
105 if (SHARED_LIBNAVIT)
106 add_library (${NAVIT_LIBNAME} SHARED ${NAVIT_SRC} )
107 else(SHARED_LIBNAVIT)
108 add_library (${NAVIT_LIBNAME} STATIC ${NAVIT_SRC} )
109 endif(SHARED_LIBNAVIT)
110 if(NOT MSVC)
111 SET(NAVIT_LIBS ${NAVIT_LIBS} m)
112 endif(NOT MSVC)
113 target_link_libraries(${NAVIT_LIBNAME} ${MODULES_NAME} ${NAVIT_SUPPORT_LIBS} fib intl ${NAVIT_LIBS})
114 set_target_properties(${NAVIT_LIBNAME} PROPERTIES COMPILE_DEFINITIONS "MODULE=navit;LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${LIB_DIR}\";PREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
115 if (DEFINED NAVIT_COMPILE_FLAGS)
116 set_target_properties(${NAVIT_LIBNAME} PROPERTIES COMPILE_FLAGS "${NAVIT_COMPILE_FLAGS}")
117 endif()
118
119 ADD_CUSTOM_TARGET(
120 git_version
121 ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/version.h.in
122 -D DST=${CMAKE_CURRENT_BINARY_DIR}/version.h
123 -D NAME="GIT_VERSION"
124 -P ${PROJECT_SOURCE_DIR}/cmake/version.cmake
125 )
126
127 # additional parameter are passed to the stylesheet processor as parameter
128 macro(process_xslt SRC_XML DEST_XML)
129 set(XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E copy ${SRC_XML} ${DEST_XML}
130 COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/navit/navit.dtd ${CMAKE_CURRENT_BINARY_DIR}/navit.dtd)
131 if(XSL_PROCESSING AND XSLTS)
132 string(REPLACE "," ";" XSLTS "${XSLTS}")
133 foreach(tmp ${XSLTS})
134 set(XSLT_FILE "${PROJECT_SOURCE_DIR}/navit/xslt/${tmp}.xslt")
135 list(APPEND XSLT_FILES "${XSLT_FILE}")
136 list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E echo Applying ${tmp}.xslt)
137 compose_xslt_transform_command(CMD "${XSLT_FILE}" "${DEST_XML}" "${DEST_XML}.tmp" "${ARGN}")
138 list(APPEND XSLT_COMMANDS ${CMD})
139 list(APPEND XSLT_COMMANDS COMMAND ${CMAKE_COMMAND} -E rename ${DEST_XML}.tmp ${DEST_XML})
140 endforeach()
141 endif()
142 ADD_CUSTOM_COMMAND(
143 OUTPUT ${DEST_XML}
144 DEPENDS ${SRC_XML} ${XSLT_FILES}
145 ${XSLT_COMMANDS}
146 )
147 endmacro()
148
149
150 ADD_DEPENDENCIES(${NAVIT_LIBNAME} git_version)
151
152 install(TARGETS navit
153 DESTINATION ${BIN_DIR}
154 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
155
156 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/navit.xml
157 DESTINATION ${SHARE_DIR}
158 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
159
160 get_directory_property(INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
161 WRITE_FILE("cmake_plugin_settings.txt"
162 "set(APPLE ${APPLE} CACHE BOOL init)\n"
163 "set(ANDROID ${ANDROID} CACHE BOOL init)\n"
164 "set(USE_PLUGINS ${USE_PLUGINS} CACHE BOOL init)\n"
165 "set(MODULE_BUILD_TYPE \"${MODULE_BUILD_TYPE}\" CACHE STRING init)\n"
166 "set(NAVIT_COMPILE_FLAGS \"${NAVIT_COMPILE_FLAGS}\" CACHE STRING init)\n"
167 "set(navit_SOURCE_DIR \"${navit_SOURCE_DIR}\" CACHE STRING init)\n"
168 "set(NAVIT_LIBNAME \"${NAVIT_LIBNAME}\" CACHE STRING init)\n"
169 "set(ANDROID_API_VERSION \"${ANDROID_API_VERSION}\" CACHE STRING init)\n"
170 "set(ANDROID_NDK_API_VERSION \"${ANDROID_NDK_API_VERSION}\" CACHE STRING init)\n"
171 "set(CMAKE_TOOLCHAIN_FILE \"${CMAKE_TOOLCHAIN_FILE}\" CACHE STRING init)\n"
172 "set(INCLUDE_DIRECTORIES \"${INCLUDE_DIRECTORIES}\" CACHE STRING init)\n"
173 "set(LIB_DIR \"${LIB_DIR}\" CACHE STRING init)\n"
174 "set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\" CACHE STRING init)\n"
175 )
176

   
Visit the ZANavi Wiki