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
11 changes: 8 additions & 3 deletions .github/workflows/build.yml → .github/workflows/xpbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,24 @@ on:
workflow_dispatch:
jobs:
linux:
uses: externpro/externpro/.github/workflows/build-linux.yml@25.04
uses: externpro/externpro/.github/workflows/build-linux.yml@25.05.1
with:
cmake-workflow-preset: Linux
runon: ubuntu-latest
secrets: inherit
linux-arm64:
uses: externpro/externpro/.github/workflows/build-linux.yml@25.04
uses: externpro/externpro/.github/workflows/build-linux.yml@25.05.1
with:
cmake-workflow-preset: Linux
runon: ubuntu-24.04-arm
secrets: inherit
macos:
uses: externpro/externpro/.github/workflows/build-macos.yml@25.05.1
with:
cmake-workflow-preset: Darwin
secrets: inherit
windows:
uses: externpro/externpro/.github/workflows/build-windows.yml@25.04
uses: externpro/externpro/.github/workflows/build-windows.yml@25.05.1
with:
cmake-workflow-preset: Windows
secrets: inherit
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ on:
jobs:
# Upload build artifacts as release assets
release-from-build:
uses: externpro/externpro/.github/workflows/release-from-build.yml@25.04
uses: externpro/externpro/.github/workflows/release-from-build.yml@25.05.1
with:
workflow_run_url: ${{ github.event.inputs.workflow_run_url }}
artifact_pattern: "*.tar.xz"
permissions:
contents: write
id-token: write
attestations: write
secrets: inherit
22 changes: 11 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
cmake_minimum_required(VERSION 3.31)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/.devcontainer/cmake ${CMAKE_CURRENT_LIST_DIR}/cmake)
include(preproject)
project(libspatialite VERSION 5.1.0.4)
include(flags)
set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake)
project(libspatialite VERSION 5.1.0)
include(xpflags)
include(GNUInstallDirs)
if(TRUE)
xpFindPkg(PKGS geos libiconv sqlite3 zlib)
include(configure)
add_subdirectory(src)
add_subdirectory(examples)
add_subdirectory(spatialite)
else()
option(BUILD_AUTOMAKE "build with automake" OFF)
if(BUILD_AUTOMAKE)
include(ExternalProject)
set_property(DIRECTORY PROPERTY "EP_BASE" ${CMAKE_BINARY_DIR}/epbase)
ExternalProject_Add(${PROJECT_NAME}
Expand All @@ -19,4 +13,10 @@ else()
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-shared
--disable-proj --disable-freexl --disable-geos3100 --disable-libxml2 --disable-minizip --disable-rttopo --disable-gcp
)
else()
xpFindPkg(PKGS geos libiconv sqlite3 zlib)
include(cmake/configure.cmake)
add_subdirectory(src)
add_subdirectory(examples)
add_subdirectory(spatialite)
endif()
1 change: 1 addition & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"version": 8,
"include": [
".devcontainer/cmake/presets/xpLinuxNinja.json",
".devcontainer/cmake/presets/xpDarwinNinja.json",
".devcontainer/cmake/presets/xpWindowsVs2022.json"
]
}
200 changes: 0 additions & 200 deletions cmake/config.h.cmake.in

This file was deleted.

