]> git.openstreetmap.org Git - nominatim.git/commitdiff
add make install target
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 9 Feb 2021 20:04:42 +0000 (21:04 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 9 Feb 2021 20:04:42 +0000 (21:04 +0100)
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
cmake/tool-installed.tmpl [new file with mode: 0644]

index f7d396d0ebc6be503d653085268e3e152cd2d08f..6626d249be5510a9ec276cddb5453c60a59b8b37 100644 (file)
@@ -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 (file)
index 0000000..0b245db
--- /dev/null
@@ -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@'))