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 |
|