73 changes: 43 additions & 30 deletions cmake/configure.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -61,51 +61,69 @@ xpcfgLstatFollowsSlashedSymlink(LSTAT_FOLLOWS_SLASHED_SYMLINK)
xpcfgStdcHeaders(STDC_HEADERS)
xpcfgTimeWithSysTime(TIME_WITH_SYS_TIME)
xpcfgTmInHdr(sys/time.h TM_IN_SYS_TIME)
# cmakedefine entries in config.h.cmake.in
xpcfgLtObjdir(LT_OBJDIR)
set(NDEBUG 1) # Must be defined in order to disable debug mode.
set(PACKAGE_BUGREPORT a.furieri@lqt.it)
set(PACKAGE_NAME ${CMAKE_PROJECT_NAME})
set(PACKAGE_STRING "${CMAKE_PROJECT_NAME} ${CMAKE_PROJECT_VERSION}")
set(PACKAGE_TARNAME ${CMAKE_PROJECT_NAME})
set(PACKAGE_URL https://www.gaia-gis.it/fossil/libspatialite/home)
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
set(PACKAGE_BUGREPORT "\"a.furieri@lqt.it\"")
set(PACKAGE_NAME "\"${CMAKE_PROJECT_NAME}\"")
set(PACKAGE_STRING "\"${CMAKE_PROJECT_NAME} ${CMAKE_PROJECT_VERSION}\"")
set(PACKAGE_TARNAME "\"${CMAKE_PROJECT_NAME}\"")
set(PACKAGE_URL "\"https://www.gaia-gis.it/fossil/libspatialite/home\"")
set(PACKAGE_VERSION "\"${CMAKE_PROJECT_VERSION}\"")
xpcfgHugeFileSupport()
xpcfgConst()
xpcfgConst(const)
xpcfgCheckTypeSize()
if(NOT HAVE_SIZEOF_OFF_T)
set(off_t "long int") # Define to `long int' if <sys/types.h> does not define. */
else()
set(off_t 0) # cmakedefine
endif()
if(NOT HAVE_SIZEOF_SIZE_T)
set(size_t "unsigned int") # Define to `unsigned int' if <sys/types.h> does not define.
else()
set(size_t 0) # cmakedefine
endif()
xpcfgVolatile(volatile)
cmake_pop_check_state()
if(WIN32)
set(msvc -msvc)
endif()
set(CONFIG_H_COMMENT "{CMAKE_BINARY_DIR}/cmake/config${msvc}.h. Generated from cmake/config.h.cmake.in by cmake/configure.cmake.")
configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h.cmake.in ${CMAKE_BINARY_DIR}/CMakeFiles/config.h.cmake)
configure_file(${CMAKE_BINARY_DIR}/CMakeFiles/config.h.cmake ${CMAKE_BINARY_DIR}/cmake/config${msvc}.h)
xpcfgDotinFile("config.h.in" "cmake/config${msvc}.h")
file(READ "${CMAKE_BINARY_DIR}/cmake/config${msvc}.h" configContent)
string(REPLACE "./src/headers/spatialite/gaiaconfig.h" "spatialite/gaiaconfig${msvc}.h" configContent "${configContent}")
file(WRITE "${CMAKE_BINARY_DIR}/cmake/config${msvc}.h" "${configContent}")
########################################
set(ENABLE_GCP FALSE) # --enable-gcp : enables Control Points (from Grass GIS)
set(ENABLE_GEOPACKAGE TRUE) # --enable-geopackage : enables GeoPackage support
set(ENABLE_LIBXML2 FALSE) # --enable-libxml2 : enables libxml2 inclusion # TODO find package
set(ENABLE_MINIZIP FALSE) # --enable-minizip : enables MiniZIP inclusion # TODO find package
set(ENABLE_RTTOPO ${HAVE_LIBRTTOPO_H}) # --enable-rttopo : enables RTTOPO support
set(GEOS_370 ${HAVE_GEOS_C_H}) # --enable-geos370 : enables GEOS 3.7.0 features
set(GEOS_3100 ${HAVE_GEOS_C_H}) # --enable-geos3100 : enables GEOS 3.10.0 features
set(GEOS_3110 ${HAVE_GEOS_C_H}) # --enable-geos3110 # enables GEOS 3.11.0 features
set(GEOS_ADVANCED ${HAVE_GEOS_C_H}) # enable geosadvanced, libgeos_c >= v.3.4.0
set(GEOS_ONLY_REENTRANT FALSE) # --with-geosonlyreentrant
set(GEOS_REENTRANT ${HAVE_GEOS_C_H}) # --enable-geosreentrant : enables GEOS reentrant (fully thread safe)
set(OMIT_EPSG FALSE) # --enable-epsg : enables full EPSG dataset support
set(OMIT_FREEXL TRUE) # --enable-freexml : enables FreeXL inclusion
set(OMIT_GEOCALLBACKS FALSE) # TODO search
if(HAVE_MINIZIP_UNZIP_H)
set(ENABLE_MINIZIP TRUE) # --enable-minizip : enables MiniZIP inclusion
else()
set(ENABLE_MINIZIP FALSE)
endif()
if(HAVE_LIBRTTOPO_H)
set(ENABLE_RTTOPO TRUE) # --enable-rttopo : enables RTTOPO support
else()
set(ENABLE_RTTOPO FALSE)
endif()
if(HAVE_GEOS_C_H)
set(GEOS_370 TRUE) # --enable-geos370 : enables GEOS 3.7.0 features
set(GEOS_3100 TRUE) # --enable-geos3100 : enables GEOS 3.10.0 features
set(GEOS_3110 TRUE) # --enable-geos3110 # enables GEOS 3.11.0 features
set(GEOS_ADVANCED TRUE) # enable geosadvanced, libgeos_c >= v.3.4.0
set(GEOS_REENTRANT TRUE) # --enable-geosreentrant : enables GEOS reentrant (fully thread safe)
set(OMIT_GEOS FALSE) # --enable-geos : enables GEOS inclusion
else()
set(GEOS_370 FALSE)
set(GEOS_3100 FALSE)
set(GEOS_3110 FALSE)
set(GEOS_ADVANCED FALSE)
set(GEOS_REENTRANT FALSE)
set(OMIT_GEOS TRUE)
endif()
set(GEOS_ONLY_REENTRANT FALSE) # --with-geosonlyreentrant
set(OMIT_EPSG FALSE) # --enable-epsg : enables full EPSG dataset support
set(OMIT_FREEXL TRUE) # --enable-freexml : enables FreeXL inclusion
set(OMIT_GEOCALLBACKS FALSE) # TODO search
if(HAVE_ICONV_H)
set(OMIT_ICONV FALSE) # --enable-iconv : enables ICONV inclusion
else()
Expand All @@ -115,12 +133,7 @@ set(OMIT_KNN FALSE) # TODO search
set(OMIT_MATHSQL FALSE) # --enable-mathsql : enables SQL math functions
set(OMIT_PROJ TRUE) # --enable-proj : enables PROJ.4 inclusion
set(PROJ_NEW FALSE) # associated with --enable-proj
xpcfgSetDefineList(ENABLE_GCP ENABLE_GEOPACKAGE ENABLE_LIBXML2 ENABLE_MINIZIP ENABLE_RTTOPO
GEOS_370 GEOS_3100 GEOS_3110 GEOS_ADVANCED GEOS_ONLY_REENTRANT GEOS_REENTRANT
OMIT_EPSG OMIT_FREEXL OMIT_GEOCALLBACKS OMIT_GEOS OMIT_ICONV OMIT_KNN OMIT_MATHSQL OMIT_PROJ PROJ_NEW
)
xpcfgTargetCpu(SPATIALITE_TARGET_CPU)
set(SPATIALITE_VERSION ${CMAKE_PROJECT_VERSION})
set(GAIACONFIG_H_COMMENT "{CMAKE_BINARY_DIR}/cmake/gaiaconfig${msvc}.h. Generated from cmake/gaiaconfig.h.cmake.in by cmake/configure.cmake.")
configure_file(${CMAKE_CURRENT_LIST_DIR}/gaiaconfig.h.cmake.in ${CMAKE_BINARY_DIR}/CMakeFiles/gaiaconfig.h.cmake)
configure_file(${CMAKE_BINARY_DIR}/CMakeFiles/gaiaconfig.h.cmake ${CMAKE_BINARY_DIR}/cmake/spatialite/gaiaconfig${msvc}.h)
set(SPATIALITE_TARGET_CPU "\"${SPATIALITE_TARGET_CPU}\"")
set(SPATIALITE_VERSION "\"${CMAKE_PROJECT_VERSION}\"")
xpcfgDotinFile("src/headers/spatialite/gaiaconfig.h.in" "cmake/spatialite/gaiaconfig${msvc}.h")
Loading