Merge pull request #1924 from alex85k/spatialite-tools

[spatialite-tools] initial port (spatialite.exe and other tools)
This commit is contained in:
Robert Schumacher 2017-10-12 10:43:11 -07:00 committed by GitHub
commit efb482b788
3 changed files with 250 additions and 0 deletions

View File

@ -0,0 +1,4 @@
Source: spatialite-tools
Version: 4.3.0
Description: Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries)
Build-Depends: sqlite3, libspatialite, geos, readosm, proj4, zlib, libiconv, expat

View File

@ -0,0 +1,128 @@
diff --git a/makefile.vc b/makefile.vc
index 33c85d2..c811e7d 100644
--- a/makefile.vc
+++ b/makefile.vc
@@ -15,7 +15,7 @@ SPATIALITE_OSM_RAW_EXE = spatialite_osm_raw.exe
SPATIALITE_OSM_FILTER_EXE = spatialite_osm_filter.exe
SPATIALITE_GML_EXE = spatialite_gml.exe
-CFLAGS = /nologo -IC:\OSGeo4W\include $(OPTFLAGS)
+CFLAGS = /nologo -I$(INSTALLED_ROOT)\include $(OPTFLAGS)
default: all
@@ -26,89 +26,58 @@ all: $(SPATIALITE_EXE) $(SHP_DOCTOR_EXE) $(SPATIALITE_TOOL_EXE) \
$(SPATIALITE_OSM_FILTER_EXE)
$(SPATIALITE_EXE): shell.obj
- cl shell.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib \
- /Fe$(SPATIALITE_EXE)
+ cl shell.obj $(LIBS_ALL) /Fe$(SPATIALITE_EXE)
if exist $(SPATIALITE_EXE).manifest mt -manifest \
$(SPATIALITE_EXE).manifest -outputresource:$(SPATIALITE_EXE);1
$(EXIF_LOADER_EXE): exif_loader.obj
- cl exif_loader.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl exif_loader.obj $(LIBS_ALL)
if exist $(EXIF_LOADER_EXE).manifest mt -manifest \
$(EXIF_LOADER_EXE).manifest -outputresource:$(EXIF_LOADER_EXE);1
$(SHP_DOCTOR_EXE): shp_doctor.obj
- cl shp_doctor.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl shp_doctor.obj $(LIBS_ALL)
if exist $(SHP_DOCTOR_EXE).manifest mt -manifest \
$(SHP_DOCTOR_EXE).manifest -outputresource:$(SHP_DOCTOR_EXE);1
$(SPATIALITE_NETWORK_EXE): spatialite_network.obj
- cl spatialite_network.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_network.obj $(LIBS_ALL)
if exist $(SPATIALITE_NETWORK_EXE).manifest mt -manifest \
$(SPATIALITE_TOOL_EXE).manifest \
-outputresource:$(SPATIALITE_TOOL_EXE);1
$(SPATIALITE_TOOL_EXE): spatialite_tool.obj
- cl spatialite_tool.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_tool.obj $(LIBS_ALL)
if exist $(SPATIALITE_TOOL_EXE).manifest mt -manifest \
$(SPATIALITE_TOOL_EXE).manifest \
-outputresource:$(SPATIALITE_TOOL_EXE);1
$(SPATIALITE_OSM_NET_EXE): spatialite_osm_net.obj
- cl spatialite_osm_net.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\readosm_i.lib \
- C:\OSGeo4W\lib\libexpat.lib \
- C:\OSGeo4W\lib\zlib.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_osm_net.obj $(LIBS_ALL)
if exist $(SPATIALITE_OSM_EXE).manifest mt -manifest \
$(SPATIALITE_OSM_EXE).manifest \
-outputresource:$(SPATIALITE_OSM_NET_EXE);1
$(SPATIALITE_OSM_MAP_EXE): spatialite_osm_map.obj
- cl spatialite_osm_map.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\readosm_i.lib \
- C:\OSGeo4W\lib\libexpat.lib \
- C:\OSGeo4W\lib\zlib.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_osm_map.obj $(LIBS_ALL)
if exist $(SPATIALITE_OSM_MAP_EXE).manifest mt -manifest \
$(SPATIALITE_OSM_MAP_EXE).manifest \
-outputresource:$(SPATIALITE_OSM_MAP_EXE);1
$(SPATIALITE_GML_EXE): spatialite_gml.obj
- cl spatialite_gml.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\libexpat.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_gml.obj $(LIBS_ALL)
if exist $(SPATIALITE_GML_EXE).manifest mt -manifest \
$(SPATIALITE_GML_EXE).manifest \
-outputresource:$(SPATIALITE_GML_EXE);1
$(SPATIALITE_OSM_RAW_EXE): spatialite_osm_raw.obj
- cl spatialite_osm_raw.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\readosm_i.lib \
- C:\OSGeo4W\lib\libexpat.lib \
- C:\OSGeo4W\lib\zlib.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_osm_raw.obj $(LIBS_ALL)
if exist $(SPATIALITE_OSM_RAW_EXE).manifest mt -manifest \
$(SPATIALITE_OSM_RAW_EXE).manifest \
-outputresource:$(SPATIALITE_OSM_RAW_EXE);1
$(SPATIALITE_OSM_FILTER_EXE): spatialite_osm_filter.obj
- cl spatialite_osm_filter.obj C:\OSGeo4W\lib\proj_i.lib \
- C:\OSGeo4W\lib\iconv.lib \
- C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib
+ cl spatialite_osm_filter.obj $(LIBS_ALL)
if exist $(SPATIALITE_OSM_FILTER_EXE).manifest mt -manifest \
$(SPATIALITE_OSM_FILTER_EXE).manifest \
-outputresource:$(SPATIALITE_OSM_FILTER_EXE);1
diff --git a/nmake.opt b/nmake.opt
index 4f4a953..d9efecf 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 \
/D_LARGE_FILE=1 /D_FILE_OFFSET_BITS=64 /D_LARGEFILE_SOURCE=1
#OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb

