diff --git a/CMakeLists.txt b/CMakeLists.txt index eb2213c4e..c222b7c95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,18 +3,22 @@ # POCO_UNBUNDLED # POCO_NO_LOCALE -PROJECT(Poco) +project(Poco) cmake_minimum_required(VERSION 2.8.0) -set(SHARED_LIBRARY_VERSION "22") +file(STRINGS "${CMAKE_SOURCE_DIR}/libversion" SHARED_LIBRARY_VERSION) -set(CPACK_PACKAGE_VERSION_MAJOR "1") -set(CPACK_PACKAGE_VERSION_MINOR "5") -set(CPACK_PACKAGE_VERSION_PATCH "2") -SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) -SET(RELEASE_NAME "Unstable-trunk") -SET(PROJECT_VERSION ${COMPLETE_VERSION}) +# Read the version information from the VERSION file +file (STRINGS "${CMAKE_SOURCE_DIR}/VERSION" PACKAGE_VERSION ) +message(STATUS "Poco package version: ${PACKAGE_VERSION}") +string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION}) +string(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION}) +string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION}) + +set(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) +set(RELEASE_NAME "Unstable-trunk") +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 @@ -43,14 +47,14 @@ if (CMAKE_BUILD_TYPE STREQUAL "") endif () # http://www.cmake.org/Wiki/CMake_Useful_Variables : -# CMAKE_BUILD_TYPE -# Choose the type of build. CMake has default flags for these: +# CMAKE_BUILD_TYPE +# Choose the type of build. CMake has default flags for these: # # * None (CMAKE_C_FLAGS or CMAKE_CXX_FLAGS used) # * Debug (CMAKE_C_FLAGS_DEBUG or CMAKE_CXX_FLAGS_DEBUG) # * Release (CMAKE_C_FLAGS_RELEASE or CMAKE_CXX_FLAGS_RELEASE) # * RelWithDebInfo (CMAKE_C_FLAGS_RELWITHDEBINFO or CMAKE_CXX_FLAGS_RELWITHDEBINFO -# * MinSizeRel (CMAKE_C_FLAGS_MINSIZEREL or CMAKE_CXX_FLAGS_MINSIZEREL) +# * MinSizeRel (CMAKE_C_FLAGS_MINSIZEREL or CMAKE_CXX_FLAGS_MINSIZEREL) # For Debug build types, append a "d" to the library names. set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Set debug library postfix" FORCE) @@ -66,7 +70,7 @@ option(POCO_UNBUNDLED # Uncomment from next two lines to force statitc or dynamic library, default is autodetection if(POCO_STATIC) - add_definitions( -DPOCO_STATIC -DPOCO_NO_AUTOMATIC_LIBS) + add_definitions( -DPOCO_STATIC -DPOCO_NO_AUTOMATIC_LIBS) set( LIB_MODE STATIC ) message(STATUS "Building static libraries") else(POCO_STATIC) @@ -74,40 +78,35 @@ else(POCO_STATIC) message(STATUS "Building dynamic libraries") endif(POCO_STATIC) -IF (ENABLE_TESTS) +if (ENABLE_TESTS) include(CTest) - ENABLE_TESTING() + enable_testing() message(STATUS "Building with unittests & samples") -ELSE () +else () message(STATUS "Building without tests & samples") -ENDIF () +endif () -IF (POCO_UNBUNDLED) +if (POCO_UNBUNDLED) add_definitions( -DPOCO_UNBUNDLED) message(STATUS "Build with using external sqlite, libz, pcre, expat ...") -ELSE () +else () message(STATUS "Build with using internal copy of sqlite, libz, pcre, expat, ...") -ENDIF () +endif () # 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 JSON/include MongoDB/include PDF/include) include(CheckTypeSize) -include(FindCygwin) -include(FindOpenSSL) +find_package(Cygwin) + #include(CMakeDetermineCompilerId) -include(FindMySQL) - -#include(FindAPR) -#include(FindApache2) - # OS Detection if(CMAKE_SYSTEM MATCHES "Windows") - + add_definitions( -DPOCO_OS_FAMILY_WINDOWS) set(SYSLIBS iphlpapi gdi32 odbc32) - + if (CMAKE_C_COMPILER_ID MATCHES "MSVC") message(STATUS "XXX: MS Visual Compiler detected") endif (CMAKE_C_COMPILER_ID MATCHES "MSVC") @@ -154,9 +153,9 @@ if (ANDROID) add_definitions( -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY ) endif() -IF (ENABLE_TESTS) +if (ENABLE_TESTS) add_subdirectory(CppUnit) -ENDIF () +endif () add_subdirectory(Foundation) add_subdirectory(XML) @@ -165,9 +164,9 @@ add_subdirectory(MongoDB) add_subdirectory(PDF) add_subdirectory(Util) add_subdirectory(Net) -#add_subdirectory(Web) # OPENSSL_SSL_LIBRARY +find_package(OpenSSL) if(OPENSSL_FOUND) include_directories(${OPENSSL_INCLUDE_DIR}) add_subdirectory(NetSSL_OpenSSL) @@ -175,35 +174,37 @@ if(OPENSSL_FOUND) endif(OPENSSL_FOUND) add_subdirectory(Data) -#add_subdirectory(WebWidgets) +add_subdirectory(SevenZip) add_subdirectory(Zip) +#find_package(ARP) +#find_package(Apache2) if(APRUTIL_FOUND AND APACHE_FOUND) add_subdirectory(ApacheConnector) endif(APRUTIL_FOUND AND APACHE_FOUND) ############################################################# # Uninstall stuff see: http://www.vtk.org/Wiki/CMake_FAQ -CONFIGURE_FILE( +configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -ADD_CUSTOM_TARGET(uninstall +add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") ############################################################# # Enable packaging -INCLUDE(InstallRequiredSystemLibraries) +include(InstallRequiredSystemLibraries) -SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Poco Libraries") -SET(CPACK_PACKAGE_VENDOR "Applied Informatics Software Engineering GmbH") -SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "/usr/local") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Poco Libraries") +set(CPACK_PACKAGE_VENDOR "Applied Informatics Software Engineering GmbH") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "/usr/local") -INCLUDE(CPack) +include(CPack) message(STATUS "CMake ${CMAKE_VERSION} successfully configured ${PROJECT_NAME} using ${CMAKE_GENERATOR} generator") message(STATUS "Installation target path: ${CMAKE_INSTALL_PREFIX}") diff --git a/CppUnit/CMakeLists.txt b/CppUnit/CMakeLists.txt index 8f8ed6454..9384afd9a 100644 --- a/CppUnit/CMakeLists.txt +++ b/CppUnit/CMakeLists.txt @@ -1,9 +1,18 @@ set(LIBNAME "CppUnit") -aux_source_directory(src SRCS) +set(SRCS + src/CppUnitException.cpp + src/TestCase.cpp + src/TestDecorator.cpp + src/TestFailure.cpp + src/TestResult.cpp + src/TestRunner.cpp + src/TestSuite.cpp + src/TextTestResult.cpp +) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} +set_target_properties( ${LIBNAME} PROPERTIES VERSION "1" SOVERSION "1") diff --git a/Crypto/CMakeLists.txt b/Crypto/CMakeLists.txt index 38652d2f9..90bd7d52f 100644 --- a/Crypto/CMakeLists.txt +++ b/Crypto/CMakeLists.txt @@ -1,26 +1,35 @@ set(LIBNAME "PocoCrypto") -aux_source_directory(src SRCS) +set(SRCS + src/Cipher.cpp + src/CipherFactory.cpp + src/CipherImpl.cpp + src/CipherKey.cpp + src/CipherKeyImpl.cpp + src/CryptoStream.cpp + src/CryptoTransform.cpp + src/DigestEngine.cpp + src/OpenSSLInitializer.cpp + src/RSACipherImpl.cpp + src/RSADigestEngine.cpp + src/RSAKey.cpp + src/RSAKeyImpl.cpp + src/X509Certificate.cpp +) add_definitions(-D_USRDLL -DCrypto_EXPORTS) -include_directories( include) +include_directories( include ${OPENSSL_INCLUDE_DIR} ) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) -#if(CMAKE_SYSTEM MATCHES "Windows") -# target_link_libraries( ${LIBNAME} PocoFoundation ${LIB_EAY_RELEASE} ${OPENSSL_LIBRARIES} ) -#ELSE() -# target_link_libraries( ${LIBNAME} PocoFoundation ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ) -#ENDIF() - -target_link_libraries( ${LIBNAME} PocoFoundation ${OPENSSL_LIBRARIES} ) +target_link_libraries( ${LIBNAME} PocoFoundation ${OPENSSL_LIBRARIES} ) install( DIRECTORY include/Poco DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 0c0ed1242..e71e169f2 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -1,11 +1,46 @@ set(LIBNAME "PocoData") -set(SRCS "") -aux_source_directory(src SRCS) -include_directories( SQLite/include ) +set(SRCS + src/AbstractBinder.cpp + src/AbstractBinding.cpp + src/AbstractExtraction.cpp + src/AbstractExtractor.cpp + src/AbstractPreparation.cpp + src/AbstractPreparator.cpp + src/ArchiveStrategy.cpp + src/Bulk.cpp + src/Connector.cpp + src/DataException.cpp + src/Date.cpp + src/DynamicLOB.cpp + src/Limit.cpp + src/MetaColumn.cpp + src/PooledSessionHolder.cpp + src/PooledSessionImpl.cpp + src/Position.cpp + src/Range.cpp + src/RecordSet.cpp + src/Row.cpp + src/RowFilter.cpp + src/RowFormatter.cpp + src/RowIterator.cpp + src/Session.cpp + src/SessionFactory.cpp + src/SessionImpl.cpp + src/SessionPoolContainer.cpp + src/SessionPool.cpp + src/SimpleRowFormatter.cpp + src/SQLChannel.cpp + src/Statement.cpp + src/StatementCreator.cpp + src/StatementImpl.cpp + src/Time.cpp + src/Transaction.cpp +) + if (NOT POCO_STATIC) - add_definitions(-DData_EXPORTS -DTHREADSAFE -DODBC_EXPORTS -DMySQL_EXPORTS -DSQLite_EXPORTS) + add_definitions(-DData_EXPORTS -DTHREADSAFE -DODBC_EXPORTS -DMySQL_EXPORTS -DSQLite_EXPORTS) endif (NOT POCO_STATIC) if(MSVC AND NOT(MSVC_VERSION LESS 1400)) @@ -14,9 +49,9 @@ if(MSVC AND NOT(MSVC_VERSION LESS 1400)) endif() add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} - PROPERTIES - VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) +set_target_properties( ${LIBNAME} + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoFoundation) install( @@ -24,7 +59,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} @@ -32,27 +67,28 @@ install( RUNTIME DESTINATION bin ) +# SQlite3 is built in any case add_subdirectory( SQLite ) +find_package(MySQL) if(MYSQL_FOUND) add_subdirectory( MySQL ) endif(MYSQL_FOUND) -include(FindODBC) - +find_package(ODBC) if(CMAKE_SYSTEM MATCHES "Windows") - message(STATUS "Windows native ODBC Support Enabled") - add_subdirectory( ODBC ) + message(STATUS "Windows native ODBC Support Enabled") + add_subdirectory( ODBC ) else () - if ( ${UNIX_ODBC_CONFIG} STREQUAL UNIX_ODBC_CONFIG-NOTFOUND AND ${IODBC_CONFIG} STREQUAL IODBC_CONFIG-NOTFOUND) - message(STATUS "ODBC Support Disabled - no ODBC runtime") - else () - message(STATUS "ODBC Support Enabled") - add_subdirectory( ODBC ) - endif () + if ( ${UNIX_ODBC_CONFIG} STREQUAL UNIX_ODBC_CONFIG-NOTFOUND AND ${IODBC_CONFIG} STREQUAL IODBC_CONFIG-NOTFOUND) + message(STATUS "ODBC Support Disabled - no ODBC runtime") + else () + message(STATUS "ODBC Support Enabled") + add_subdirectory( ODBC ) + endif () endif() if (ENABLE_TESTS) - add_subdirectory(samples) - add_subdirectory(testsuite) + add_subdirectory(samples) + add_subdirectory(testsuite) endif () diff --git a/Data/MySQL/CMakeLists.txt b/Data/MySQL/CMakeLists.txt index a2a2d79bf..a211dc973 100644 --- a/Data/MySQL/CMakeLists.txt +++ b/Data/MySQL/CMakeLists.txt @@ -1,17 +1,26 @@ set(LIBNAME "PocoDataMySQL") -set(SRCS "") -aux_source_directory(src SRCS) +set(SRCS + src/Binder.cpp + src/Connector.cpp + src/Extractor.cpp + src/MySQLException.cpp + src/MySQLStatementImpl.cpp + src/ResultMetadata.cpp + src/SessionHandle.cpp + src/SessionImpl.cpp + src/StatementExecutor.cpp + src/Utility.cpp +) add_definitions(-DTHREADSAFE -DNO_TCL) include_directories( include ${MYSQL_INCLUDE_DIR}) -#link_directories( ) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) set_target_properties( ${LIBNAME} - PROPERTIES - VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoData PocoFoundation ${MYSQL_LIB}) install( @@ -28,5 +37,5 @@ install( ) if (ENABLE_TESTS) - add_subdirectory(testsuite) + add_subdirectory(testsuite) endif () diff --git a/Data/ODBC/CMakeLists.txt b/Data/ODBC/CMakeLists.txt index 40b61399d..747514acb 100644 --- a/Data/ODBC/CMakeLists.txt +++ b/Data/ODBC/CMakeLists.txt @@ -1,20 +1,20 @@ set(LIBNAME "PocoDataODBC") set(SRCS -src/Binder.cpp -src/ConnectionHandle.cpp -src/Connector.cpp -src/EnvironmentHandle.cpp -src/Extractor.cpp -src/ODBCException.cpp -src/ODBCMetaColumn.cpp -src/ODBCStatementImpl.cpp -src/Parameter.cpp -src/Preparator.cpp -src/SessionImpl.cpp -src/TypeInfo.cpp -src/Unicode.cpp -src/Utility.cpp + src/Binder.cpp + src/ConnectionHandle.cpp + src/Connector.cpp + src/EnvironmentHandle.cpp + src/Extractor.cpp + src/ODBCException.cpp + src/ODBCMetaColumn.cpp + src/ODBCStatementImpl.cpp + src/Parameter.cpp + src/Preparator.cpp + src/SessionImpl.cpp + src/TypeInfo.cpp + src/Unicode.cpp + src/Utility.cpp ) add_definitions( ${ODBC_CFLAGS} ) @@ -23,8 +23,8 @@ include_directories( include ) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) set_target_properties( ${LIBNAME} - PROPERTIES - VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoData PocoFoundation ${ODBC_LINK_FLAGS}) install( @@ -41,5 +41,5 @@ install( ) if (ENABLE_TESTS) - add_subdirectory(testsuite) + add_subdirectory(testsuite) endif () diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index 0a5ca15ea..1b9ecbe9d 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -1,34 +1,33 @@ set(LIBNAME "PocoDataSQLite") -include_directories( include src ) - -set(SRCS "") - -set(SRCS - src/Binder.cpp - src/Connector.cpp - src/Extractor.cpp - src/Notifier.cpp - src/SQLiteException.cpp - src/SQLiteStatementImpl.cpp - src/SessionImpl.cpp - src/Utility.cpp +set(SRCS + src/Binder.cpp + src/Connector.cpp + src/Extractor.cpp + src/Notifier.cpp + src/SessionImpl.cpp + src/SQLiteException.cpp + src/SQLiteStatementImpl.cpp + src/Utility.cpp ) +include_directories( "include" src ) if (POCO_UNBUNDLED) - set(DATASQLITELIBS PocoData PocoFoundation sqlite3) + find_package(SQLite3) + set(DATASQLITELIBS PocoData PocoFoundation ${SQLITE3_LIBRARIES}) + include_directories(${SQLITE3_INCLUDE_DIRS}) else() - set(SRCS ${SRCS} src/sqlite3.c) - set(DATASQLITELIBS PocoData PocoFoundation) + set(SRCS ${SRCS} src/sqlite3.c) + set(DATASQLITELIBS PocoData PocoFoundation) 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_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} - PROPERTIES - VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) +set_target_properties( ${LIBNAME} + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} ${DATASQLITELIBS} ) install( @@ -36,7 +35,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} @@ -45,6 +44,6 @@ install( ) if (ENABLE_TESTS) - add_subdirectory(testsuite) + add_subdirectory(testsuite) endif () diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index 2c3e3acf4..d13edce43 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -23,8 +23,8 @@ if (WIN32) message(STATUS "Found message compiler: ${CMAKE_MC_COMPILER}") mark_as_advanced(CMAKE_MC_COMPILER) endif(WIN32) - -set( BASE_SRCS + +set( BASE_SRCS src/ASCIIEncoding.cpp src/Ascii.cpp src/AtomicCounter.cpp @@ -108,7 +108,7 @@ set( BASE_SRCS src/NullStream.cpp src/NumberFormatter.cpp src/NumberParser.cpp -# src/OpcomChannel.cpp + src/NumericString.cpp src/Path.cpp src/PatternFormatter.cpp src/Pipe.cpp @@ -176,71 +176,95 @@ set( BASE_SRCS src/Windows1250Encoding.cpp src/Windows1251Encoding.cpp src/Windows1252Encoding.cpp - src/adler32.c - src/compress.c - src/crc32.c - src/deflate.c - src/infback.c - src/inffast.c - src/inflate.c - src/inftrees.c - src/pcre_chartables.c - src/pcre_compile.c - src/pcre_exec.c - src/pcre_fullinfo.c - src/pcre_globals.c - src/pcre_maketables.c - src/pcre_newline.c - src/pcre_ord2utf8.c - src/pcre_study.c - src/pcre_tables.c - src/pcre_try_flipped.c - src/pcre_ucd.c - src/pcre_valid_utf8.c - src/pcre_xclass.c - src/pocomsg.mc - src/trees.c - src/zutil.c ) +# If POCO_UNBUNDLED is enabled we try to find the required packages +# The configuration will fail if the packages are not found +if (POCO_UNBUNDLED) + find_package(PCRE REQUIRED) + set(SYSLIBS ${SYSLIBS} ${PCRE_LIBRARIES}) + include_directories(${PCRE_INCLUDE_DIRS}) + + find_package(ZLIB REQUIRED) + set(SYSLIBS ${SYSLIBS} ${ZLIB_LIBRARIES}) + include_directories(${ZLIB_INCLUDE_DIRS}) +else() + # PCRE + list(APPEND BASE_SRCS + src/pcre_chartables.c + src/pcre_compile.c + src/pcre_exec.c + src/pcre_fullinfo.c + src/pcre_globals.c + src/pcre_maketables.c + src/pcre_newline.c + src/pcre_ord2utf8.c + src/pcre_study.c + src/pcre_tables.c + src/pcre_try_flipped.c + src/pcre_ucd.c + src/pcre_valid_utf8.c + src/pcre_xclass.c + ) + + # ZLIB + list(APPEND BASE_SRCS + src/adler32.c + src/compress.c + src/crc32.c + src/deflate.c + src/infback.c + src/inffast.c + src/inflate.c + src/inftrees.c + src/trees.c + src/zutil.c + ) +endif (POCO_UNBUNDLED) + set(WIN_SRCS src/EventLogChannel.cpp src/WindowsConsoleChannel.cpp ) if (WIN32) - set(RES_SRCS ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.h) - set_source_files_properties(${RES_SRCS} PROPERTIES GENERATED true) - add_custom_command( - OUTPUT ${RES_SRCS} - DEPENDS ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.mc - COMMAND ${CMAKE_MC_COMPILER} - ARGS - -h ${CMAKE_SOURCE_DIR}/Foundation/src - -r ${CMAKE_SOURCE_DIR}/Foundation/src - ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.mc - VERBATIM # recommended: p260 - ) - list(APPEND WIN_SRCS ${RES_SRCS}) + set(RES_SRCS ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.h) + set_source_files_properties(${RES_SRCS} PROPERTIES GENERATED true) + add_custom_command( + OUTPUT ${RES_SRCS} + DEPENDS ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.mc + COMMAND ${CMAKE_MC_COMPILER} + ARGS + -h ${CMAKE_SOURCE_DIR}/Foundation/src + -r ${CMAKE_SOURCE_DIR}/Foundation/src + ${CMAKE_SOURCE_DIR}/Foundation/src/pocomsg.mc + VERBATIM # recommended: p260 + ) + list(APPEND WIN_SRCS ${RES_SRCS}) endif (WIN32) set(LIN_SRCS src/SyslogChannel.cpp ) +# TODO: Use this sources somewhere if built on OpenVMS +set(OPENVMS_SRCS + src/OpcomChannel.cpp +) + if(CMAKE_SYSTEM MATCHES "Windows") - set(SRCS ${BASE_SRCS} ${WIN_SRCS}) - add_definitions( -DPCRE_STATIC -DFoundation_EXPORTS) - set(SYSLIBS ${SYSLIBS} iphlpapi) + set(SRCS ${BASE_SRCS} ${WIN_SRCS}) + add_definitions( -DPCRE_STATIC -DFoundation_EXPORTS) + set(SYSLIBS ${SYSLIBS} iphlpapi) else (CMAKE_SYSTEM MATCHES "Windows") - set(SRCS ${BASE_SRCS} ${LIN_SRCS}) - add_definitions( -DPCRE_STATIC) + set(SRCS ${BASE_SRCS} ${LIN_SRCS}) + add_definitions( -DPCRE_STATIC) endif(CMAKE_SYSTEM MATCHES "Windows") add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) if (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro") - set_target_properties( ${LIBNAME} PROPERTIES LINK_FLAGS "-library=stlport4") + set_target_properties( ${LIBNAME} PROPERTIES LINK_FLAGS "-library=stlport4") endif (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro") target_link_libraries( ${LIBNAME} ${SYSLIBS}) @@ -249,7 +273,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/JSON/CMakeLists.txt b/JSON/CMakeLists.txt index e573d8039..efb9864a0 100644 --- a/JSON/CMakeLists.txt +++ b/JSON/CMakeLists.txt @@ -1,6 +1,18 @@ set(LIBNAME "PocoJSON") -aux_source_directory(src SRCS) +set(SRCS + src/Array.cpp + src/Handler.cpp + src/JSONException.cpp + src/Object.cpp + src/ParseHandler.cpp + src/Parser.cpp + src/PrintHandler.cpp + src/Query.cpp + src/Stringifier.cpp + src/TemplateCache.cpp + src/Template.cpp +) if (NOT POCO_STATIC) add_definitions(-DJSON_EXPORTS) diff --git a/MongoDB/CMakeLists.txt b/MongoDB/CMakeLists.txt index 5c7e229be..9ee4b8529 100644 --- a/MongoDB/CMakeLists.txt +++ b/MongoDB/CMakeLists.txt @@ -1,13 +1,35 @@ set(LIBNAME "PocoMongoDB") -aux_source_directory(src SRCS) +set(SRCS + src/Array.cpp + src/Binary.cpp + src/Connection.cpp + src/Cursor.cpp + src/Database.cpp + src/DeleteRequest.cpp + src/Document.cpp + src/Element.cpp + src/GetMoreRequest.cpp + src/InsertRequest.cpp + src/JavaScriptCode.cpp + src/KillCursorsRequest.cpp + src/Message.cpp + src/MessageHeader.cpp + src/ObjectId.cpp + src/QueryRequest.cpp + src/RegularExpression.cpp + src/ReplicaSet.cpp + src/RequestMessage.cpp + src/ResponseMessage.cpp + src/UpdateRequest.cpp +) if (NOT POCO_STATIC) add_definitions(-DMongoDB_EXPORTS) endif (NOT POCO_STATIC) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} +set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoNet PocoFoundation) @@ -17,7 +39,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/NetSSL_OpenSSL/CMakeLists.txt b/NetSSL_OpenSSL/CMakeLists.txt index ed9624e4c..c975eb681 100644 --- a/NetSSL_OpenSSL/CMakeLists.txt +++ b/NetSSL_OpenSSL/CMakeLists.txt @@ -1,6 +1,35 @@ set(LIBNAME "PocoNetSSL") -aux_source_directory(src SRCS) +set(SRCS + src/AcceptCertificateHandler.cpp + src/CertificateHandlerFactory.cpp + src/CertificateHandlerFactoryMgr.cpp + src/ConsoleCertificateHandler.cpp + src/Context.cpp + src/HTTPSClientSession.cpp + src/HTTPSSessionInstantiator.cpp + src/HTTPSStreamFactory.cpp + src/InvalidCertificateHandler.cpp + src/KeyConsoleHandler.cpp + src/KeyFileHandler.cpp + src/PrivateKeyFactory.cpp + src/PrivateKeyFactoryMgr.cpp + src/PrivateKeyPassphraseHandler.cpp + src/RejectCertificateHandler.cpp + src/SecureServerSocket.cpp + src/SecureServerSocketImpl.cpp + src/SecureSMTPClientSession.cpp + src/SecureSocketImpl.cpp + src/SecureStreamSocket.cpp + src/SecureStreamSocketImpl.cpp + src/Session.cpp + src/SSLException.cpp + src/SSLManager.cpp + src/Utility.cpp + src/VerificationErrorArgs.cpp + src/X509Certificate.cpp +) + include_directories( ${OPENSSL_INCLUDE_DIR} ) if (NOT POCO_STATIC) @@ -8,7 +37,7 @@ if (NOT POCO_STATIC) endif (NOT POCO_STATIC) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} +set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoCrypto PocoNet PocoUtil PocoFoundation ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ) @@ -18,7 +47,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt index ff41ed957..ff6a31c3e 100644 --- a/PDF/CMakeLists.txt +++ b/PDF/CMakeLists.txt @@ -1,6 +1,120 @@ set(LIBNAME "PocoPDF") -aux_source_directory(src SRCS) +set(SRCS + src/Destination.cpp + src/Document.cpp + src/Encoder.cpp + src/Font.cpp + src/Image.cpp + src/LinkAnnotation.cpp + src/Outline.cpp + src/Page.cpp + src/PDFException.cpp + src/TextAnnotation.cpp +) + +# If POCO_UNBUNDLED is enabled we try to find the required packages +# The configuration will fail if the packages are not found +if (POCO_UNBUNDLED) + find_package(ZLIB REQUIRED) + set(SYSLIBS ${SYSLIBS} ${ZLIB_LIBRARIES}) + include_directories(${ZLIB_INCLUDE_DIRS}) +else() + # ZLIB + list(APPEND SRCS + src/adler32.c + src/compress.c + src/crc32.c + src/deflate.c + src/gzio.c + src/infback.c + src/inffast.c + src/inflate.c + src/inftrees.c + src/trees.c + src/zutil.c + ) +endif (POCO_UNBUNDLED) + +# TODO: Currently only bundled is supported, in future this should also be possible +# with an unbundled version of hpdf +# HPDF +list(APPEND SRCS + src/hpdf_annotation.c + src/hpdf_array.c + src/hpdf_binary.c + src/hpdf_boolean.c + src/hpdf_catalog.c + src/hpdf_destination.c + src/hpdf_dict.c + src/hpdf_doc.c + src/hpdf_doc_png.c + src/hpdf_encoder.c + src/hpdf_encoder_cns.c + src/hpdf_encoder_cnt.c + src/hpdf_encoder_jp.c + src/hpdf_encoder_kr.c + src/hpdf_encrypt.c + src/hpdf_encryptdict.c + src/hpdf_error.c + src/hpdf_ext_gstate.c + src/hpdf_font.c + src/hpdf_font_cid.c + src/hpdf_fontdef_base14.c + src/hpdf_fontdef.c + src/hpdf_fontdef_cid.c + src/hpdf_fontdef_cns.c + src/hpdf_fontdef_cnt.c + src/hpdf_fontdef_jp.c + src/hpdf_fontdef_kr.c + src/hpdf_fontdef_tt.c + src/hpdf_fontdef_type1.c + src/hpdf_font_tt.c + src/hpdf_font_type1.c + src/hpdf_gstate.c + src/hpdf_image.c + src/hpdf_image_png.c + src/hpdf_info.c + src/hpdf_list.c + src/hpdf_mmgr.c + src/hpdf_name.c + src/hpdf_null.c + src/hpdf_number.c + src/hpdf_objects.c + src/hpdf_outline.c + src/hpdf_page_label.c + src/hpdf_page_operator.c + src/hpdf_pages.c + src/hpdf_real.c + src/hpdf_streams.c + src/hpdf_string.c + src/hpdf_utils.c + src/hpdf_xref.c +) + +# TODO: Currently only bundled is supported, in future this should also be possible +# with an unbundled version of libpng +list(APPEND SRCS + src/png.c + src/pngerror.c + src/pnggccrd.c + src/pngget.c + src/pngmem.c + src/pngpread.c + src/pngread.c + src/pngrio.c + src/pngrtran.c + src/pngrutil.c + src/pngset.c + src/pngtest.c + src/pngtrans.c + src/pngvcrd.c + src/pngwio.c + src/pngwrite.c + src/pngwtran.c + src/pngwutil.c +) + include_directories(include/Poco/PDF) # zip src if (NOT POCO_STATIC) @@ -8,17 +122,17 @@ if (NOT POCO_STATIC) endif (NOT POCO_STATIC) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} +set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) -target_link_libraries( ${LIBNAME} PocoFoundation) +target_link_libraries( ${LIBNAME} ${SYSLIBS} PocoFoundation ) install( DIRECTORY include/Poco DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/SevenZip/CMakeLists.txt b/SevenZip/CMakeLists.txt new file mode 100644 index 000000000..1ab5c59a4 --- /dev/null +++ b/SevenZip/CMakeLists.txt @@ -0,0 +1,80 @@ +set(LIBNAME "PocoSevenZip") + +set(SRCS + src/Archive.cpp + src/ArchiveEntry.cpp +) + +# TODO: Currently only bundled is supported, in future this should also be possible +# with an unbundled version of 7z +list(APPEND SRCS + src/7zAlloc.c + src/7zBuf2.c + src/7zBuf.c + src/7zCrc.c + src/7zCrcOpt.c + src/7zDec.c + src/7zFile.c + src/7zIn.c + src/7zStream.c +# src/Alloc.c + src/Bcj2.c + src/Bra86.c + src/Bra.c +# src/BraIA64.c + src/CpuArch.c +# src/Delta.c +# src/LzFind.c +# src/LzFindMt.c + src/Lzma2Dec.c +# src/Lzma2Enc.c + src/Lzma86Dec.c +# src/Lzma86Enc.c + src/LzmaDec.c +# src/LzmaEnc.c +# src/LzmaLib.c +# src/MtCoder.c + src/Ppmd7.c + src/Ppmd7Dec.c +# src/Ppmd7Enc.c +# src/Sha256.c +# src/Threads.c +# src/Xz.c +# src/XzCrc64.c +# src/XzDec.c +# src/XzEnc.c +# src/XzIn.c +) + +include_directories( "include" ) + +if (NOT POCO_STATIC) + add_definitions(-DSevenZip_EXPORTS) +endif (NOT POCO_STATIC) + +add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) +set_target_properties( ${LIBNAME} + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) +target_link_libraries( ${LIBNAME} PocoUtil PocoXML PocoFoundation) + +install( + DIRECTORY include/Poco + DESTINATION include + PATTERN ".svn" EXCLUDE + ) + +install( + TARGETS ${LIBNAME} + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX} + RUNTIME DESTINATION bin + ) + +if (ENABLE_TESTS) + # TODO: Enable CMake for samples + #add_subdirectory(samples) + # TODO: Add tests + #add_subdirectory(testsuite) +endif () + diff --git a/Util/CMakeLists.txt b/Util/CMakeLists.txt index 592b33db1..1e2431592 100644 --- a/Util/CMakeLists.txt +++ b/Util/CMakeLists.txt @@ -1,52 +1,54 @@ set(LIBNAME "PocoUtil") -set( BASE_SRCS -src/AbstractConfiguration.cpp -src/JSONConfiguration.cpp -src/Application.cpp -src/ConfigurationMapper.cpp -src/ConfigurationView.cpp -src/FilesystemConfiguration.cpp -src/HelpFormatter.cpp -src/IniFileConfiguration.cpp -src/IntValidator.cpp -src/LayeredConfiguration.cpp -src/LoggingConfigurator.cpp -src/LoggingSubsystem.cpp -src/MapConfiguration.cpp -src/Option.cpp -src/OptionCallback.cpp -src/OptionException.cpp -src/OptionProcessor.cpp -src/OptionSet.cpp -src/PropertyFileConfiguration.cpp -src/RegExpValidator.cpp -src/ServerApplication.cpp -src/Subsystem.cpp -src/SystemConfiguration.cpp -src/Validator.cpp -src/XMLConfiguration.cpp -src/Timer.cpp -src/TimerTask.cpp +set(BASE_SRCS + src/AbstractConfiguration.cpp + src/Application.cpp + src/ConfigurationMapper.cpp + src/ConfigurationView.cpp + src/FilesystemConfiguration.cpp + src/HelpFormatter.cpp + src/IniFileConfiguration.cpp + src/IntValidator.cpp + src/JSONConfiguration.cpp + src/LayeredConfiguration.cpp + src/LoggingConfigurator.cpp + src/LoggingSubsystem.cpp + src/MapConfiguration.cpp + src/OptionCallback.cpp + src/Option.cpp + src/OptionException.cpp + src/OptionProcessor.cpp + src/OptionSet.cpp + src/PropertyFileConfiguration.cpp + src/RegExpValidator.cpp + src/ServerApplication.cpp + src/Subsystem.cpp + src/SystemConfiguration.cpp + src/Timer.cpp + src/TimerTask.cpp + src/Validator.cpp + src/XMLConfiguration.cpp ) set( WIN_SRCS -src/WinRegistryConfiguration.cpp -src/WinRegistryKey.cpp -src/WinService.cpp + src/WinRegistryConfiguration.cpp + src/WinRegistryKey.cpp + src/WinService.cpp ) +include_directories( "include" ) + if(CMAKE_SYSTEM MATCHES "Windows") - set(SRCS ${BASE_SRCS} ${WIN_SRCS}) - add_definitions(-DUtil_EXPORTS) + set(SRCS ${BASE_SRCS} ${WIN_SRCS}) + add_definitions(-DUtil_EXPORTS) else (CMAKE_SYSTEM MATCHES "Windows") - set(SRCS ${BASE_SRCS}) + set(SRCS ${BASE_SRCS}) endif(CMAKE_SYSTEM MATCHES "Windows") add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} - PROPERTIES - VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) +set_target_properties( ${LIBNAME} + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoJSON PocoXML PocoFoundation) install( @@ -54,7 +56,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} @@ -63,6 +65,6 @@ install( ) if (ENABLE_TESTS) - add_subdirectory(samples) - add_subdirectory(testsuite) + add_subdirectory(samples) + add_subdirectory(testsuite) endif () diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt index 02586f802..9ac594f62 100644 --- a/XML/CMakeLists.txt +++ b/XML/CMakeLists.txt @@ -1,21 +1,111 @@ set(LIBNAME "PocoXML") -aux_source_directory(src SRCS) +set(SRCS + src/AbstractContainerNode.cpp + src/AbstractNode.cpp + src/Attr.cpp + src/Attributes.cpp + src/AttributesImpl.cpp + src/AttrMap.cpp + src/CDATASection.cpp + src/CharacterData.cpp + src/ChildNodesList.cpp + src/Comment.cpp + src/ContentHandler.cpp + src/DeclHandler.cpp + src/DefaultHandler.cpp + src/Document.cpp + src/DocumentEvent.cpp + src/DocumentFragment.cpp + src/DocumentType.cpp + src/DOMBuilder.cpp + src/DOMException.cpp + src/DOMImplementation.cpp + src/DOMObject.cpp + src/DOMParser.cpp + src/DOMSerializer.cpp + src/DOMWriter.cpp + src/DTDHandler.cpp + src/DTDMap.cpp + src/Element.cpp + src/ElementsByTagNameList.cpp + src/Entity.cpp + src/EntityReference.cpp + src/EntityResolver.cpp + src/EntityResolverImpl.cpp + src/ErrorHandler.cpp + src/Event.cpp + src/EventDispatcher.cpp + src/EventException.cpp + src/EventListener.cpp + src/EventTarget.cpp + src/InputSource.cpp + src/LexicalHandler.cpp + src/Locator.cpp + src/LocatorImpl.cpp + src/MutationEvent.cpp + src/Name.cpp + src/NamedNodeMap.cpp + src/NamePool.cpp + src/NamespaceStrategy.cpp + src/NamespaceSupport.cpp + src/NodeAppender.cpp + src/Node.cpp + src/NodeFilter.cpp + src/NodeIterator.cpp + src/NodeList.cpp + src/Notation.cpp + src/ParserEngine.cpp + src/ProcessingInstruction.cpp + src/SAXException.cpp + src/SAXParser.cpp + src/Text.cpp + src/TreeWalker.cpp + src/WhitespaceFilter.cpp + src/XMLException.cpp + src/XMLFilter.cpp + src/XMLFilterImpl.cpp + src/XMLReader.cpp + src/XMLString.cpp + src/XMLWriter.cpp +) + +# If POCO_UNBUNDLED is enabled we try to find the required packages +# The configuration will fail if the packages are not found +if (POCO_UNBUNDLED) + find_package(EXPAT REQUIRED) + set(SYSLIBS ${SYSLIBS} ${EXPAT_LIBRARIES}) + include_directories(${EXPAT_INCLUDE_DIRS}) +else() + list(APPEND SRCS + src/xmlparse.cpp + src/xmlrole.c + src/xmltok.c + src/xmltok_impl.c + src/xmltok_ns.c + ) +endif (POCO_UNBUNDLED) + + add_definitions(-D_USRDLL -DXML_NS -DXML_DTD -DHAVE_EXPAT_CONFIG_H -DXML_EXPORTS) +if (NOT POCO_STATIC) + add_definitions(-DXML_EXPORTS) +endif (NOT POCO_STATIC) + add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} - PROPERTIES +set_target_properties( ${LIBNAME} + PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) -target_link_libraries( ${LIBNAME} PocoFoundation) +target_link_libraries( ${LIBNAME} ${SYSLIBS} PocoFoundation) install( DIRECTORY include/Poco DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/Zip/CMakeLists.txt b/Zip/CMakeLists.txt index b32fea9cf..11677c53a 100644 --- a/Zip/CMakeLists.txt +++ b/Zip/CMakeLists.txt @@ -1,13 +1,36 @@ set(LIBNAME "PocoZip") -aux_source_directory(src SRCS) +set(SRCS + src/Add.cpp + src/AutoDetectStream.cpp + src/Compress.cpp + src/Decompress.cpp + src/Delete.cpp + src/Keep.cpp + src/ParseCallback.cpp + src/PartialStream.cpp + src/Rename.cpp + src/Replace.cpp + src/SkipCallback.cpp + src/ZipArchive.cpp + src/ZipArchiveInfo.cpp + src/ZipCommon.cpp + src/ZipDataInfo.cpp + src/ZipException.cpp + src/ZipFileInfo.cpp + src/ZipLocalFileHeader.cpp + src/ZipManipulator.cpp + src/ZipOperation.cpp + src/ZipStream.cpp + src/ZipUtil.cpp +) if (NOT POCO_STATIC) add_definitions(-DZip_EXPORTS) endif (NOT POCO_STATIC) add_library( ${LIBNAME} ${LIB_MODE} ${SRCS} ) -set_target_properties( ${LIBNAME} +set_target_properties( ${LIBNAME} PROPERTIES VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} ) target_link_libraries( ${LIBNAME} PocoUtil PocoXML PocoFoundation) @@ -17,7 +40,7 @@ install( DESTINATION include PATTERN ".svn" EXCLUDE ) - + install( TARGETS ${LIBNAME} LIBRARY DESTINATION lib${LIB_SUFFIX} diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake new file mode 100644 index 000000000..03f07df56 --- /dev/null +++ b/cmake/FindPCRE.cmake @@ -0,0 +1,35 @@ +# +# $Id$ +# +# - Find pcre +# Find the native PCRE includes and library +# +# PCRE_INCLUDE_DIRS - where to find pcre.h, etc. +# PCRE_LIBRARIES - List of libraries when using pcre. +# PCRE_FOUND - True if pcre found. + + +IF (PCRE_INCLUDE_DIRS) + # Already in cache, be silent + SET(PCRE_FIND_QUIETLY TRUE) +ENDIF (PCRE_INCLUDE_DIRS) + +FIND_PATH(PCRE_INCLUDE_DIR pcre.h) + +SET(PCRE_NAMES pcre) +FIND_LIBRARY(PCRE_LIBRARY NAMES ${PCRE_NAMES} ) + +# handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG PCRE_LIBRARY PCRE_INCLUDE_DIR) + +IF(PCRE_FOUND) + SET( PCRE_LIBRARIES ${PCRE_LIBRARY} ) + SET( PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR} ) +ELSE(PCRE_FOUND) + SET( PCRE_LIBRARIES ) + SET( PCRE_INCLUDE_DIRS ) +ENDIF(PCRE_FOUND) + +MARK_AS_ADVANCED( PCRE_LIBRARIES PCRE_INCLUDE_DIRS ) diff --git a/cmake/FindSQLite3.cmake b/cmake/FindSQLite3.cmake new file mode 100644 index 000000000..aa650e38a --- /dev/null +++ b/cmake/FindSQLite3.cmake @@ -0,0 +1,87 @@ +# - Try to find Sqlite3 +# Once done this will define +# +# SQLITE3_FOUND - system has Sqlite3 +# SQLITE3_INCLUDE_DIRS - the Sqlite3 include directory +# SQLITE3_LIBRARIES - Link these to use Sqlite3 +# SQLITE3_DEFINITIONS - Compiler switches required for using Sqlite3 +# +# Copyright (c) 2008 Andreas Schneider +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +if (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) + # in cache already + set(SQLITE3_FOUND TRUE) +else (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + include(UsePkgConfig) + pkgconfig(sqlite3 _SQLITE3_INCLUDEDIR _SQLITE3_LIBDIR _SQLITE3_LDFLAGS _SQLITE3_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_SQLITE3 sqlite3) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(SQLITE3_INCLUDE_DIR + NAMES + sqlite3.h + PATHS + ${_SQLITE3_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + ) + + find_library(SQLITE3_LIBRARY + NAMES + sqlite3 + PATHS + ${_SQLITE3_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + if (SQLITE3_LIBRARY) + set(SQLITE3_FOUND TRUE) + endif (SQLITE3_LIBRARY) + + set(SQLITE3_INCLUDE_DIRS + ${SQLITE3_INCLUDE_DIR} + ) + + if (SQLITE3_FOUND) + set(SQLITE3_LIBRARIES + ${SQLITE3_LIBRARIES} + ${SQLITE3_LIBRARY} + ) + endif (SQLITE3_FOUND) + + if (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) + set(SQLITE3_FOUND TRUE) + endif (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) + + if (SQLITE3_FOUND) + if (NOT Sqlite3_FIND_QUIETLY) + message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARIES}") + endif (NOT Sqlite3_FIND_QUIETLY) + else (SQLITE3_FOUND) + if (Sqlite3_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Sqlite3") + endif (Sqlite3_FIND_REQUIRED) + endif (SQLITE3_FOUND) + + # show the SQLITE3_INCLUDE_DIRS and SQLITE3_LIBRARIES variables only in the advanced view + mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES) + +endif (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) +