CMake improvements, and Autotools marked as deprecated.

- **Shared sources compiled once** via internal OBJECT libraries 
(position-independent, so they also link into `mod_tile.so`): a full build with 
tests drops from 104 to 37 compile steps.
- **`config.h` is generated in the build tree** instead of `includes/`, so the 
source tree stays clean and several build directories can coexist.
- `cmake_minimum_required` 3.13 → 3.15 (the build already uses `list(PREPEND)`, 
which needs 3.15).
- New options `ENABLE_WARNINGS`, `ENABLE_WERROR` and `ENABLE_SANITIZERS` (e.g. 
`address,undefined` or `thread`). With ASan, tests preload its runtime so the 
system `httpd` can load the instrumented `mod_tile.so`.
- `TILE_LOAD_DIRECTORY`/`TILE_LOAD_FILENAME` can override the `/etc/os-release` 
detection (packaging, cross builds); configure prints which optional storage 
backends were found.
- `CMakePresets.json` with `default`, `dev`, `asan` and `tsan` presets.
- **Autotools deprecated**: `configure` prints a warning pointing to CMake and 
the README says so. Its version is now read from `CMakeLists.txt`, the 
bug-report URL points at GitHub issues, and iniparser is found via pkg-config 
when available.

Independent of the other PRs in this series; it applies to `master` on its own 
and merges cleanly with each of them in any order.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01YForD7qSL9LT6FhMuAoKPV

You can view, comment on, or merge this pull request online at:

  https://github.com/openstreetmap/mod_tile/pull/511

-- Commit Summary --

  * CMake: compile shared sources once, out-of-tree config.h, dev options
  * CMake: ENABLE_WARNINGS skips GCC's -Wformat-truncation
  * Autotools: deprecate, single-source version, pkg-config iniparser
  * Make the asan/tsan presets usable for the full test suite

-- File Changes --

    M CMakeLists.txt (75)
    A CMakePresets.json (84)
    M Makefile.am (2)
    M README.rst (2)
    M configure.ac (27)
    M src/CMakeLists.txt (144)
    M tests/CMakeLists.txt (40)
    A tests/tsan.supp (8)

-- Patch Links --

https://github.com/openstreetmap/mod_tile/pull/511.patch
https://github.com/openstreetmap/mod_tile/pull/511.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/mod_tile/pull/511
You are receiving this because you are subscribed to this thread.

Message ID: <openstreetmap/mod_tile/pull/[email protected]>
_______________________________________________
Tile-serving mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/tile-serving

Reply via email to