Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer
Submodule .devcontainer updated 85 files
+65 −0 .github/actions/build-image-context-tag/action.yml
+74 −29 .github/actions/cmake-build/action.yml
+32 −0 .github/actions/compare-cmake-presets/action.yml
+201 −0 .github/actions/compare-cmake-presets/compare.py
+51 −0 .github/actions/docker-push-with-retry/action.yml
+358 −0 .github/actions/externpro-deps-configure/action.yml
+48 −0 .github/actions/externpro-validate/action.yml
+29 −0 .github/actions/gh-retry/gh-retry.sh
+79 −0 .github/actions/ghcr-access/action.yml
+44 −0 .github/actions/git-am-patches/action.yml
+19 −0 .github/actions/git-configure-bot/action.yml
+41 −0 .github/actions/labels-mgmt/action.yml
+91 −0 .github/actions/pr-close-superseded/action.yml
+116 −0 .github/actions/release-tag-intent/action.yml
+0 −8 .github/actions/sync-caller-workflows/action.yml
+241 −508 .github/actions/sync-caller-workflows/sync.sh
+79 −0 .github/docs/README.md
+34 −0 .github/docs/architecture-overview.md
+ .github/docs/assets/org_01_actions-secrets.png
+ .github/docs/assets/org_02_new-secret.png
+ .github/docs/assets/org_03_secrets-populated.png
+ .github/docs/assets/pat_01_new.png
+ .github/docs/assets/pat_02_permissions.png
+ .github/docs/assets/pat_03_generate-token.png
+ .github/docs/assets/pat_04_copy-token.png
+ .github/docs/assets/repo_01_actions-secrets.png
+ .github/docs/assets/repo_02_new-secret.png
+ .github/docs/assets/repo_03_secrets-populated.png
+130 −0 .github/docs/bootstrap.md
+91 −0 .github/docs/build-customizations.md
+111 −0 .github/docs/caller-workflows.md
+50 −0 .github/docs/release-flow.md
+91 −0 .github/docs/reusable-workflows.md
+183 −0 .github/docs/secrets-and-tokens.md
+42 −0 .github/docs/supply-chain.md
+0 −2 .github/release-tag.yml.example
+8 −4 .github/wf-templates/xpbuild.yml
+1 −1 .github/wf-templates/xprelease.yml
+13 −0 .github/wf-templates/xpsync.yml
+2 −2 .github/wf-templates/xptag.yml
+0 −12 .github/wf-templates/xpupdate.yml
+7 −288 .github/workflows/README.md
+146 −39 .github/workflows/build-linux.yml
+8 −9 .github/workflows/build-macos.yml
+24 −10 .github/workflows/build-windows.yml
+353 −0 .github/workflows/init-externpro.yml
+105 −28 .github/workflows/release-from-build.yml
+522 −0 .github/workflows/sync-externpro.yml
+15 −25 .github/workflows/tag-release.yml
+151 −429 .github/workflows/update-externpro.yml
+0 −288 .windsurf/workflows/manifestUpdate.md
+153 −46 README.md
+54 −55 cmake/README.md
+373 −295 cmake/deps.svg
+35 −0 cmake/docs/README.md
+70 −0 cmake/docs/classified-sources.md
+64 −0 cmake/docs/cmakeup.md
+54 −0 cmake/docs/dependency-provider.md
+40 −0 cmake/docs/diff-types.md
+115 −0 cmake/docs/download-and-extract.md
+127 −0 cmake/docs/extern-package.md
+125 −0 cmake/docs/how-to-adopt-externpro.md
+64 −0 cmake/docs/packaging.md
+2 −1 cmake/presets/CMakePresets.json
+4 −1 cmake/presets/xpDarwinNinja.json
+4 −1 cmake/presets/xpLinuxNinja.json
+4 −1 cmake/presets/xpLinuxNinjaTargets.json
+183 −0 cmake/presets/xpMswVs2022.json
+183 −0 cmake/presets/xpMswVs2026.json
+0 −157 cmake/presets/xpWindowsVs2019.json
+0 −180 cmake/presets/xpWindowsVs2022.json
+108 −88 cmake/pros.cmake
+0 −106 cmake/pros.md
+72 −0 cmake/xpcfg.cmake
+1 −0 cmake/xpdeps.cmake.in
+827 −115 cmake/xpfunmac.cmake
+2 −4 cmake/xpuse.cmake.in
+1 −0 cmake/xpusext.cmake.in
+1 −1 funcs.sh
+890 −0 scripts/bootstrap.sh
+89 −0 scripts/cleanup-whitespace.py
+0 −0 scripts/enable-systemctl.sh
+0 −0 scripts/git-lfs-check.sh
+0 −0 scripts/wslresolv.sh
+11 −0 xpro-dev.code-workspace
4 changes: 4 additions & 0 deletions .github/release-tag.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"message": "xpro version 5.1.0.8 tag",
"tag": "xpv5.1.0.8"
}
2 changes: 0 additions & 2 deletions .github/release-tag.yml

This file was deleted.

19 changes: 10 additions & 9 deletions .github/workflows/xpbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .github/workflows/xprelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/xptag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.env
_bld*/
docker-compose.override.yml
# externpro
35 changes: 18 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -14,22 +13,13 @@ if(BUILD_AUTOMAKE)
<SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --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
Expand Down Expand Up @@ -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()
3 changes: 2 additions & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
}
2 changes: 1 addition & 1 deletion CMakePresetsBase.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"hidden": true,
"binaryDir": "${sourceDir}/_bld-${presetName}",
"cacheVariables": {
"XP_NAMESPACE": "xpro"
"CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0"
}
}
],
Expand Down
1 change: 0 additions & 1 deletion cmake/configure.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include(xpcfg)
set(sqliteTarget xpro::SQLite3)
if(TARGET ${sqliteTarget})
get_target_property(sqliteIncludes ${sqliteTarget} INTERFACE_INCLUDE_DIRECTORIES)
endif()
Expand Down
14 changes: 7 additions & 7 deletions xprodeps.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

|project|license [^_l]|description [dependencies]|version|source|diff [^_d]|
|-------|-------------|--------------------------|-------|------|----------|
|<a id='spatialite-tools' />[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]|
|<a id='libspatialite' />[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]|
|<a id='geos' />[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]|
|<a id='libiconv' />[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]|
|<a id='sqlite3' />[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]|
|<a id='zlib' />[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]|
|<a id='spatialite-tools' />[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]|
|<a id='libspatialite' />[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]|
|<a id='libiconv' />[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]|
|<a id='SQLite3' />[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]|
|<a id='geos' />[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]|
|<a id='zlib' />[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|
|------|-----------|
Expand Down
Loading