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@'))