View File

@ -0,0 +1,118 @@
include(vcpkg_common_functions)
option(BUILD_DEBUG_TOOLS "Build debug version of tools" OFF)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spatialite-tools-4.3.0)
vcpkg_download_distfile(ARCHIVE
URLS "http://www.gaia-gis.it/gaia-sins/spatialite-tools-4.3.0.tar.gz"
FILENAME "spatialite-tools-4.3.0.tar.gz"
SHA512 e1de27c1c65ff2ff0b08583113517bea74edf33fff59ad6e9c77492ea3ae87d9c0f17d7670ee6602b32eea73ad3678bb5410ef2c6fac6e213bf2e341a907db88
)
vcpkg_extract_source_archive(${ARCHIVE})
find_program(NMAKE nmake)
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch
)
set(LDIR "\"${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 "${LDIR}/lib/geos_c.lib")
set(GEOS_LIBS_DBG "${LDIR}/debug/lib/geos_c.lib")
set(LIBXML2_LIBS_REL "${LDIR}/lib/libxml2.lib")
set(LIBXML2_LIBS_DBG "${LDIR}/debug/lib/libxml2.lib")
set(SPATIALITE_LIBS_REL "${LDIR}/lib/spatialite.lib")
set(SPATIALITE_LIBS_DBG "${LDIR}/debug/lib/spatialite.lib")
set(ICONV_LIBS_REL "${LDIR}/lib/libiconv.lib")
set(ICONV_LIBS_DBG "${LDIR}/debug/lib/libiconv.lib")
else()
set(CL_FLAGS_DBG "/MTd /Zi")
set(CL_FLAGS_REL "/MT /Ox")
set(GEOS_LIBS_REL "${LDIR}/lib/libgeos_c.lib ${LDIR}/lib/libgeos.lib")
set(GEOS_LIBS_DBG "${LDIR}/debug/lib/libgeos_c.lib ${LDIR}/debug/lib/libgeos.lib")
set(LIBXML2_LIBS_REL "${LDIR}/lib/libxml2.lib ${LDIR}/lib/lzma.lib ws2_32.lib")
set(LIBXML2_LIBS_DBG "${LDIR}/debug/lib/libxml2.lib ${LDIR}/debug/lib/lzma.lib ws2_32.lib")
set(SPATIALITE_LIBS_REL "${LDIR}/lib/spatialite.lib ${LDIR}/lib/freexl.lib")
set(SPATIALITE_LIBS_DBG "${LDIR}/debug/lib/spatialite.lib ${LDIR}/debug/lib/freexl.lib")
set(ICONV_LIBS_REL "${LDIR}/lib/libiconv.lib ${LDIR}/lib/libcharset.lib")
set(ICONV_LIBS_DBG "${LDIR}/debug/lib/libiconv.lib ${LDIR}/debug/lib/libcharset.lib ")
endif()
set(LIBS_ALL_DBG
"${ICONV_LIBS_DBG} \
${LDIR}/debug/lib/sqlite3.lib \
${SPATIALITE_LIBS_DBG} \
${LIBXML2_LIBS_DBG} \
${GEOS_LIBS_DBG} \
${LDIR}/debug/lib/readosm.lib \
${LDIR}/debug/lib/expat.lib \
${LDIR}/debug/lib/zlibd.lib \
${LDIR}/debug/lib/projd.lib"
)
set(LIBS_ALL_REL
"${ICONV_LIBS_REL} \
${LDIR}/lib/sqlite3.lib \
${SPATIALITE_LIBS_REL} \
${LIBXML2_LIBS_REL} \
${GEOS_LIBS_REL} \
${LDIR}/lib/readosm.lib \
${LDIR}/lib/expat.lib \
${LDIR}/lib/zlib.lib \
${LDIR}/lib/proj.lib"
)
if(BUILD_DEBUG_TOOLS)
################
# Debug build
################
message(STATUS "Building ${TARGET_TRIPLET}-dgb")
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=${LDIR}" "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")
set(EXE_FOLDER ${CURRENT_PACKAGES_DIR}/bin/)
else()
################
# 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=${LDIR}" "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")
set(EXE_FOLDER ${CURRENT_PACKAGES_DIR}/bin/)
endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/)
file(GLOB EXES "${EXE_FOLDER}/*.exe")
file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(REMOVE ${EXES})
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include)
if(NOT BUILD_DEBUG_TOOLS AND VCPKG_CRT_LINKAGE STREQUAL dynamic)
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
endif()
message(STATUS "Packaging ${TARGET_TRIPLET} done")
# Allow empty include directory
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)