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 4)
 
  23 set(NOMINATIM_VERSION_PATCH 0)
 
  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)
 
  38 set(ONLY_DOCS off CACHE BOOL "Build documentation only")
 
  41     if (NOT EXISTS "${CMAKE_SOURCE_DIR}/osm2pgsql/CMakeLists.txt")
 
  42         message(FATAL_ERROR "The osm2pgsql directory is empty.\
 
  43         Did you forget to check out Nominatim recursively?\
 
  44         \nTry updating submodules with: git submodule update --init")
 
  46     add_subdirectory(osm2pgsql)
 
  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_package(PythonInterp 3)
 
  56     find_program(PYOSMIUM pyosmium-get-changes)
 
  57     if (NOT EXISTS "${PYOSMIUM}")
 
  59             message(WARNING "pyosmium-get-changes not found (required for updates)")
 
  61         set(PYOSMIUM_PATH "${PYOSMIUM}")
 
  62         message(STATUS "Using pyosmium-get-changes at ${PYOSMIUM_PATH}")
 
  66     find_program(PG_CONFIG pg_config)
 
  67     execute_process(COMMAND ${PG_CONFIG} --pgxs
 
  69                     OUTPUT_STRIP_TRAILING_WHITESPACE)
 
  71     if (NOT EXISTS "${PGXS}")
 
  72         message(FATAL_ERROR "Postgresql server package not found.")
 
  75     # Setting PHP binary variable as to command line (prevailing) or auto detect
 
  77          find_program (PHP_BIN php)
 
  79     # sanity check if PHP binary exists
 
  80     if (NOT EXISTS ${PHP_BIN})
 
  81         message(FATAL_ERROR "PHP binary not found. Install php or provide location with -DPHP_BIN=/path/php ")
 
  83     message (STATUS "Using PHP binary " ${PHP_BIN})
 
  86 #-----------------------------------------------------------------------------
 
  88 # Setup settings and paths
 
  90 #-----------------------------------------------------------------------------
 
 104     utils/check_import_finished.php
 
 105     utils/country_languages.php
 
 109     utils/specialphrases.php
 
 114 foreach (script_source ${CUSTOMSCRIPTS})
 
 115     configure_file(${PROJECT_SOURCE_DIR}/cmake/script.tmpl
 
 116                    ${PROJECT_BINARY_DIR}/${script_source})
 
 119 foreach (script_source ${WEBSITESCRIPTS})
 
 120     configure_file(${PROJECT_SOURCE_DIR}/cmake/website.tmpl
 
 121                    ${PROJECT_BINARY_DIR}/${script_source})
 
 124 configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php
 
 125                ${PROJECT_BINARY_DIR}/settings/settings.php)
 
 127 set(WEBPATHS css images js)
 
 129 foreach (wp ${WEBPATHS})
 
 131         COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
 
 136 #-----------------------------------------------------------------------------
 
 140 #-----------------------------------------------------------------------------
 
 145     set(TEST_BDD db osm2pgsql api)
 
 147     foreach (test ${TEST_BDD})
 
 148         add_test(NAME bdd_${test}
 
 149                  COMMAND lettuce features/${test}
 
 150                  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
 
 151         set_tests_properties(bdd_${test}
 
 152             PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
 
 157              WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
 
 160 #-----------------------------------------------------------------------------
 
 163     add_subdirectory(module)
 
 165 add_subdirectory(docs)
 
 167 #-----------------------------------------------------------------------------