mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-23 02:57:09 +01:00
[libspatialite] initial port
This commit is contained in:
parent
e25a31eca8
commit
587186430d
5
ports/libspatialite/CONTROL
Normal file
5
ports/libspatialite/CONTROL
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Source: libspatialite
|
||||||
|
Version: 4.3.0a
|
||||||
|
Description: SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.
|
||||||
|
Build-Depends: libxml2, sqlite3, geos, proj4, zlib, freexl, libiconv
|
||||||
|
|
61
ports/libspatialite/fix-makefiles.patch
Normal file
61
ports/libspatialite/fix-makefiles.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
diff --git a/makefile.vc b/makefile.vc
|
||||||
|
index 9b9e8ee..b524a27 100644
|
||||||
|
--- a/makefile.vc
|
||||||
|
+++ b/makefile.vc
|
||||||
|
@@ -59,7 +59,7 @@ LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \
|
||||||
|
src\versioninfo\version.obj src\virtualtext\virtualtext.obj
|
||||||
|
SPATIALITE_DLL = spatialite$(VERSION).dll
|
||||||
|
|
||||||
|
-CFLAGS = /nologo -I.\src\headers -I. -IC:\OSGeo4W\include $(OPTFLAGS)
|
||||||
|
+CFLAGS = /nologo -I.\src\headers -I. -I$(INSTALLED_ROOT)\include $(OPTFLAGS)
|
||||||
|
|
||||||
|
default: all
|
||||||
|
|
||||||
|
@@ -73,12 +73,9 @@ spatialite.lib: $(LIBOBJ)
|
||||||
|
$(SPATIALITE_DLL): spatialite_i.lib
|
||||||
|
|
||||||
|
spatialite_i.lib: $(LIBOBJ)
|
||||||
|
- link /debug /dll /out:$(SPATIALITE_DLL) \
|
||||||
|
+ link $(LINK_FLAGS) /dll /out:$(SPATIALITE_DLL) \
|
||||||
|
/implib:spatialite_i.lib $(LIBOBJ) \
|
||||||
|
- C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \
|
||||||
|
- C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \
|
||||||
|
- C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \
|
||||||
|
- C:\OSGeo4W\lib\libxml2.lib
|
||||||
|
+ $(LIBS_ALL)
|
||||||
|
if exist $(SPATIALITE_DLL).manifest mt -manifest \
|
||||||
|
$(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2
|
||||||
|
|
||||||
|
@@ -90,16 +87,7 @@ clean:
|
||||||
|
del *.exp
|
||||||
|
del *.manifest
|
||||||
|
del *.lib
|
||||||
|
- del src\gaiaaux\*.obj
|
||||||
|
- del src\gaiaexif\*.obj
|
||||||
|
- del src\gaiageo\*.obj
|
||||||
|
- del src\spatialite\*.obj
|
||||||
|
- del src\srsinit\*.obj
|
||||||
|
- del src\versioninfo\*.obj
|
||||||
|
- del src\virtualtext\*.obj
|
||||||
|
- del src\wfs\*.obj
|
||||||
|
- del src\dxf\*.obj
|
||||||
|
- del src\md5\*.obj
|
||||||
|
+ forfiles /m *.obj* /s /c "cmd /c del @path" & exit 0
|
||||||
|
del *.pdb
|
||||||
|
|
||||||
|
install: all
|
||||||
|
diff --git a/nmake.opt b/nmake.opt
|
||||||
|
index 0960ec1..276bc84 100644
|
||||||
|
--- a/nmake.opt
|
||||||
|
+++ b/nmake.opt
|
||||||
|
@@ -1,8 +1,8 @@
|
||||||
|
# Directory tree where SpatiaLite will be installed.
|
||||||
|
-INSTDIR=C:\OSGeo4W
|
||||||
|
+INSTDIR=$(INST_DIR)
|
||||||
|
|
||||||
|
# Uncomment the first for an optimized build, or the second for debug.
|
||||||
|
-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
|
||||||
|
+OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \
|
||||||
|
/DDLL_EXPORT /DYY_NO_UNISTD_H
|
||||||
|
#OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT
|
||||||
|
|
32
ports/libspatialite/fix-sources.patch
Normal file
32
ports/libspatialite/fix-sources.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
diff --git a/config-msvc.h b/config-msvc.h
|
||||||
|
index 9c7f477..a812546 100644
|
||||||
|
--- a/config-msvc.h
|
||||||
|
+++ b/config-msvc.h
|
||||||
|
@@ -143,7 +143,7 @@
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
-#define HAVE_UNISTD_H 1
|
||||||
|
+#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <zlib.h> header file. */
|
||||||
|
#define HAVE_ZLIB_H 1
|
||||||
|
diff --git a/src/gaiageo/gg_extras.c b/src/gaiageo/gg_extras.c
|
||||||
|
index ff3dd7c..49ec986 100644
|
||||||
|
--- a/src/gaiageo/gg_extras.c
|
||||||
|
+++ b/src/gaiageo/gg_extras.c
|
||||||
|
@@ -59,14 +59,6 @@ the terms of any one of the MPL, the GPL or the LGPL.
|
||||||
|
#include <spatialite/sqlite.h>
|
||||||
|
#include <spatialite/gaiageo.h>
|
||||||
|
|
||||||
|
-#if defined(_WIN32) && !defined(__MINGW32__)
|
||||||
|
-static double
|
||||||
|
-rint (double x)
|
||||||
|
-{
|
||||||
|
- return floor (x + 0.5);
|
||||||
|
-}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
static void
|
||||||
|
auxGridSnapPoint (int dimension_model, gaiaPointPtr pt, gaiaGeomCollPtr result,
|
||||||
|
double origin_x, double origin_y, double origin_z,
|
105
ports/libspatialite/portfile.cmake
Normal file
105
ports/libspatialite/portfile.cmake
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libspatialite-4.3.0a)
|
||||||
|
vcpkg_download_distfile(ARCHIVE
|
||||||
|
URLS "http://www.gaia-gis.it/gaia-sins/libspatialite-4.3.0a.tar.gz"
|
||||||
|
FILENAME "libspatialite-4.3.0a.tar.gz"
|
||||||
|
SHA512 adfd63e8dde0f370b07e4e7bb557647d2bfb5549205b60bdcaaca69ff81298a3d885e7c1ca515ef56dd0aca152ae940df8b5dbcb65bb61ae0a9337499895c3c0
|
||||||
|
)
|
||||||
|
vcpkg_extract_source_archive(${ARCHIVE})
|
||||||
|
|
||||||
|
find_program(NMAKE nmake)
|
||||||
|
|
||||||
|
vcpkg_apply_patches(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
PATCHES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
# fix most of the problems when spacebar is in the path
|
||||||
|
set(CURRENT_INSTALLED_DIR "\"${CURRENT_INSTALLED_DIR}\"")
|
||||||
|
|
||||||
|
if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
|
||||||
|
set(CL_FLAGS_DBG "/MDd /Zi")
|
||||||
|
set(CL_FLAGS_REL "/MD /Ox")
|
||||||
|
set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib")
|
||||||
|
set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/geos_c.lib")
|
||||||
|
set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib")
|
||||||
|
set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib")
|
||||||
|
else()
|
||||||
|
set(CL_FLAGS_DBG "/MTd /Zi")
|
||||||
|
set(CL_FLAGS_REL "/MT /Ox")
|
||||||
|
set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libgeos_c.lib ${CURRENT_INSTALLED_DIR}/lib/libgeos.lib")
|
||||||
|
set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libgeos_c.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libgeos.lib")
|
||||||
|
set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/lib/lzma.lib ws2_32.lib")
|
||||||
|
set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib ws2_32.lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LIBS_ALL_DBG
|
||||||
|
"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/debug/lib/freexl.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib \
|
||||||
|
${LIBXML2_LIBS_DBG} \
|
||||||
|
${GEOS_LIBS_DBG} \
|
||||||
|
${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib"
|
||||||
|
)
|
||||||
|
set(LIBS_ALL_REL
|
||||||
|
"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/lib/libcharset.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/lib/freexl.lib \
|
||||||
|
${CURRENT_INSTALLED_DIR}/lib/zlib.lib \
|
||||||
|
${LIBXML2_LIBS_REL} \
|
||||||
|
${GEOS_LIBS_REL} \
|
||||||
|
${CURRENT_INSTALLED_DIR}/lib/proj.lib"
|
||||||
|
)
|
||||||
|
|
||||||
|
################
|
||||||
|
# Debug build
|
||||||
|
################
|
||||||
|
message(STATUS "Building ${TARGET_TRIPLET}-dbg")
|
||||||
|
|
||||||
|
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG)
|
||||||
|
|
||||||
|
vcpkg_execute_required_process(
|
||||||
|
COMMAND ${NMAKE} -f makefile.vc clean install
|
||||||
|
"INST_DIR=\"${INST_DIR_DBG}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}"
|
||||||
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||||
|
LOGNAME nmake-build-${TARGET_TRIPLET}-debug
|
||||||
|
)
|
||||||
|
message(STATUS "Building ${TARGET_TRIPLET}-dbg done")
|
||||||
|
vcpkg_copy_pdbs()
|
||||||
|
|
||||||
|
################
|
||||||
|
# Release build
|
||||||
|
################
|
||||||
|
message(STATUS "Building ${TARGET_TRIPLET}-rel")
|
||||||
|
|
||||||
|
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL)
|
||||||
|
vcpkg_execute_required_process(
|
||||||
|
COMMAND ${NMAKE} -f makefile.vc clean install
|
||||||
|
"INST_DIR=\"${INST_DIR_REL}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}"
|
||||||
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
||||||
|
LOGNAME nmake-build-${TARGET_TRIPLET}-release
|
||||||
|
)
|
||||||
|
message(STATUS "Building ${TARGET_TRIPLET}-rel done")
|
||||||
|
|
||||||
|
|
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||||
|
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libspatialite RENAME copyright)
|
||||||
|
|
||||||
|
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
|
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||||
|
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib)
|
||||||
|
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib)
|
||||||
|
else()
|
||||||
|
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib)
|
||||||
|
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib)
|
||||||
|
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib)
|
||||||
|
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "Packaging ${TARGET_TRIPLET} done")
|
Loading…
x
Reference in New Issue
Block a user