diff --git a/.devcontainer b/.devcontainer index f0e88b2..10506f0 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit f0e88b29cf1fc02f24a6aeae49750276231c920a +Subproject commit 10506f0144c0101c83b41bd033b781cfaddeee35 diff --git a/.github/release-tag.json b/.github/release-tag.json new file mode 100644 index 0000000..1d3b36e --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 5.1.0.8 tag", + "tag": "xpv5.1.0.8" +} diff --git a/.github/release-tag.yml b/.github/release-tag.yml deleted file mode 100644 index 51dd52e..0000000 --- a/.github/release-tag.yml +++ /dev/null @@ -1,2 +0,0 @@ -tag: xpv5.1.0.7 -message: "xpro version 5.1.0.7 tag" diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index fd31fce..3a01ab5 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -14,17 +14,18 @@ jobs: contents: read pull-requests: write packages: write - uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.6 + uses: externpro/externpro/.github/workflows/build-linux.yml@26.01.2 + secrets: + automation_token: ${{ secrets.GHCR_TOKEN }} with: - cmake-workflow-preset: LinuxRelease - secrets: inherit + cmake_workflow_preset_suffix: Release macos: - uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.6 - with: - cmake-workflow-preset: DarwinRelease + uses: externpro/externpro/.github/workflows/build-macos.yml@26.01.2 secrets: inherit - windows: - uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.6 with: - cmake-workflow-preset: WindowsRelease + cmake_workflow_preset_suffix: Release + windows: + uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.2 secrets: inherit + with: + cmake_workflow_preset_suffix: Release diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml index a2eb282..0894da4 100644 --- a/.github/workflows/xprelease.yml +++ b/.github/workflows/xprelease.yml @@ -34,7 +34,7 @@ jobs: # Upload build artifacts as release assets release-from-build: if: github.event_name == 'workflow_dispatch' - uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.6 + uses: externpro/externpro/.github/workflows/release-from-build.yml@26.01.2 with: workflow_run_url: ${{ github.event.inputs.workflow_run_url }} permissions: diff --git a/.github/workflows/xptag.yml b/.github/workflows/xptag.yml index b5ce950..17ce102 100644 --- a/.github/workflows/xptag.yml +++ b/.github/workflows/xptag.yml @@ -8,9 +8,9 @@ on: jobs: tag: if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }} - uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.6 + uses: externpro/externpro/.github/workflows/tag-release.yml@26.01.2 with: merge_sha: ${{ github.event.pull_request.merge_commit_sha }} pr_number: ${{ github.event.pull_request.number }} secrets: - workflow_write_token: ${{ secrets.XPUPDATE_TOKEN }} + automation_token: ${{ secrets.XPRO_TOKEN }} diff --git a/.gitignore b/.gitignore index 1fc17fa..4645865 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .env _bld*/ docker-compose.override.yml +# externpro diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cd6078..22364f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,4 @@ -cmake_minimum_required(VERSION 3.31) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) +cmake_minimum_required(VERSION 4.3) project(spatialite-tools VERSION 5.1.0) set(xVer a) # letter after CMAKE_PROJECT_VERSION, for example 5.1.0a option(BUILD_AUTOMAKE "build with automake" OFF) @@ -14,22 +13,13 @@ if(BUILD_AUTOMAKE) /configure --prefix= --disable-readosm ) else() - set(targetsFile ${CMAKE_PROJECT_NAME}-targets) - if(DEFINED XP_NAMESPACE) - xpExternPackage(TARGETS_FILE ${targetsFile} - BASE ${CMAKE_PROJECT_VERSION}${xVer} XPDIFF "auto" PVT_DEPS libspatialite - WEB "https://www.gaia-gis.it/fossil/spatialite-tools/index" - DESC "collection of open source Command Line Interface (CLI) tools supporting SpatiaLite" - LICENSE "[GPL-3.0-or-later](https://www.gaia-gis.it/fossil/spatialite-tools/index 'GNU General Public License v3 or later')" - ) - set(nameSpace NAMESPACE ${XP_NAMESPACE}::) - elseif(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) - set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) - endif() xpFindPkg(PKGS libiconv libspatialite) + set(libiconvTarget libiconv::libiconv) + set(libspatialiteTarget libspatialite::libspatialite) + set(sqliteTarget SQLite3::SQLite3) include(cmake/configure.cmake) set(spatialite_srcs shell.c) - set(spatialite_deps xpro::libiconv) + set(spatialite_deps ${libiconvTarget}) set(exes spatialite # a complete CLI front-end, more or less equivalent to the well known sqlite3 front-end, but fully supporting SpatiaLite spatialite_tool # a tool supporting import/export of Shapefiles and DBF-files @@ -59,16 +49,27 @@ else() spatialite_dem ) ######################################## + set(targetsFile ${CMAKE_PROJECT_NAME}-targets) foreach(exe ${exes}) if(DEFINED ${exe}_srcs) add_executable(${exe} ${${exe}_srcs}) else() add_executable(${exe} ${exe}.c) endif() - target_link_libraries(${exe} PRIVATE xpro::libspatialite ${${exe}_deps}) + target_link_libraries(${exe} PRIVATE ${libspatialiteTarget} ${${exe}_deps}) target_include_directories(${exe} PRIVATE ${CMAKE_BINARY_DIR}/cmake) target_compile_definitions(${exe} PRIVATE SQLITE_OMIT_TRACE) # TODO install(TARGETS ${exe} EXPORT ${targetsFile} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} CONFIGURATIONS Release) endforeach() - install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ${nameSpace}) + if(COMMAND xpExternPackage) + xpExternPackage(TARGETS_FILE ${targetsFile} EXE spatialite FIND_XPRO_CMAKE + BASE ${CMAKE_PROJECT_VERSION}${xVer} XPDIFF "auto" + WEB "https://www.gaia-gis.it/fossil/spatialite-tools/index" + DESC "collection of open source Command Line Interface (CLI) tools supporting SpatiaLite" + LICENSE "[GPL-3.0-or-later](https://www.gaia-gis.it/fossil/spatialite-tools/index 'GNU General Public License v3 or later')" + ) + elseif(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) + set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) + endif() + install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE ${CMAKE_PROJECT_NAME}::) endif() diff --git a/CMakePresets.json b/CMakePresets.json index f82cfdd..28efa39 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -3,6 +3,7 @@ "include": [ ".devcontainer/cmake/presets/xpLinuxNinja.json", ".devcontainer/cmake/presets/xpDarwinNinja.json", - ".devcontainer/cmake/presets/xpWindowsVs2022.json" + ".devcontainer/cmake/presets/xpMswVs2022.json", + ".devcontainer/cmake/presets/xpMswVs2026.json" ] } diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index 4489d79..c54ade9 100644 --- a/CMakePresetsBase.json +++ b/CMakePresetsBase.json @@ -6,7 +6,7 @@ "hidden": true, "binaryDir": "${sourceDir}/_bld-${presetName}", "cacheVariables": { - "XP_NAMESPACE": "xpro" + "CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0" } } ], diff --git a/cmake/configure.cmake b/cmake/configure.cmake index d987340..b16c48d 100644 --- a/cmake/configure.cmake +++ b/cmake/configure.cmake @@ -1,5 +1,4 @@ include(xpcfg) -set(sqliteTarget xpro::SQLite3) if(TARGET ${sqliteTarget}) get_target_property(sqliteIncludes ${sqliteTarget} INTERFACE_INCLUDE_DIRECTORIES) endif() diff --git a/xprodeps.md b/xprodeps.md index 276665a..235205d 100644 --- a/xprodeps.md +++ b/xprodeps.md @@ -2,16 +2,16 @@ |project|license [^_l]|description [dependencies]|version|source|diff [^_d]| |-------|-------------|--------------------------|-------|------|----------| -|[spatialite-tools](https://www.gaia-gis.it/fossil/spatialite-tools/index)|[GPL-3.0](https://www.gaia-gis.it/fossil/spatialite-tools/index 'GPL-3.0-or-later')|collection of open source Command Line Interface (CLI) tools supporting SpatiaLite [pvt deps: _libspatialite_]| | | [auto]| -|[libspatialite](https://www.gaia-gis.it/fossil/libspatialite/home)|[MPL-1.1](https://www.gaia-gis.it/fossil/libspatialite/home 'MPL tri-license: choose MPL-1.1, GPL-2.0-or-later, LGPL-2.1-or-later')|extends capabilities of SQLite, enabling it to handle spatial data and perform spatial queries [deps: _geos, libiconv, sqlite3, zlib_]|[xpv5.1.0.8](https://github.com/externpro/libspatialite/releases/tag/xpv5.1.0.8 'release')|[repo](https://github.com/externpro/libspatialite 'github.com/externpro/libspatialite')|[diff](https://github.com/externpro/libspatialite/compare/5.1.0...xpv5.1.0.8 'github.com/externpro/libspatialite/compare/5.1.0...xpv5.1.0.8') [auto]| -|[geos](https://libgeos.org)|[LPGL-2.1](https://trac.osgeo.org/geos/ 'LGPL version 2.1')|C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software|[xpv3.13.0.6](https://github.com/externpro/geos/releases/tag/xpv3.13.0.6 'release')|[repo](https://github.com/externpro/geos 'github.com/externpro/geos') [upstream](https://github.com/libgeos/geos 'github.com/libgeos/geos')|[diff](https://github.com/externpro/geos/compare/3.13.0...xpv3.13.0.6 'github.com/externpro/geos/compare/3.13.0...xpv3.13.0.6') [patch]| -|[libiconv](https://www.gnu.org/software/libiconv/)|[LGPL-2.1](https://savannah.gnu.org/projects/libiconv/ 'LGPL version 2.1')|character set conversion library|[xpv1.18.8](https://github.com/externpro/libiconv/releases/tag/xpv1.18.8 'release')|[repo](https://github.com/externpro/libiconv 'github.com/externpro/libiconv') [upstream](https://github.com/pffang/libiconv-for-Windows/releases/tag/1.18-eed6782 'github.com/pffang/libiconv-for-Windows/releases/tag/1.18-eed6782')|[diff](https://github.com/externpro/libiconv/compare/v0...xpv1.18.8 'github.com/externpro/libiconv/compare/v0...xpv1.18.8') [bin]| -|[sqlite3](https://www.sqlite.org/index.html 'SQLite website')|[public domain](https://www.sqlite.org/copyright.html 'open-source, not open-contribution')|C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine|[xpv3.38.2.3](https://github.com/externpro/SQLite3/releases/tag/xpv3.38.2.3 'release')|[repo](https://github.com/externpro/SQLite3 'github.com/externpro/SQLite3') [upstream](https://github.com/azadkuh/sqlite-amalgamation 'github.com/azadkuh/sqlite-amalgamation')|[diff](https://github.com/externpro/SQLite3/compare/3.38.2...xpv3.38.2.3 'github.com/externpro/SQLite3/compare/3.38.2...xpv3.38.2.3') [patch]| -|[zlib](https://zlib.net 'zlib website')|[permissive](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|compression library|[xpv1.3.1.4](https://github.com/externpro/zlib/releases/tag/xpv1.3.1.4 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4 'github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4') [patch]| +|[spatialite-tools](https://www.gaia-gis.it/fossil/spatialite-tools/index)|[GPL-3.0-or-later](https://www.gaia-gis.it/fossil/spatialite-tools/index 'GNU General Public License v3 or later')|collection of open source Command Line Interface (CLI) tools supporting SpatiaLite [pvt deps: _libspatialite, libiconv_]| | | [auto]| +|[libspatialite](https://www.gaia-gis.it/fossil/libspatialite/home)|[MPL-1.1](https://www.gaia-gis.it/fossil/libspatialite/home 'MPL tri-license: choose MPL-1.1, GPL-2.0-or-later, LGPL-2.1-or-later')|extends capabilities of SQLite, enabling it to handle spatial data and perform spatial queries [deps: _SQLite3, geos, libiconv, zlib_]|[xpv5.1.0.9](https://github.com/externpro/libspatialite/releases/tag/xpv5.1.0.9 'release')|[repo](https://github.com/externpro/libspatialite 'github.com/externpro/libspatialite')|[diff](https://github.com/externpro/libspatialite/compare/5.1.0...xpv5.1.0.9 'github.com/externpro/libspatialite/compare/5.1.0...xpv5.1.0.9') [auto]| +|[libiconv](https://www.gnu.org/software/libiconv/)|[LGPL-2.1-or-later](https://savannah.gnu.org/projects/libiconv/ 'GNU Lesser General Public License v2.1 or later')|character set conversion library|[xpv1.18.9](https://github.com/externpro/libiconv/releases/tag/xpv1.18.9 'release')|[repo](https://github.com/externpro/libiconv 'github.com/externpro/libiconv') [upstream](https://github.com/pffang/libiconv-for-Windows/releases/tag/1.18-eed6782 'github.com/pffang/libiconv-for-Windows/releases/tag/1.18-eed6782')|[diff](https://github.com/externpro/libiconv/compare/v0...xpv1.18.9 'github.com/externpro/libiconv/compare/v0...xpv1.18.9') [bin]| +|[SQLite3](https://www.sqlite.org/index.html 'SQLite website')|[SQLite](https://www.sqlite.org/copyright.html 'public domain dedication - no license required')|C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine|[xpv3.38.2.4](https://github.com/externpro/SQLite3/releases/tag/xpv3.38.2.4 'release')|[repo](https://github.com/externpro/SQLite3 'github.com/externpro/SQLite3') [upstream](https://github.com/azadkuh/sqlite-amalgamation 'github.com/azadkuh/sqlite-amalgamation')|[diff](https://github.com/externpro/SQLite3/compare/3.38.2...xpv3.38.2.4 'github.com/externpro/SQLite3/compare/3.38.2...xpv3.38.2.4') [patch]| +|[geos](https://libgeos.org)|[LGPL-2.1-only](https://trac.osgeo.org/geos/ 'LGPL version 2.1')|C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software|[xpv3.14.1.1](https://github.com/externpro/geos/releases/tag/xpv3.14.1.1 'release')|[repo](https://github.com/externpro/geos 'github.com/externpro/geos') [upstream](https://github.com/libgeos/geos 'github.com/libgeos/geos')|[diff](https://github.com/externpro/geos/compare/3.14.1...xpv3.14.1.1 'github.com/externpro/geos/compare/3.14.1...xpv3.14.1.1') [patch]| +|[zlib](https://zlib.net/ 'zlib website')|[Zlib](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|a general-purpose lossless data-compression library|[xpv1.3.2.1](https://github.com/externpro/zlib/releases/tag/xpv1.3.2.1 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1 'github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1') [patch]| ![deps](xprodeps.svg 'dependencies') -Dependency version check: all 5 parent-manifest versions match pinned versions. +Dependency version check: all 6 parent-manifest versions match pinned versions. |diff |description| |------|-----------| diff --git a/xprodeps.svg b/xprodeps.svg index 490c314..b5cbedd 100644 --- a/xprodeps.svg +++ b/xprodeps.svg @@ -4,75 +4,81 @@ - + GG spatialite-tools - -spatialite-tools + +spatialite-tools libspatialite - -libspatialite + +libspatialite spatialite-tools->libspatialite - - + + - + -geos - -geos +libiconv + +libiconv - + -libspatialite->geos - - +spatialite-tools->libiconv + + - + + +libspatialite->libiconv + + + + -libiconv - -libiconv +SQLite3 + +SQLite3 - + -libspatialite->libiconv - - +libspatialite->SQLite3 + + - + -sqlite3 - -sqlite3 +geos + +geos - + -libspatialite->sqlite3 - - +libspatialite->geos + + zlib - -zlib + +zlib - + libspatialite->zlib - - + +