Skip to content

Commit 2bfb80b

Browse files
author
jef
committed
add internal spatialite support
git-svn-id: http://svn.osgeo.org/qgis/trunk@10473 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 2ba8167 commit 2bfb80b

33 files changed

+144535
-14
lines changed

CMakeLists.txt

+14-6
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,17 @@ IF (WITH_POSTGRESQL)
5050
SET (POSTGRESQL_PREFIX "" CACHE PATH "Path to POSTGRESQL base directory")
5151
ENDIF (WITH_POSTGRESQL)
5252

53-
# try to configure and build SPATIALITE support
5453
SET (WITH_SPATIALITE TRUE CACHE BOOL "Determines whether SPATIALITE support should be built")
54+
5555
IF (WITH_SPATIALITE)
56-
SET (SPATIALITE_PREFIX "" CACHE PATH "Path to SPATIALITE base directory")
56+
SET (WITH_INTERNAL_SPATIALITE TRUE CACHE BOOL "Determines whether SPATIALITE support should be built internally")
57+
IF(WITH_INTERNAL_SPATIALITE)
58+
SET(SPATIALITE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/core/spatialite/headers)
59+
SET(HAVE_SPATIALITE TRUE)
60+
IF(WIN32)
61+
FIND_PACKAGE(Iconv REQUIRED)
62+
ENDIF(WIN32)
63+
ENDIF (WITH_INTERNAL_SPATIALITE)
5764
ENDIF (WITH_SPATIALITE)
5865

5966
# try to configure and build python bindings by default
@@ -112,6 +119,7 @@ IF (NOT WITH_INTERNAL_SQLITE3)
112119
MESSAGE (SEND_ERROR "sqlite3 dependency was not found (try compiling with sqlite3 internal)!")
113120
ENDIF (NOT SQLITE3_FOUND)
114121
ENDIF (NOT WITH_INTERNAL_SQLITE3)
122+
115123
FIND_PACKAGE(GEOS)
116124
FIND_PACKAGE(GDAL)
117125

@@ -124,9 +132,9 @@ FIND_PACKAGE(GSL) # Georeferencer
124132
IF (WITH_GRASS)
125133
FIND_PACKAGE(GRASS) # GRASS plugin
126134
ENDIF (WITH_GRASS)
127-
IF (WITH_SPATIALITE)
128-
FIND_PACKAGE(SPATIALITE) # SPATIALITE provider
129-
ENDIF (WITH_SPATIALITE)
135+
IF (WITH_SPATIALITE AND NOT WITH_INTERNAL_SPATIALITE)
136+
FIND_PACKAGE(SPATIALITE)
137+
ENDIF (WITH_SPATIALITE AND NOT WITH_INTERNAL_SPATIALITE)
130138

131139
IF (WITH_BINDINGS)
132140
# python support:
@@ -180,7 +188,7 @@ FIND_PROGRAM(QT_LRELEASE_EXECUTABLE
180188
# enable warnings
181189

182190
IF (PEDANTIC)
183-
MESSAGE ("Pedantic compiler settings enabled")
191+
MESSAGE ("-- Pedantic compiler settings enabled")
184192
IF(MSVC)
185193
ADD_DEFINITIONS( /W4 )
186194

src/app/CMakeLists.txt

+7-4
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,14 @@ IF (POSTGRES_FOUND)
178178
)
179179
ENDIF (POSTGRES_FOUND)
180180

181-
IF (SPATIALITE_FOUND)
181+
IF (HAVE_SPATIALITE)
182182
SET (QGIS_APP_SRCS ${QGIS_APP_SRCS}
183183
qgsspatialitesourceselect.cpp
184184
)
185185
SET (QGIS_APP_MOC_HDRS ${QGIS_APP_MOC_HDRS}
186186
qgsspatialitesourceselect.h
187187
)
188-
ENDIF (SPATIALITE_FOUND)
188+
ENDIF (HAVE_SPATIALITE)
189189

190190

191191
QT4_WRAP_CPP(QGIS_APP_MOC_SRCS ${QGIS_APP_MOC_HDRS})
@@ -239,9 +239,9 @@ IF (POSTGRES_FOUND)
239239
INCLUDE_DIRECTORIES(${POSTGRES_INCLUDE_DIR})
240240
ENDIF (POSTGRES_FOUND)
241241

242-
IF (SPATIALITE_FOUND)
242+
IF (HAVE_SPATIALITE)
243243
INCLUDE_DIRECTORIES(${SPATIALITE_INCLUDE_DIR})
244-
ENDIF (SPATIALITE_FOUND)
244+
ENDIF (HAVE_SPATIALITE)
245245

