1 #-----------------------------------------------------------------------------
7 #-----------------------------------------------------------------------------
9 cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
10 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
13 #-----------------------------------------------------------------------------
17 #-----------------------------------------------------------------------------
21 set(NOMINATIM_VERSION_MAJOR 2)
22 set(NOMINATIM_VERSION_MINOR 5)
24 set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}")
26 add_definitions(-DNOMINATIM_VERSION="${NOMINATIM_VERSION}")
29 #-----------------------------------------------------------------------------
31 # Find external dependencies
33 #-----------------------------------------------------------------------------
35 set(BUILD_TESTS off CACHE BOOL "Build test suite" FORCE)
36 set(WITH_LUA off CACHE BOOL "Build with lua support" FORCE)
38 if (NOT EXISTS "${CMAKE_SOURCE_DIR}/osm2pgsql/CMakeLists.txt")
39 message(FATAL_ERROR "The osm2pgsql directory is empty.\
40 Did you forget to check out Nominatim recursively?\
41 \nTry updating submodules with: git submodule update --init")
43 add_subdirectory(osm2pgsql)
45 find_package(Threads REQUIRED)
47 unset(PostgreSQL_TYPE_INCLUDE_DIR CACHE)
48 set(PostgreSQL_TYPE_INCLUDE_DIR "/usr/include/")
49 find_package(PostgreSQL REQUIRED)
50 include_directories(${PostgreSQL_INCLUDE_DIRS})
51 link_directories(${PostgreSQL_LIBRARY_DIRS})
53 find_program(PYOSMIUM pyosmium-get-changes)
54 if (NOT EXISTS "${PYOSMIUM}")
55 set(PYOSMIUM_PATH "/nonexistent")
56 message(WARNING "pyosmium-get-changes not found (required for updates)")
58 set(PYOSMIUM_PATH "${PYOSMIUM}")
59 message(STATUS "Using pyosmium-get-changes at ${PYOSMIUM_PATH}")
63 find_program(PG_CONFIG pg_config)
64 execute_process(COMMAND ${PG_CONFIG} --pgxs
66 OUTPUT_STRIP_TRAILING_WHITESPACE)
68 if (NOT EXISTS "${PGXS}")
69 message(FATAL_ERROR "Postgresql server package not found.")
72 find_package(ZLIB REQUIRED)
74 find_package(BZip2 REQUIRED)
76 find_package(LibXml2 REQUIRED)
77 include_directories(${LIBXML2_INCLUDE_DIR})
79 #-----------------------------------------------------------------------------
81 # Setup settings and paths
83 #-----------------------------------------------------------------------------
86 settings/phrase_settings.php
97 website/crossdomain.xml
99 website/last_update.php
100 website/nominatim.xml
104 utils/country_languages.php
106 utils/importWikipedia.php
108 utils/server_compare.php
110 utils/specialphrases.php
115 foreach (cfile ${CUSTOMFILES})
116 configure_file(${PROJECT_SOURCE_DIR}/${cfile} ${PROJECT_BINARY_DIR}/${cfile})
119 configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php ${PROJECT_BINARY_DIR}/settings/settings.php)
121 set(WEBPATHS css images js)
123 foreach (wp ${WEBPATHS})
125 COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
130 #-----------------------------------------------------------------------------
134 #-----------------------------------------------------------------------------
138 set(TEST_BDD db osm2pgsql api)
140 foreach (test ${TEST_BDD})
141 add_test(NAME bdd_${test}
142 COMMAND lettuce features/${test}
143 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
144 set_tests_properties(bdd_${test}
145 PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
150 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
152 #-----------------------------------------------------------------------------
154 add_subdirectory(module)
155 add_subdirectory(nominatim)
156 add_subdirectory(docs)
158 #-----------------------------------------------------------------------------