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 3)
 
  22 set(NOMINATIM_VERSION_MINOR 0)
 
  23 set(NOMINATIM_VERSION_PATCH 1)
 
  25 set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}.${NOMINATIM_VERSION_PATCH}")
 
  27 add_definitions(-DNOMINATIM_VERSION="${NOMINATIM_VERSION}")
 
  30 #-----------------------------------------------------------------------------
 
  32 #  Find external dependencies
 
  34 #-----------------------------------------------------------------------------
 
  36 set(BUILD_TESTS off CACHE BOOL "Build test suite" FORCE)
 
  37 set(WITH_LUA off CACHE BOOL "Build with lua support" FORCE)
 
  39 if (NOT EXISTS "${CMAKE_SOURCE_DIR}/osm2pgsql/CMakeLists.txt")
 
  40     message(FATAL_ERROR "The osm2pgsql directory is empty.\
 
  41     Did you forget to check out Nominatim recursively?\
 
  42     \nTry updating submodules with: git submodule update --init")
 
  44 add_subdirectory(osm2pgsql)
 
  46 find_package(Threads REQUIRED)
 
  48 unset(PostgreSQL_TYPE_INCLUDE_DIR CACHE)
 
  49 set(PostgreSQL_TYPE_INCLUDE_DIR "/usr/include/")
 
  50 find_package(PostgreSQL REQUIRED)
 
  51 include_directories(${PostgreSQL_INCLUDE_DIRS})
 
  52 link_directories(${PostgreSQL_LIBRARY_DIRS})
 
  54 find_program(PYOSMIUM pyosmium-get-changes)
 
  55 if (NOT EXISTS "${PYOSMIUM}")
 
  56     set(PYOSMIUM_PATH "/nonexistent")
 
  57         message(WARNING "pyosmium-get-changes not found (required for updates)")
 
  59     set(PYOSMIUM_PATH "${PYOSMIUM}")
 
  60     message(STATUS "Using pyosmium-get-changes at ${PYOSMIUM_PATH}")
 
  64 find_program(PG_CONFIG pg_config)
 
  65 execute_process(COMMAND ${PG_CONFIG} --pgxs
 
  67                 OUTPUT_STRIP_TRAILING_WHITESPACE)
 
  69 if (NOT EXISTS "${PGXS}")
 
  70     message(FATAL_ERROR "Postgresql server package not found.")
 
  73 find_package(ZLIB REQUIRED)
 
  75 find_package(BZip2 REQUIRED)
 
  77 find_package(LibXml2 REQUIRED)
 
  78 include_directories(${LIBXML2_INCLUDE_DIR})
 
  80 #-----------------------------------------------------------------------------
 
  82 # Setup settings and paths
 
  84 #-----------------------------------------------------------------------------
 
  87     settings/phrase_settings.php
 
  97     utils/country_languages.php
 
  99     utils/importWikipedia.php
 
 101     utils/server_compare.php
 
 103     utils/specialphrases.php
 
 108 foreach (cfile ${CUSTOMFILES})
 
 109     configure_file(${PROJECT_SOURCE_DIR}/${cfile} ${PROJECT_BINARY_DIR}/${cfile})
 
 112 configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php ${PROJECT_BINARY_DIR}/settings/settings.php)
 
 114 set(WEBPATHS css images js)
 
 116 foreach (wp ${WEBPATHS})
 
 118         COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
 
 123 #-----------------------------------------------------------------------------
 
 127 #-----------------------------------------------------------------------------
 
 131 set(TEST_BDD db osm2pgsql api)
 
 133 foreach (test ${TEST_BDD})
 
 134     add_test(NAME bdd_${test}
 
 135              COMMAND lettuce features/${test}
 
 136              WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
 
 137     set_tests_properties(bdd_${test}
 
 138         PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
 
 143          WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
 
 145 #-----------------------------------------------------------------------------
 
 147 add_subdirectory(module)
 
 148 add_subdirectory(nominatim)
 
 149 add_subdirectory(docs)
 
 151 #-----------------------------------------------------------------------------