246246
#############
247247

@@ -268,6 +268,9 @@ TARGET_LINK_LIBRARIES(qgis
268268
qgis_core
269269
qgis_gui
270270
)
271+
IF(NOT WITH_INTERNAL_SQLITE AND NOT WITH_INTERNAL_SPATIALITE)
272+
TARGET_LINK_LIBRARIES(qgis ${SQLITE_LIBRARY})
273+
ENDIF(NOT WITH_INTERNAL_SQLITE AND NOT WITH_INTERNAL_SPATIALITE)
271274
IF (${QTVERSION} STRLESS "4.3.0")
272275
TARGET_LINK_LIBRARIES(qgis ${QT_QT3SUPPORT_LIBRARY} )
273276
ENDIF (${QTVERSION} STRLESS "4.3.0")

src/core/CMakeLists.txt

+57
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,57 @@ IF (WITH_INTERNAL_SQLITE3)
9595
)
9696
ENDIF (WITH_INTERNAL_SQLITE3)
9797

98+
IF (WITH_INTERNAL_SPATIALITE)
99+
IF (WIN32)
100+
ADD_DEFINITIONS(-DDLL_EXPORT)
101+
IF (MSVC)
102+
ADD_DEFINITIONS("-DSQLITE_API=__declspec(dllexport)")
103+
ELSE (MSVC)
104+
ADD_DEFINITIONS("\"-DSQLITE_API=__declspec(dllexport)\"")
105+
ENDIF (MSVC)
106+
ENDIF (WIN32)
107+
108+
SET(QGIS_CORE_SRCS
109+
${QGIS_CORE_SRCS}
110+
spatialite/spatialite/mbrcache.c
111+
spatialite/spatialite/spatialite.c
112+
spatialite/spatialite/virtualfdo.c
113+
spatialite/spatialite/virtualnetwork.c
114+
spatialite/spatialite/virtualshape.c
115+
116+
spatialite/spatialite_c99/spatialite_c99.c
117+
118+
spatialite/gaiageo/gg_endian.c
119+
spatialite/gaiageo/gg_geometries.c
120+
spatialite/gaiageo/gg_advanced.c
121+
spatialite/gaiageo/gg_wkb.c
122+
spatialite/gaiageo/gg_wkt.c
123+
spatialite/gaiageo/gg_transform.c
124+
spatialite/gaiageo/gg_shape.c
125+
spatialite/gaiageo/gg_relations.c
126+
127+
spatialite/virtualtext/gaiaaux/gg_sqlaux.c
128+
spatialite/virtualtext/gaiaaux/gg_utf8.c
129+
130+
spatialite/virtualtext/sqlite3/sqlite3.c
131+
132+
spatialite/gaiaexif/gaia_exif.c
133+
134+
spatialite/virtualtext/virtualtext/virtualtext.c
135+
136+
spatialite/versioninfo/version.c
137+
138+
)
139+
140+
IF (NOT MSVC)
141+
SET_SOURCE_FILES_PROPERTIES(
142+
spatialite/spatialite_c99/spatialite_c99.c
143+
PROPERTIES COMPILE_FLAGS -std=c99)
144+
ENDIF (NOT MSVC)
145+
146+
INCLUDE_DIRECTORIES(spatialite/headers)
147+
ENDIF (WITH_INTERNAL_SPATIALITE)
148+
98149
ADD_FLEX_FILES(QGIS_CORE_SRCS qgssearchstringlexer.ll)
99150

100151
ADD_BISON_FILES(QGIS_CORE_SRCS qgssearchstringparser.yy)
@@ -220,6 +271,12 @@ TARGET_LINK_LIBRARIES(qgis_core
220271
${PLATFORM_LIBRARIES}
221272
)
222273

274+
IF (WITH_INTERNAL_SPATIALITE)
275+
IF (WIN32)
276+
TARGET_LINK_LIBRARIES(qgis_core ${ICONV_LIBRARY})
277+
ENDIF (WIN32)
278+
ENDIF (WITH_INTERNAL_SPATIALITE)
279+
223280
IF (NOT WITH_INTERNAL_SQLITE3)
224281
TARGET_LINK_LIBRARIES(qgis_core ${SQLITE3_LIBRARY})
225282
ENDIF (NOT WITH_INTERNAL_SQLITE3)

0 commit comments

Comments
 (0)