Hi John, Short self intro: I'm a Linux enthusiast / developer. One of the things I do is package various software for Fedora. I also recently got an ebook reader, and as such got interested in Sigil.
I've read: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590180 So I know that you've already been contacted about packaging Sigil for Linux, and how most Linux distributions have a policy against using bundled libraries inside applications. I was happy to read that you're willing to take patches to make Sigil build in such a fashion, on the condition that this would be configurable. As such I've created a patch set building on top of the work by Dan HorĂ¡k (in the CC) which I believe builds on top of the work of Kan-Ru Chen (in the CC). With this patch set Sigil can be built using just src/tidyLib and src/Sigil, for all other parts system libraries are used. cmake's auto detection features are used to determine whether to use a system lib, or the bundled copy. These patches are on top of the just released 0.5.0. I hope you are willing to integrate them into Sigil's next release. Thanks & Regards, Hans p.s. Note that these patches also add support for using a system wide installed copy of FlightCrew (and the XercesExtensions), since FlightCrew is a separate project this seemed to make sense. I'll send you a separate patchset to make flightcrew use systemlibs and to allow installing flightcrew as a shared library.
From 9400748ef712b7b46ffc0b7dc5869273204a091f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:04:20 +0100 Subject: [PATCH 1/9] use system boost if available --- CMakeLists.txt | 11 ++++++++++- src/FlightCrew/CMakeLists.txt | 6 +++--- .../Validators/Opf/ReachabilityAnalysis.cpp | 3 +++ src/Sigil/CMakeLists.txt | 6 +++--- src/XercesExtensions/CMakeLists.txt | 2 +- src/utf8-cpp/utf8/core.h | 2 +- src/zipios/CMakeLists.txt | 4 ++-- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd0b3b2..c645cf9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,9 +53,18 @@ set( CMAKE_OSX_ARCHITECTURES "x86_64" ) # This disables the building of the test runner app for FlightCrew set( NO_TEST_EXE 1 ) +find_package( Boost COMPONENTS date_time filesystem program_options regex system thread ) + add_subdirectory( src/tidyLib ) add_subdirectory( src/ZipArchive ) -add_subdirectory( src/BoostParts ) +if( Boost_FOUND ) + set( BOOST_LIBS ${Boost_DATE_TIME_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY} ) + set( BOOST_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ) +else() + add_subdirectory( src/BoostParts ) + set( BOOST_LIBS BoostParts ) + set( BOOST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/BoostParts ) +endif() add_subdirectory( src/Xerces ) add_subdirectory( src/XercesExtensions ) add_subdirectory( src/zlib ) diff --git a/src/FlightCrew/CMakeLists.txt b/src/FlightCrew/CMakeLists.txt index f93dc7b..1642a82 100644 --- a/src/FlightCrew/CMakeLists.txt +++ b/src/FlightCrew/CMakeLists.txt @@ -50,7 +50,7 @@ list( REMOVE_ITEM SOURCES ${to_remove} ) # creating PCH's for MSVC and GCC on Linux include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) -set( ALL_INCLUDES ${BoostParts_SOURCE_DIR} +set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${Xerces_SOURCE_DIR} ${zipios_SOURCE_DIR} ) set( GCC_PCH_TARGET gccPCH_fc ) @@ -65,7 +65,7 @@ precompiled_header( SOURCES ALL_INCLUDES ${GCC_PCH_TARGET} ${PCH_NAME} ) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ../zipios - ../BoostParts + ${BOOST_INCLUDE_DIRS} ../Xerces ../XercesExtensions ../utf8-cpp @@ -80,7 +80,7 @@ else() add_library( ${PROJECT_NAME} ${SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} zipios BoostParts XercesExtensions ) +target_link_libraries( ${PROJECT_NAME} zipios ${BOOST_LIBS} XercesExtensions ) ############################################################################# diff --git a/src/FlightCrew/Validators/Opf/ReachabilityAnalysis.cpp b/src/FlightCrew/Validators/Opf/ReachabilityAnalysis.cpp index 24c0f28..4a83fc0 100644 --- a/src/FlightCrew/Validators/Opf/ReachabilityAnalysis.cpp +++ b/src/FlightCrew/Validators/Opf/ReachabilityAnalysis.cpp @@ -26,7 +26,9 @@ #include <XmlUtils.h> #include "Misc/DetermineMimetype.h" #include "Misc/Utilities.h" +#include <boost/version.hpp> +#if BOOST_VERSION < 104800 namespace boost { @@ -48,6 +50,7 @@ namespace filesystem3 } // namespace filesystem3 } // namespace boost +#endif namespace FlightCrew diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 72c25d9..4501bee 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -371,7 +371,7 @@ set_source_files_properties( Misc/Utility.cpp PROPERTIES COMPILE_DEFINITIONS SIG # creating PCH's for MSVC and GCC on Linux include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) -set( ALL_INCLUDES ${BoostParts_SOURCE_DIR} +set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${Xerces_SOURCE_DIR} ${XercesExtensions_SOURCE_DIR} ${ZipArchive_SOURCE_DIR} @@ -458,7 +458,7 @@ endif() # and the headers for the linked-to libraries include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} - ${BoostParts_SOURCE_DIR} + ${BOOST_INCLUDE_DIRS} ${Xerces_SOURCE_DIR} ${XercesExtensions_SOURCE_DIR} ${ZipArchive_SOURCE_DIR} @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ZipArchive BoostParts Xerces XercesExtensions FlightCrew ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ZipArchive ${BOOST_LIBS} Xerces XercesExtensions FlightCrew ${QT_LIBRARIES} ) ############################################################################# diff --git a/src/XercesExtensions/CMakeLists.txt b/src/XercesExtensions/CMakeLists.txt index 08196e0..5e89c32 100644 --- a/src/XercesExtensions/CMakeLists.txt +++ b/src/XercesExtensions/CMakeLists.txt @@ -17,7 +17,7 @@ file( GLOB SOURCES *.cpp *.h ) # and the headers for the linked-to libraries include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ../Xerces - ../BoostParts ) + ${BOOST_INCLUDE_DIRS} ) link_directories ( ${PROJECT_BINARY_DIR}/lib ) diff --git a/src/utf8-cpp/utf8/core.h b/src/utf8-cpp/utf8/core.h index 294aad0..5a6c2bc 100644 --- a/src/utf8-cpp/utf8/core.h +++ b/src/utf8-cpp/utf8/core.h @@ -29,7 +29,7 @@ DEALINGS IN THE SOFTWARE. #define UTF8_FOR_CPP_CORE_H_2675DCD0_9480_4c0c_B92A_CC14C027B731 #include <iterator> -#include "../../BoostParts/boost/cstdint.hpp" +#include "boost/cstdint.hpp" namespace utf8 { diff --git a/src/zipios/CMakeLists.txt b/src/zipios/CMakeLists.txt index 88fdb7d..431c9ec 100644 --- a/src/zipios/CMakeLists.txt +++ b/src/zipios/CMakeLists.txt @@ -16,7 +16,7 @@ file( GLOB_RECURSE SOURCES *.cpp *.h ) # We need to pick up the stdafx.h file # and the headers for the linked-to libraries include_directories( ${CMAKE_CURRENT_SOURCE_DIR} - ${BoostParts_SOURCE_DIR} + ${BOOST_INCLUDE_DIRS} ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} ) @@ -25,7 +25,7 @@ link_directories ( ${PROJECT_BINARY_DIR}/lib ) add_library( ${PROJECT_NAME} ${SOURCES} ) -target_link_libraries( ${PROJECT_NAME} zlib BoostParts ) +target_link_libraries( ${PROJECT_NAME} zlib ${BOOST_LIBS} ) ############################################################################# -- 1.7.7.6
From 99c04bc6f6f0e694523f834553b0df15192e9078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:05:29 +0100 Subject: [PATCH 2/9] use system zlib if available --- CMakeLists.txt | 5 ++++- src/zipios/CMakeLists.txt | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c645cf9..9ac1ba7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,7 @@ set( CMAKE_OSX_ARCHITECTURES "x86_64" ) set( NO_TEST_EXE 1 ) find_package( Boost COMPONENTS date_time filesystem program_options regex system thread ) +find_package( ZLIB ) add_subdirectory( src/tidyLib ) add_subdirectory( src/ZipArchive ) @@ -67,7 +68,9 @@ else() endif() add_subdirectory( src/Xerces ) add_subdirectory( src/XercesExtensions ) -add_subdirectory( src/zlib ) +if( NOT ZLIB_FOUND ) + add_subdirectory( src/zlib ) +endif() add_subdirectory( src/zipios ) add_subdirectory( src/pcre ) add_subdirectory( src/hunspell ) diff --git a/src/zipios/CMakeLists.txt b/src/zipios/CMakeLists.txt index 431c9ec..db4838e 100644 --- a/src/zipios/CMakeLists.txt +++ b/src/zipios/CMakeLists.txt @@ -17,15 +17,24 @@ file( GLOB_RECURSE SOURCES *.cpp *.h ) # and the headers for the linked-to libraries include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${BOOST_INCLUDE_DIRS} - ${zlib_SOURCE_DIR} - ${zlib_BINARY_DIR} ) +if( ZLIB_FOUND ) + include_directories( ${ZLIB_INCLUDE_DIRS} ) +else() + include_directories( ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} ) +endif() + link_directories ( ${PROJECT_BINARY_DIR}/lib ) add_library( ${PROJECT_NAME} ${SOURCES} ) -target_link_libraries( ${PROJECT_NAME} zlib ${BOOST_LIBS} ) +target_link_libraries( ${PROJECT_NAME} ${BOOST_LIBS} ) +if( ZLIB_FOUND ) + target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} ) +else() + target_link_libraries( ${PROJECT_NAME} zlib ) +endif() ############################################################################# -- 1.7.7.6
From 4b4e5abae3cb01cf1b5d5b2a472b34add9875375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:08:13 +0100 Subject: [PATCH 3/9] use system ZipArchive if available --- CMakeLists.txt | 8 +++++++- src/Sigil/CMakeLists.txt | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ac1ba7..e66992c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,9 +55,15 @@ set( NO_TEST_EXE 1 ) find_package( Boost COMPONENTS date_time filesystem program_options regex system thread ) find_package( ZLIB ) +find_package( PkgConfig ) +pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) add_subdirectory( src/tidyLib ) -add_subdirectory( src/ZipArchive ) +if( NOT ZIPARCHIVE_FOUND ) + add_subdirectory( src/ZipArchive ) + set( ZIPARCHIVE_LIBRARIES ZipArchive ) + set( ZIPARCHIVE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/ZipArchive ) +endif() if( Boost_FOUND ) set( BOOST_LIBS ${Boost_DATE_TIME_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY} ) set( BOOST_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ) diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 4501bee..0c99db8 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -374,7 +374,7 @@ include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${Xerces_SOURCE_DIR} ${XercesExtensions_SOURCE_DIR} - ${ZipArchive_SOURCE_DIR} + ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} ${hunspell_SOURCE_DIR} @@ -461,7 +461,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${BOOST_INCLUDE_DIRS} ${Xerces_SOURCE_DIR} ${XercesExtensions_SOURCE_DIR} - ${ZipArchive_SOURCE_DIR} + ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} ${hunspell_SOURCE_DIR} @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ZipArchive ${BOOST_LIBS} Xerces XercesExtensions FlightCrew ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} Xerces XercesExtensions FlightCrew ${QT_LIBRARIES} ) ############################################################################# -- 1.7.7.6
From 288fe75d8bf40a78a474fd6ffcedea7b972f57b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:10:49 +0100 Subject: [PATCH 4/9] fix for ZipArchive --- src/Sigil/Exporters/ExportEPUB.cpp | 2 +- src/Sigil/Importers/ImportOEBPS.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sigil/Exporters/ExportEPUB.cpp b/src/Sigil/Exporters/ExportEPUB.cpp index 71deeff..3da4b56 100644 --- a/src/Sigil/Exporters/ExportEPUB.cpp +++ b/src/Sigil/Exporters/ExportEPUB.cpp @@ -157,7 +157,7 @@ void ExportEPUB::SaveFolderAsEpubToLocation( const QString &fullfolderpath, cons #ifdef Q_WS_WIN std::string error_description = QString::fromStdWString( exception.GetErrorDescription() ).toStdString(); #else - std::string error_description = QString::fromAscii( exception.GetErrorDescription().c_str() ).toStdString(); + std::string error_description = QString::fromAscii( exception.GetErrorDescription() ).toStdString(); #endif boost_throw( CZipExceptionWrapper() << errinfo_zip_info_msg( error_description ) diff --git a/src/Sigil/Importers/ImportOEBPS.cpp b/src/Sigil/Importers/ImportOEBPS.cpp index fc31cf6..152f7d7 100644 --- a/src/Sigil/Importers/ImportOEBPS.cpp +++ b/src/Sigil/Importers/ImportOEBPS.cpp @@ -81,7 +81,7 @@ void ImportOEBPS::ExtractContainer() #ifdef Q_WS_WIN std::string filename = QString::fromStdWString( file_header->GetFileName() ).toStdString(); #else - std::string filename = QString::fromAscii( file_header->GetFileName().c_str() ).toStdString(); + std::string filename = QString::fromAscii( file_header->GetFileName() ).toStdString(); #endif zip.Close(); @@ -105,7 +105,7 @@ void ImportOEBPS::ExtractContainer() #ifdef Q_WS_WIN std::string error_description = QString::fromStdWString( exception.GetErrorDescription() ).toStdString(); #else - std::string error_description = QString::fromAscii( exception.GetErrorDescription().c_str() ).toStdString(); + std::string error_description = QString::fromAscii( exception.GetErrorDescription() ).toStdString(); #endif boost_throw( CZipExceptionWrapper() << errinfo_zip_info_msg( error_description ) -- 1.7.7.6
From 0f8738be6b9ea0b5db51201ae18378b78c4e97cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:16:17 +0100 Subject: [PATCH 5/9] use system xerces-c if available --- CMakeLists.txt | 7 ++++++- src/FlightCrew/CMakeLists.txt | 8 +++++--- src/Sigil/CMakeLists.txt | 10 ++++++---- src/XercesExtensions/CMakeLists.txt | 8 +++++--- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e66992c..834122c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,7 @@ find_package( Boost COMPONENTS date_time filesystem program_options regex system find_package( ZLIB ) find_package( PkgConfig ) pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) +pkg_check_modules( XERCES xerces-c>=3.1 ) add_subdirectory( src/tidyLib ) if( NOT ZIPARCHIVE_FOUND ) @@ -72,7 +73,11 @@ else() set( BOOST_LIBS BoostParts ) set( BOOST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/BoostParts ) endif() -add_subdirectory( src/Xerces ) +if( NOT XERCES_FOUND ) + add_subdirectory( src/Xerces ) + set( XERCES_LIBRARIES Xerces ) + set( XERCES_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/Xerces ) +endif() add_subdirectory( src/XercesExtensions ) if( NOT ZLIB_FOUND ) add_subdirectory( src/zlib ) diff --git a/src/FlightCrew/CMakeLists.txt b/src/FlightCrew/CMakeLists.txt index 1642a82..4ee27ee 100644 --- a/src/FlightCrew/CMakeLists.txt +++ b/src/FlightCrew/CMakeLists.txt @@ -51,7 +51,7 @@ list( REMOVE_ITEM SOURCES ${to_remove} ) # creating PCH's for MSVC and GCC on Linux include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} - ${Xerces_SOURCE_DIR} + ${XERCES_INCLUDE_DIRS} ${zipios_SOURCE_DIR} ) set( GCC_PCH_TARGET gccPCH_fc ) @@ -66,7 +66,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ../zipios ${BOOST_INCLUDE_DIRS} - ../Xerces + ${XERCES_INCLUDE_DIRS} ../XercesExtensions ../utf8-cpp ) @@ -114,7 +114,9 @@ elseif( CMAKE_COMPILER_IS_GNUCXX ) endif() # needed for correct Xerces header inclusion -add_definitions( -DXERCES_STATIC_LIBRARY ) +if( NOT XERCES_FOUND ) + add_definitions( -DXERCES_STATIC_LIBRARY ) +endif() ############################################################################# diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 0c99db8..2f8969c 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -372,7 +372,7 @@ set_source_files_properties( Misc/Utility.cpp PROPERTIES COMPILE_DEFINITIONS SIG # creating PCH's for MSVC and GCC on Linux include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} - ${Xerces_SOURCE_DIR} + ${XERCES_INCLUDE_DIRS} ${XercesExtensions_SOURCE_DIR} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} @@ -459,7 +459,7 @@ endif() include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${BOOST_INCLUDE_DIRS} - ${Xerces_SOURCE_DIR} + ${XERCES_INCLUDE_DIRS} ${XercesExtensions_SOURCE_DIR} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} Xerces XercesExtensions FlightCrew ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} XercesExtensions FlightCrew ${QT_LIBRARIES} ) ############################################################################# @@ -488,7 +488,9 @@ xcode_pch( ${PCH_NAME} ) ############################################################################# # needed for correct static header inclusion -add_definitions( -DXERCES_STATIC_LIBRARY ) +if( NOT XERCES_FOUND ) + add_definitions( -DXERCES_STATIC_LIBRARY ) +endif() add_definitions( -DPCRE_STATIC ) add_definitions( -DHUNSPELL_STATIC ) diff --git a/src/XercesExtensions/CMakeLists.txt b/src/XercesExtensions/CMakeLists.txt index 5e89c32..c8bba73 100644 --- a/src/XercesExtensions/CMakeLists.txt +++ b/src/XercesExtensions/CMakeLists.txt @@ -16,14 +16,14 @@ file( GLOB SOURCES *.cpp *.h ) # We need to pick up the stdafx.h file # and the headers for the linked-to libraries include_directories( ${CMAKE_CURRENT_SOURCE_DIR} - ../Xerces + ${XERCES_INCLUDE_DIRS} ${BOOST_INCLUDE_DIRS} ) link_directories ( ${PROJECT_BINARY_DIR}/lib ) add_library( ${PROJECT_NAME} ${SOURCES} ) -target_link_libraries( ${PROJECT_NAME} Xerces ) +target_link_libraries( ${PROJECT_NAME} ${XERCES_LIBRARIES} ) ############################################################################# @@ -49,5 +49,7 @@ elseif( CMAKE_COMPILER_IS_GNUCXX ) endif() # needed for correct Xerces header inclusion -add_definitions( -DXERCES_STATIC_LIBRARY ) +if( NOT XERCES_FOUND) + add_definitions( -DXERCES_STATIC_LIBRARY ) +endif() -- 1.7.7.6
From acf2d133feed53a4fa653abd7292c84ef6586e9f Mon Sep 17 00:00:00 2001 From: Hans de Goede <hdego...@redhat.com> Date: Mon, 23 Jan 2012 22:19:32 +0100 Subject: [PATCH 6/9] use system FlightCrew lib if available --- CMakeLists.txt | 10 ++++++++-- src/Sigil/CMakeLists.txt | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 834122c..079651a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ set( CMAKE_DEBUG_POSTFIX "d" ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib ) set( PACKAGE_DIRECTORY ${PROJECT_BINARY_DIR}/package ) +set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/usr/lib${LIB_SUFFIX}/cmake/FlightCrew" ) set( SIGIL_MAJOR_VERSION 0 ) set( SIGIL_MINOR_VERSION 5 ) @@ -58,6 +59,7 @@ find_package( ZLIB ) find_package( PkgConfig ) pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) pkg_check_modules( XERCES xerces-c>=3.1 ) +find_package( FlightCrew ) add_subdirectory( src/tidyLib ) if( NOT ZIPARCHIVE_FOUND ) @@ -82,8 +84,12 @@ add_subdirectory( src/XercesExtensions ) if( NOT ZLIB_FOUND ) add_subdirectory( src/zlib ) endif() -add_subdirectory( src/zipios ) add_subdirectory( src/pcre ) add_subdirectory( src/hunspell ) -add_subdirectory( src/FlightCrew ) +if( NOT FLIGHTCREW_FOUND ) + add_subdirectory( src/zipios ) + add_subdirectory( src/FlightCrew ) + set( FLIGHTCREW_LIBRARIES FlightCrew ) + set( FLIGHTCREW_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/FlightCrew ) +endif() add_subdirectory( src/Sigil ) diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 2f8969c..7f50a7c 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -378,7 +378,7 @@ set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} ${hunspell_SOURCE_DIR} - ${FlightCrew_SOURCE_DIR} + ${FLIGHTCREW_INCLUDE_DIRS} ${QT_INCLUDES} ) set( PCH_NAME stdafx ) @@ -465,7 +465,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} ${hunspell_SOURCE_DIR} - ${FlightCrew_SOURCE_DIR} ) + ${FLIGHTCREW_INCLUDE_DIRS} ) ############################################################################# @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} XercesExtensions FlightCrew ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} XercesExtensions ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) ############################################################################# -- 1.7.7.6
From 4eba075edcb9556ed09402c5b7a930691fe4549c Mon Sep 17 00:00:00 2001 From: Hans de Goede <hdego...@redhat.com> Date: Mon, 23 Jan 2012 22:24:34 +0100 Subject: [PATCH 7/9] use system XercesExtensions lib if available --- CMakeLists.txt | 8 +++++++- src/FlightCrew/CMakeLists.txt | 4 ++-- src/Sigil/CMakeLists.txt | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 079651a..58757ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ set( CMAKE_DEBUG_POSTFIX "d" ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib ) set( PACKAGE_DIRECTORY ${PROJECT_BINARY_DIR}/package ) +set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/usr/lib${LIB_SUFFIX}/cmake/XercesExtensions" ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/usr/lib${LIB_SUFFIX}/cmake/FlightCrew" ) set( SIGIL_MAJOR_VERSION 0 ) @@ -59,6 +60,7 @@ find_package( ZLIB ) find_package( PkgConfig ) pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) pkg_check_modules( XERCES xerces-c>=3.1 ) +find_package( XercesExtensions ) find_package( FlightCrew ) add_subdirectory( src/tidyLib ) @@ -80,7 +82,11 @@ if( NOT XERCES_FOUND ) set( XERCES_LIBRARIES Xerces ) set( XERCES_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/Xerces ) endif() -add_subdirectory( src/XercesExtensions ) +if( NOT XERCESEXTENSIONS_FOUND ) + add_subdirectory( src/XercesExtensions ) + set( XERCESEXTENSIONS_LIBRARIES XercesExtensions ) + set( XERCESEXTENSIONS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/XercesExtensions ) +endif() if( NOT ZLIB_FOUND ) add_subdirectory( src/zlib ) endif() diff --git a/src/FlightCrew/CMakeLists.txt b/src/FlightCrew/CMakeLists.txt index 4ee27ee..9cde258 100644 --- a/src/FlightCrew/CMakeLists.txt +++ b/src/FlightCrew/CMakeLists.txt @@ -67,7 +67,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ../zipios ${BOOST_INCLUDE_DIRS} ${XERCES_INCLUDE_DIRS} - ../XercesExtensions + ${XERCESEXTENSIONS_INCLUDE_DIRS} ../utf8-cpp ) @@ -80,7 +80,7 @@ else() add_library( ${PROJECT_NAME} ${SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} zipios ${BOOST_LIBS} XercesExtensions ) +target_link_libraries( ${PROJECT_NAME} zipios ${BOOST_LIBS} ${XERCESEXTENSIONS_LIBRARIES} ) ############################################################################# diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 7f50a7c..37b5c45 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -373,7 +373,7 @@ set_source_files_properties( Misc/Utility.cpp PROPERTIES COMPILE_DEFINITIONS SIG include( ${CMAKE_SOURCE_DIR}/cmake_extras/CustomPCH.cmake ) set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${XERCES_INCLUDE_DIRS} - ${XercesExtensions_SOURCE_DIR} + ${XERCESEXTENSIONS_INCLUDE_DIRS} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} @@ -460,7 +460,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${BOOST_INCLUDE_DIRS} ${XERCES_INCLUDE_DIRS} - ${XercesExtensions_SOURCE_DIR} + ${XERCESEXTENSIONS_INCLUDE_DIRS} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} XercesExtensions ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} ${XERCESEXTENSIONS_LIBRARIES} ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) ############################################################################# -- 1.7.7.6
From eec759f495d0dca945af9729605aaedf7836545f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:27:00 +0100 Subject: [PATCH 8/9] use system hunspell library if available --- CMakeLists.txt | 7 ++++++- src/Sigil/CMakeLists.txt | 10 ++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 58757ea..669d1cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,7 @@ find_package( ZLIB ) find_package( PkgConfig ) pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) pkg_check_modules( XERCES xerces-c>=3.1 ) +pkg_check_modules( HUNSPELL hunspell ) find_package( XercesExtensions ) find_package( FlightCrew ) @@ -91,7 +92,11 @@ if( NOT ZLIB_FOUND ) add_subdirectory( src/zlib ) endif() add_subdirectory( src/pcre ) -add_subdirectory( src/hunspell ) +if( NOT HUNSPELL_FOUND ) + add_subdirectory( src/hunspell ) + set( HUNSPELL_LIBRARIES hunspell ) + set( HUNSPELL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/hunspell ) +endif() if( NOT FLIGHTCREW_FOUND ) add_subdirectory( src/zipios ) add_subdirectory( src/FlightCrew ) diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 37b5c45..5602415 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -377,7 +377,7 @@ set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} - ${hunspell_SOURCE_DIR} + ${HUNSPELL_INCLUDE_DIRS} ${FLIGHTCREW_INCLUDE_DIRS} ${QT_INCLUDES} ) @@ -464,7 +464,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} ${pcre_SOURCE_DIR} - ${hunspell_SOURCE_DIR} + ${HUNSPELL_INCLUDE_DIRS} ${FLIGHTCREW_INCLUDE_DIRS} ) ############################################################################# @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} hunspell pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} ${XERCESEXTENSIONS_LIBRARIES} ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} ${HUNSPELL_LIBRARIES} pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} ${XERCESEXTENSIONS_LIBRARIES} ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) ############################################################################# @@ -492,7 +492,9 @@ if( NOT XERCES_FOUND ) add_definitions( -DXERCES_STATIC_LIBRARY ) endif() add_definitions( -DPCRE_STATIC ) -add_definitions( -DHUNSPELL_STATIC ) +if( NOT HUNSPELL_FOUND ) + add_definitions( -DHUNSPELL_STATIC ) +endif() # Speed up stirng building add_definitions( -DQT_USE_FAST_CONCATENATION ) -- 1.7.7.6
From c4cec87d423fb81dc3883dafc783d698f1ee7ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan[at]danny.cz> Date: Mon, 23 Jan 2012 22:29:24 +0100 Subject: [PATCH 9/9] use system pcre library if available --- CMakeLists.txt | 7 ++++++- src/Sigil/CMakeLists.txt | 10 ++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 669d1cf..f94d62d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ find_package( PkgConfig ) pkg_check_modules( ZIPARCHIVE ZipArchive>=4.1.1 ) pkg_check_modules( XERCES xerces-c>=3.1 ) pkg_check_modules( HUNSPELL hunspell ) +pkg_check_modules( PCRE libpcre ) find_package( XercesExtensions ) find_package( FlightCrew ) @@ -91,7 +92,11 @@ endif() if( NOT ZLIB_FOUND ) add_subdirectory( src/zlib ) endif() -add_subdirectory( src/pcre ) +if( NOT PCRE_FOUND ) + add_subdirectory( src/pcre ) + set( PCRE_LIBRARIES pcre ) + set( PCRE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/pcre ) +endif() if( NOT HUNSPELL_FOUND ) add_subdirectory( src/hunspell ) set( HUNSPELL_LIBRARIES hunspell ) diff --git a/src/Sigil/CMakeLists.txt b/src/Sigil/CMakeLists.txt index 5602415..c42afc7 100644 --- a/src/Sigil/CMakeLists.txt +++ b/src/Sigil/CMakeLists.txt @@ -376,7 +376,7 @@ set( ALL_INCLUDES ${BOOST_INCLUDE_DIRS} ${XERCESEXTENSIONS_INCLUDE_DIRS} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} - ${pcre_SOURCE_DIR} + ${PCRE_INCLUDE_DIRS} ${HUNSPELL_INCLUDE_DIRS} ${FLIGHTCREW_INCLUDE_DIRS} ${QT_INCLUDES} ) @@ -463,7 +463,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${XERCESEXTENSIONS_INCLUDE_DIRS} ${ZIPARCHIVE_INCLUDE_DIRS} ${tidyLib_SOURCE_DIR} - ${pcre_SOURCE_DIR} + ${PCRE_INCLUDE_DIRS} ${HUNSPELL_INCLUDE_DIRS} ${FLIGHTCREW_INCLUDE_DIRS} ) @@ -478,7 +478,7 @@ else() add_executable( ${PROJECT_NAME} WIN32 ${ALL_SOURCES} ) endif() -target_link_libraries( ${PROJECT_NAME} ${HUNSPELL_LIBRARIES} pcre tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} ${XERCESEXTENSIONS_LIBRARIES} ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} ${HUNSPELL_LIBRARIES} ${PCRE_LIBRARIES} tidyLib ${ZIPARCHIVE_LIBRARIES} ${BOOST_LIBS} ${XERCES_LIBRARIES} ${XERCESEXTENSIONS_LIBRARIES} ${FLIGHTCREW_LIBRARIES} ${QT_LIBRARIES} ) ############################################################################# @@ -491,7 +491,9 @@ xcode_pch( ${PCH_NAME} ) if( NOT XERCES_FOUND ) add_definitions( -DXERCES_STATIC_LIBRARY ) endif() -add_definitions( -DPCRE_STATIC ) +if( NOT PCRE_FOUND ) + add_definitions( -DPCRE_STATIC ) +endif() if( NOT HUNSPELL_FOUND ) add_definitions( -DHUNSPELL_STATIC ) endif() -- 1.7.7.6