cmake build: POCO_UNBUNDLED support for sqlite

This commit is contained in:
Marian Krivos 2012-02-06 18:35:26 +00:00
parent 31c7bb6c52
commit 1d8e75687e
4 changed files with 97 additions and 40 deletions

View File

@ -1,3 +1,8 @@
# POCO_BUILD_TYPE
# POCO_STATIC
# POCO_UNBUNDLED
# POCO_NO_LOCALE
PROJECT(Poco) PROJECT(Poco)
cmake_minimum_required(VERSION 2.8.0) cmake_minimum_required(VERSION 2.8.0)
@ -11,6 +16,13 @@ SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINO
SET(RELEASE_NAME "Unstable-trunk") SET(RELEASE_NAME "Unstable-trunk")
SET(PROJECT_VERSION ${COMPLETE_VERSION}) SET(PROJECT_VERSION ${COMPLETE_VERSION})
# Put the libaries and binaries that get built into directories at the
# top of the build tree rather than in hard-to-find leaf
# directories. This simplifies manual testing and the use of the build
# tree rather than installed Boost libraries.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
################################################################################# #################################################################################
# Setup C/C++ compiler options # Setup C/C++ compiler options
################################################################################# #################################################################################
@ -50,6 +62,9 @@ option(ENABLE_TESTS
option(POCO_STATIC option(POCO_STATIC
"Set to OFF|ON (default is OFF) to control build of POCO as STATIC library" OFF) "Set to OFF|ON (default is OFF) to control build of POCO as STATIC library" OFF)
option(POCO_UNBUNDLED
"Set to OFF|ON (default is OFF) to control linking dependencies as external" OFF)
# Uncomment from next two lines to force statitc or dynamic library, default is autodetection # Uncomment from next two lines to force statitc or dynamic library, default is autodetection
if(POCO_STATIC) if(POCO_STATIC)
set( LIB_MODE STATIC ) set( LIB_MODE STATIC )
@ -67,6 +82,13 @@ ELSE ()
message(STATUS "Building without tests & samples") message(STATUS "Building without tests & samples")
ENDIF () ENDIF ()
IF (!POCO_UNBUNDLED)
message(STATUS "Build with using internal copy of sqlite, libz, pcre, expat, ...")
ELSE ()
add_definitions( -DPOCO_UNBUNDLED)
message(STATUS "Build with using external sqlite, libz, pcre, expat ...")
ENDIF ()
# Set local include path # Set local include path
include_directories( CppUnit/include Foundation/include XML/include Net/include NetSSL_OpenSSL/include Util/include Data/include WebWidgets/include Zip/include Crypto/include Web/include) include_directories( CppUnit/include Foundation/include XML/include Net/include NetSSL_OpenSSL/include Util/include Data/include WebWidgets/include Zip/include Crypto/include Web/include)

View File

@ -3,8 +3,23 @@ set(LIBNAME "${LIBNAME}${LIB_EXT}")
include_directories( include src ) include_directories( include src )
set(SRCS "") set(SRCS
aux_source_directory(src SRCS) src/Binder.cpp
src/Connector.cpp
src/Extractor.cpp
src/SQLiteException.cpp
src/SQLiteStatementImpl.cpp
src/SessionImpl.cpp
src/Utility.cpp
)
if (!POCO_UNBUNDLED)
set(SRCS "${SRCS} src/sqlite3.c")
set(DATASQLITELIBS PocoData${LIB_EXT} PocoFoundation${LIB_EXT} )
else()
set(DATASQLITELIBS PocoData${LIB_EXT} PocoFoundation${LIB_EXT} sqlite3)
endif()
add_definitions(-DSQLITE_THREADSAFE=1 -DSQLITE_DISABLE_LFS -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_COMPLETE -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED) add_definitions(-DSQLITE_THREADSAFE=1 -DSQLITE_DISABLE_LFS -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_COMPLETE -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED)
@ -12,7 +27,7 @@ add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} )
set_target_properties( ${LIBNAME} set_target_properties( ${LIBNAME}
PROPERTIES PROPERTIES
VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} )
target_link_libraries( ${LIBNAME} PocoData${LIB_EXT} PocoFoundation${LIB_EXT}) target_link_libraries( ${LIBNAME} ${DATASQLITELIBS} )
install( install(
DIRECTORY include/Poco DIRECTORY include/Poco

View File

@ -1,21 +1,27 @@
# #
# Makefile # Makefile
# #
# $Id: //poco/Main/Data/SQLite/Makefile#4 $ # $Id: //poco/1.4/Data/SQLite/Makefile#2 $
# #
# Makefile for Poco SQLite # Makefile for Poco SQLite
# #
include $(POCO_BASE)/build/rules/global include $(POCO_BASE)/build/rules/global
SYSFLAGS += -DSQLITE_THREADSAFE=1 -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK \ SYSFLAGS += -DSQLITE_THREADSAFE=1 -DSQLITE_DISABLE_LFS \
-DSQLITE_OMIT_COMPLETE -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_COMPLETE \
-DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED
INCLUDE += -Isrc
objects = Binder Extractor SessionImpl Connector \ objects = Binder Extractor SessionImpl Connector \
SQLiteException SQLiteStatementImpl Utility \ SQLiteException SQLiteStatementImpl Utility
sqlite3
sqlite_objects = sqlite3
ifdef POCO_UNBUNDLED
SYSLIBS += -lsqlite3
else
objects += $(sqlite_objects)
endif
target = PocoDataSQLite target = PocoDataSQLite
target_version = $(LIBVERSION) target_version = $(LIBVERSION)

View File

@ -1,42 +1,56 @@
# #
# Makefile # Makefile
# #
# $Id: //poco/svn/Foundation/Makefile#2 $ # $Id: //poco/1.4/Foundation/Makefile#4 $
# #
# Makefile for Poco Foundation # Makefile for Poco Foundation
# #
include $(POCO_BASE)/build/rules/global include $(POCO_BASE)/build/rules/global
objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel AtomicCounter Base64Decoder Base64Encoder \ objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel Base64Decoder Base64Encoder \
BinaryReader BinaryWriter Bugcheck ByteOrder Channel Checksum Configurable ConsoleChannel \ BinaryReader BinaryWriter Bugcheck ByteOrder Channel Checksum Configurable ConsoleChannel \
CountingStream DateTime LocalDateTime DateTimeFormat DateTimeFormatter DateTimeParser \ CountingStream DateTime LocalDateTime DateTimeFormat DateTimeFormatter DateTimeParser \
Debugger DeflatingStream DigestEngine DigestStream DirectoryIterator \ Debugger DeflatingStream DigestEngine DigestStream DirectoryIterator \
Environment Event EventArgs ErrorHandler Exception FPEnvironment File Glob \ Environment Event EventArgs ErrorHandler Exception FPEnvironment File Glob \
FileChannel Formatter FormattingChannel HexBinaryDecoder LineEndingConverter \ FileChannel Formatter FormattingChannel HexBinaryDecoder LineEndingConverter \
HexBinaryEncoder InflatingStream Latin1Encoding Latin2Encoding Latin9Encoding LogFile Logger \ HexBinaryEncoder InflatingStream Latin1Encoding Latin9Encoding LogFile Logger \
LoggingFactory LoggingRegistry LogStream NamedEvent NamedMutex NullChannel \ LoggingFactory LoggingRegistry LogStream NamedEvent NamedMutex NullChannel \
MemoryPool MD4Engine MD5Engine Manifest MemoryStream Message Mutex \ MemoryPool MD4Engine MD5Engine Manifest Message Mutex \
NestedDiagnosticContext Notification NotificationCenter \ NestedDiagnosticContext Notification NotificationCenter \
TimedNotificationQueue PriorityNotificationQueue \ NotificationQueue PriorityNotificationQueue TimedNotificationQueue \
NotificationQueue NullStream NumberFormatter NumberParser AbstractObserver \ NullStream NumberFormatter NumberParser AbstractObserver \
Path PatternFormatter Process PurgeStrategy RWLock Random RandomStream \ Path PatternFormatter Process PurgeStrategy RWLock Random RandomStream \
RegularExpression RefCountedObject Runnable RotateStrategy Condition \ RegularExpression RefCountedObject Runnable RotateStrategy Condition \
SHA1Engine Semaphore SharedLibrary SimpleFileChannel \ SHA1Engine Semaphore SharedLibrary SimpleFileChannel \
SignalHandler SplitterChannel Stopwatch StreamChannel StreamConverter StreamCopier \ SignalHandler SplitterChannel Stopwatch StreamChannel StreamConverter StreamCopier \
StreamTokenizer String StringTokenizer SynchronizedObject \ StreamTokenizer String StringTokenizer SynchronizedObject \
Task TaskManager TaskNotification TeeStream Hash HashStatistic \ Task TaskManager TaskNotification TeeStream Hash HashStatistic \
TemporaryFile TextConverter TextEncoding TextBufferIterator TextIterator Thread ThreadLocal \ TemporaryFile TextConverter TextEncoding TextIterator TextBufferIterator Thread ThreadLocal \
ThreadPool ThreadTarget ActiveDispatcher Timer Timespan Timestamp Timezone Token URI \ ThreadPool ThreadTarget ActiveDispatcher Timer Timespan Timestamp Timezone Token URI \
FileStreamFactory URIStreamFactory URIStreamOpener UTF16Encoding Windows1250Encoding Windows1251Encoding Windows1252Encoding \ FileStreamFactory URIStreamFactory URIStreamOpener UTF16Encoding Windows1252Encoding \
UTF8Encoding UnicodeConverter UUID UUIDGenerator Var VarHolder Void Format \ UTF8Encoding UnicodeConverter UUID UUIDGenerator Void Format \
Pipe PipeImpl PipeStream SharedMemory FileStream Unicode UTF8String \ Pipe PipeImpl PipeStream DynamicAny DynamicAnyHolder SharedMemory \
adler32 compress crc32 deflate gzclose gzlib gzread gzwrite infback inffast inflate inftrees trees uncompr zutil \ MemoryStream FileStream Unicode UTF8String AtomicCounter \
pcre_chartables pcre_compile pcre_globals pcre_maketables pcre_study \ Windows1250Encoding Windows1251Encoding Latin2Encoding
pcre_tables pcre_try_flipped pcre_ucd pcre_valid_utf8 \
zlib_objects = adler32 compress crc32 deflate \
infback inffast inflate inftrees trees zutil
pcre_objects = pcre_chartables pcre_compile pcre_globals pcre_maketables \
pcre_study pcre_try_flipped pcre_valid_utf8 \
pcre_exec pcre_ord2utf8 pcre_newline pcre_fullinfo pcre_xclass pcre_exec pcre_ord2utf8 pcre_newline pcre_fullinfo pcre_xclass
ifeq ($(POCO_CONFIG),MinGW) pcre_utf8_objects = pcre_ucd pcre_tables
ifdef POCO_UNBUNDLED
objects += $(pcre_utf8_objects)
SYSLIBS += -lpcre -lz
else
objects += $(zlib_objects) $(pcre_objects) $(pcre_utf8_objects)
endif
ifeq ($(findstring MinGW, $(POCO_CONFIG)), MinGW)
objects += EventLogChannel WindowsConsoleChannel objects += EventLogChannel WindowsConsoleChannel
else else
objects += SyslogChannel objects += SyslogChannel