From b6bd11f29292e42898b908f4ea1d61c3c473e551 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 9 Feb 2021 21:04:42 +0100 Subject: [PATCH] add make install target Installation includes PHP andPython libraries, settings, the basic country data, the postgresql module and our custom version of osm2pgsql. The latter is installed in our private library directory so that it does not get in the way of a potentially installed osm2pgsql from the distribution. --- CMakeLists.txt | 42 +++++++++++++++++++++++++++++++++++++++ cmake/tool-installed.tmpl | 17 ++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 cmake/tool-installed.tmpl diff --git a/CMakeLists.txt b/CMakeLists.txt index f7d396d0..6626d249 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,3 +197,45 @@ endif() if (BUILD_DOCS) add_subdirectory(docs) endif() + +#----------------------------------------------------------------------------- +# Installation +#----------------------------------------------------------------------------- + + +include(GNUInstallDirs) +set(NOMINATIM_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}) +set(NOMINATIM_LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROJECT_NAME}) +set(NOMINATIM_CONFIGDIR ${CMAKE_INSTALL_FULL_SYSCONFDIR}/${PROJECT_NAME}) + +configure_file(${PROJECT_SOURCE_DIR}/cmake/tool-installed.tmpl installed.bin) +install(PROGRAMS ${PROJECT_BINARY_DIR}/installed.bin + DESTINATION ${CMAKE_INSTALL_BINDIR} + RENAME nominatim) + +install(TARGETS osm2pgsql RUNTIME DESTINATION ${NOMINATIM_LIBDIR}) +install(PROGRAMS ${PROJECT_BINARY_DIR}/module/nominatim.so + DESTINATION ${NOMINATIM_LIBDIR}/module) +install(DIRECTORY lib-sql DESTINATION ${NOMINATIM_LIBDIR}) +install(DIRECTORY lib-php DESTINATION ${NOMINATIM_LIBDIR}) +install(DIRECTORY nominatim + DESTINATION ${NOMINATIM_LIBDIR}/lib-python + FILES_MATCHING PATTERN "*.py" + PATTERN __pycache__ EXCLUDE) + +install(FILES data/country_name.sql + data/country_osm_grid.sql.gz + data/words.sql + DESTINATION ${NOMINATIM_DATADIR}) + +install(FILES settings/env.defaults + settings/address-levels.json + settings/phrase_settings.php + settings/import-admin.style + settings/import-street.style + settings/import-address.style + settings/import-full.style + settings/import-extratags.style + DESTINATION ${NOMINATIM_CONFIGDIR}) + +install(CODE "MESSAGE(\"Sample install ${NOMINATIM_DATADIR} message.\")") diff --git a/cmake/tool-installed.tmpl b/cmake/tool-installed.tmpl new file mode 100644 index 00000000..0b245dbb --- /dev/null +++ b/cmake/tool-installed.tmpl @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +import sys +import os + +sys.path.insert(1, '@NOMINATIM_LIBDIR@/lib-python') + +os.environ['NOMINATIM_NOMINATIM_TOOL'] = os.path.abspath(__file__) + +from nominatim import cli + +exit(cli.nominatim(module_dir='@NOMINATIM_LIBDIR@/module', + osm2pgsql_path='@NOMINATIM_LIBDIR@/osm2pgsql', + phplib_dir='@NOMINATIM_LIBDIR@/lib-php', + sqllib_dir='@NOMINATIM_LIBDIR@/lib-sql', + data_dir='@NOMINATIM_DATADIR@', + config_dir='@NOMINATIM_CONFIGDIR@', + phpcgi_path='@PHPCGI_BIN@')) -- 2.45.1