CMakeLists.txt | 42 +++++++++++++++++++-------- cmake/modules/FindCairo.cmake | 64 ++++++++++++++++++++++++++---------------- cmake/modules/FindGTK.cmake | 7 +--- glib/CMakeLists.txt | 10 +++--- glib/poppler-features.h.cmake | 2 - poppler-glib.pc.cmake | 2 - 6 files changed, 80 insertions(+), 47 deletions(-)
New commits: commit bbcbb34fec10c90edd5960bdbcc6849bc8f39526 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:34:40 2010 +0100 [CMake] set POPPLER_GLIB_DISABLE_DEPRECATED and POPPLER_GLIB_DISABLE_SINGLE_INCLUDES as done with autotools diff --git a/CMakeLists.txt b/CMakeLists.txt index e1aaf3e..0a2b539 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,14 +85,20 @@ if(CAIRO_FOUND) set(HAVE_CAIRO ${CAIRO_FOUND}) set(CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1") set(CAIRO_REQ "cairo") + set(POPPLER_GLIB_DISABLE_DEPRECATED "") + set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "") macro_optional_find_package(GTK) if(GLIB_FOUND) set(ENABLE_GLIB ON) set(GLIB_REQ "glib-2.0 >= ${GLIB_VERSION} gobject-2.0 >= ${GLIB_VERSION} cairo >= ${CAIRO_VERSION}") + set(POPPLER_GLIB_DISABLE_DEPRECATED "${POPPLER_GLIB_DISABLE_DEPRECATED} -DG_DISABLE_DEPRECATED") + set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} -DG_DISABLE_SINGLE_INCLUDES") if(GDK_FOUND) set(GDK_REQ "gdk-2.0 gdk-pixbuf-2.0") set(POPPLER_WITH_GDK ${GDK_FOUND}) set(GDK_FEATURE "#define POPPLER_WITH_GDK 1") + set(POPPLER_GLIB_DISABLE_DEPRECATED "${POPPLER_GLIB_DISABLE_DEPRECATED} -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED") + set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} -DGTK_DISABLE_SINGLE_INCLUDES") endif(GDK_FOUND) endif(GLIB_FOUND) else(CAIRO_FOUND) diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt index 8fa9ba2..c789cab 100644 --- a/glib/CMakeLists.txt +++ b/glib/CMakeLists.txt @@ -5,7 +5,11 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CAIRO_INCLUDE_DIRS} ) -add_definitions(${CAIRO_CFLAGS}) +add_definitions( + ${CAIRO_CFLAGS} + ${POPPLER_GLIB_DISABLE_DEPRECATED} + ${POPPLER_GLIB_DISABLE_SINGLE_INCLUDES} +) if (GDK_FOUND) add_definitions(${GDK2_CFLAGS}) commit 190fa971c12ca1b3007f6ba349a77a7c15c47490 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:24:25 2010 +0100 reorder to match what's in the correspondent .in diff --git a/glib/poppler-features.h.cmake b/glib/poppler-features.h.cmake index ed5569c..99c7ed8 100644 --- a/glib/poppler-features.h.cmake +++ b/glib/poppler-features.h.cmake @@ -19,8 +19,8 @@ #ifndef __POPPLER_FEATURES_H__ #define __POPPLER_FEATURES_H__ -...@gdk_feature@ @CAIRO_FEATURE@ +...@gdk_feature@ #define POPPLER_MAJOR_VERSION (@POPPLER_MAJOR_VERSION@) #define POPPLER_MINOR_VERSION (@POPPLER_MINOR_VERSION@) commit ff46def8b178420a86a974ec2ce767a538bba8be Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:23:16 2010 +0100 [CMake] GDK_FEATURE is no more needed here diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt index 39fbbaf..8fa9ba2 100644 --- a/glib/CMakeLists.txt +++ b/glib/CMakeLists.txt @@ -8,7 +8,6 @@ include_directories( add_definitions(${CAIRO_CFLAGS}) if (GDK_FOUND) - set (GDK_FEATURE "#define POPPLER_WITH_GDK 1") add_definitions(${GDK2_CFLAGS}) endif (GDK_FOUND) commit 1eb8026a3060ef61a88c535177510f7ac7e7fc25 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:19:58 2010 +0100 [CMake] set in one place whether to build the glib frontend diff --git a/CMakeLists.txt b/CMakeLists.txt index 680caa8..e1aaf3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ if(CAIRO_FOUND) set(CAIRO_REQ "cairo") macro_optional_find_package(GTK) if(GLIB_FOUND) + set(ENABLE_GLIB ON) set(GLIB_REQ "glib-2.0 >= ${GLIB_VERSION} gobject-2.0 >= ${GLIB_VERSION} cairo >= ${CAIRO_VERSION}") if(GDK_FOUND) set(GDK_REQ "gdk-2.0 gdk-pixbuf-2.0") @@ -467,9 +468,9 @@ endif(ENABLE_XPDF_HEADERS) if(ENABLE_UTILS) add_subdirectory(utils) endif(ENABLE_UTILS) -if(GLIB_FOUND AND CAIRO_FOUND) +if(ENABLE_GLIB) add_subdirectory(glib) -endif(GLIB_FOUND AND CAIRO_FOUND) +endif(ENABLE_GLIB) if(QT3_FOUND) add_subdirectory(qt) endif(QT3_FOUND) @@ -504,9 +505,9 @@ endif(QT3_FOUND) if(QT4_FOUND) poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig) endif(QT4_FOUND) -if(GLIB_FOUND) +if(ENABLE_GLIB) poppler_create_install_pkgconfig(poppler-glib.pc lib${LIB_SUFFIX}/pkgconfig) -endif(GLIB_FOUND) +endif(ENABLE_GLIB) if(CAIRO_FOUND) poppler_create_install_pkgconfig(poppler-cairo.pc lib${LIB_SUFFIX}/pkgconfig) endif(CAIRO_FOUND) @@ -522,7 +523,7 @@ show_end_message_yesno("cairo output" CAIRO_FOUND) show_end_message_yesno("abiword output" ENABLE_ABIWORD) show_end_message_yesno("qt wrapper" QT3_FOUND) show_end_message_yesno("qt4 wrapper" QT4_FOUND) -show_end_message_yesno("glib wrapper" GLIB_FOUND) +show_end_message_yesno("glib wrapper" ENABLE_GLIB) show_end_message_yesno(" use GDK" POPPLER_WITH_GDK) # message(" use gtk-doc: $enable_gtk_doc") # TODO show_end_message_yesno("cpp wrapper" ENABLE_CPP) commit a1a6f23e2345814e147a72211ce9139555385223 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:09:58 2010 +0100 [CMake] correctly set the GLIB_REQ stuff diff --git a/CMakeLists.txt b/CMakeLists.txt index eff75de..680caa8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ if(CAIRO_FOUND) set(CAIRO_REQ "cairo") macro_optional_find_package(GTK) if(GLIB_FOUND) + set(GLIB_REQ "glib-2.0 >= ${GLIB_VERSION} gobject-2.0 >= ${GLIB_VERSION} cairo >= ${CAIRO_VERSION}") if(GDK_FOUND) set(GDK_REQ "gdk-2.0 gdk-pixbuf-2.0") set(POPPLER_WITH_GDK ${GDK_FOUND}) diff --git a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake index b6659fa..2a8bc66 100644 --- a/poppler-glib.pc.cmake +++ b/poppler-glib.pc.cmake @@ -6,7 +6,7 @@ includedir=${prefix}/include Name: poppler-glib Description: GLib wrapper for poppler Version: @POPPLER_VERSION@ -Requires: poppler-cairo = @POPPLER_VERSION@ gobject-2.0 @GDK_REQ@ +Requires: poppler-cairo = @POPPLER_VERSION@ @GLIB_REQ@ @GDK_REQ@ @PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lpoppler-glib commit 0f2e5d6925c5938281d9bafc297a43867c4a915b Author: Pino Toscano <[email protected]> Date: Sun Mar 7 17:03:21 2010 +0100 [CMake] move the minimum GLib version to the main CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ab141a..eff75de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,7 @@ set(TEXTOUT_WORD_LIST ON) set(QT3_MIN_VERSION "3.3.0") set(QT4_MIN_VERSION "4.4.0") set(CAIRO_VERSION "1.8.4") +set(GLIB_VERSION "2.18") macro_bool_to_01(ENABLE_SPLASH HAVE_SPLASH) find_package(Freetype REQUIRED) diff --git a/cmake/modules/FindGTK.cmake b/cmake/modules/FindGTK.cmake index 6d614ea..5dd7ea5 100644 --- a/cmake/modules/FindGTK.cmake +++ b/cmake/modules/FindGTK.cmake @@ -20,7 +20,7 @@ if (NOT WIN32) set (GLIB_FOUND FALSE) if (_LibGLIB2IncDir) - exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=2.18 glib-2.0 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull) + exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=${GLIB_VERSION} glib-2.0 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull) if(_return_VALUE STREQUAL "0") set(_glib_FOUND TRUE) endif(_return_VALUE STREQUAL "0") commit efdffba45d15b538dbfb294403e99f3a6470b4d9 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 16:58:27 2010 +0100 [CMake] align the GDK stuff (GDK_{FEATURE,REQ}) to what done with autotools diff --git a/CMakeLists.txt b/CMakeLists.txt index d76d31c..2ab141a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,11 @@ if(CAIRO_FOUND) set(CAIRO_REQ "cairo") macro_optional_find_package(GTK) if(GLIB_FOUND) - set(POPPLER_WITH_GDK ${GDK_FOUND}) + if(GDK_FOUND) + set(GDK_REQ "gdk-2.0 gdk-pixbuf-2.0") + set(POPPLER_WITH_GDK ${GDK_FOUND}) + set(GDK_FEATURE "#define POPPLER_WITH_GDK 1") + endif(GDK_FOUND) endif(GLIB_FOUND) else(CAIRO_FOUND) set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO") diff --git a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake index 90c8dea..b6659fa 100644 --- a/poppler-glib.pc.cmake +++ b/poppler-glib.pc.cmake @@ -6,7 +6,7 @@ includedir=${prefix}/include Name: poppler-glib Description: GLib wrapper for poppler Version: @POPPLER_VERSION@ -Requires: poppler-cairo = @POPPLER_VERSION@ gobject-2.0 gdk-2.0 gdk-pixbuf-2.0 +Requires: poppler-cairo = @POPPLER_VERSION@ gobject-2.0 @GDK_REQ@ @PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lpoppler-glib commit cfecc69b7f05920f543ee7e9aafeafaa4c3506fb Author: Pino Toscano <[email protected]> Date: Sun Mar 7 16:49:14 2010 +0100 [CMake] apparently there's not a minimum version requirement for GDK, so drop the check diff --git a/cmake/modules/FindGTK.cmake b/cmake/modules/FindGTK.cmake index 0ec29f0..6d614ea 100644 --- a/cmake/modules/FindGTK.cmake +++ b/cmake/modules/FindGTK.cmake @@ -27,10 +27,7 @@ if (NOT WIN32) endif (_LibGLIB2IncDir) if (_LibGDK2IncDir) - exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=2.14 gdk-2.0 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull) - if(_return_VALUE STREQUAL "0") - set(_gdk_FOUND TRUE) - endif(_return_VALUE STREQUAL "0") + set(_gdk_FOUND TRUE) endif (_LibGDK2IncDir) if (_glib_FOUND) commit 8ff1cf03d2607b0f13bbbbf272f2b03d8927bd24 Author: Pino Toscano <[email protected]> Date: Sun Mar 7 16:47:21 2010 +0100 [CMake] first look for Cairo, then for GLib/GDK/GTK this starts to align to the searches done with autotools also, move the CAIRO_FEATURE to the main CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a96484..d76d31c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,15 +79,18 @@ if(JPEG_FOUND) endif(JPEG_FOUND) macro_optional_find_package(Qt3) macro_optional_find_package(Qt4) -macro_optional_find_package(GTK) -if(GLIB_FOUND) - macro_optional_find_package(Cairo ${CAIRO_VERSION}) +macro_optional_find_package(Cairo ${CAIRO_VERSION}) +if(CAIRO_FOUND) set(HAVE_CAIRO ${CAIRO_FOUND}) - set(POPPLER_WITH_GDK ${GDK_FOUND}) - if(CAIRO_FOUND) - set(CAIRO_REQ "cairo") - endif(CAIRO_FOUND) -endif(GLIB_FOUND) + set(CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1") + set(CAIRO_REQ "cairo") + macro_optional_find_package(GTK) + if(GLIB_FOUND) + set(POPPLER_WITH_GDK ${GDK_FOUND}) + endif(GLIB_FOUND) +else(CAIRO_FOUND) + set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO") +endif(CAIRO_FOUND) if(ENABLE_CPP) macro_optional_find_package(Iconv) set(ENABLE_CPP ${ICONV_FOUND}) diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt index 3761c6f..39fbbaf 100644 --- a/glib/CMakeLists.txt +++ b/glib/CMakeLists.txt @@ -5,7 +5,6 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CAIRO_INCLUDE_DIRS} ) -set (CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1") add_definitions(${CAIRO_CFLAGS}) if (GDK_FOUND) commit bcaf62b8e252594530d3050761ba563cf3b1fb6e Author: Pino Toscano <[email protected]> Date: Sun Mar 7 16:00:03 2010 +0100 [CMake] enhance/rewrite a bit the FindCairo module make use of some features of CMake 2.6 (as we require it): - newer pkg-config handling (aka pkg_check_modules()) - version checking for modules (PACKAGE_FIND_VERSION*) - find_package_handle_standard_args() also, after the pkg-config search to win32, search for cairo again (double-check plus real search for win32) furthermore, introduce CAIRO_INCLUDE_DIRS with the include paths requires (kind of "obsoletes" CAIRO_CFLAGS, left there in case it is used again) apply the changes to the rest of the build system (specify the version needed, use the correct variable for includes) diff --git a/CMakeLists.txt b/CMakeLists.txt index 18366a6..9a96484 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,7 @@ macro_optional_find_package(Qt3) macro_optional_find_package(Qt4) macro_optional_find_package(GTK) if(GLIB_FOUND) - macro_optional_find_package(Cairo) + macro_optional_find_package(Cairo ${CAIRO_VERSION}) set(HAVE_CAIRO ${CAIRO_FOUND}) set(POPPLER_WITH_GDK ${GDK_FOUND}) if(CAIRO_FOUND) diff --git a/cmake/modules/FindCairo.cmake b/cmake/modules/FindCairo.cmake index a0a8400..e3b65ec 100644 --- a/cmake/modules/FindCairo.cmake +++ b/cmake/modules/FindCairo.cmake @@ -3,42 +3,60 @@ # # CAIRO_FOUND - system has Cairo # CAIRO_CFLAGS - the Cairo CFlags +# CAIRO_INCLUDE_DIRS - the Cairo include directories # CAIRO_LIBRARIES - Link these to use Cairo # -# Copyright (c) 2007, Pino Toscano, <[email protected]> +# Copyright (C) 2007, 2010, Pino Toscano, <[email protected]> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -if (NOT WIN32) - include(UsePkgConfig) - - pkgconfig(cairo _LibCairoIncDir _LibCairoLinkDir _CairoLinkFlags _CairoCflags) - set (CAIRO_FOUND FALSE) - if (_LibCairoIncDir) +if(CAIRO_INCLUDE_DIRS AND CAIRO_LIBRARIES) + + # in cache already + set(CAIRO_FOUND TRUE) + +else(CAIRO_INCLUDE_DIRS AND CAIRO_LIBRARIES) + +if(NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + include(FindPkgConfig) + if(PACKAGE_FIND_VERSION_COUNT GREATER 0) + set(_cairo_version_cmp ">=${PACKAGE_FIND_VERSION}") + endif(PACKAGE_FIND_VERSION_COUNT GREATER 0) + pkg_check_modules(_pc_cairo cairo${_cairo_version_cmp}) + if(_pc_cairo_FOUND) + set(CAIRO_FOUND TRUE) + endif(_pc_cairo_FOUND) +else(NOT WIN32) + # assume so, for now + set(CAIRO_FOUND TRUE) +endif(NOT WIN32) - if (CAIRO_VERSION) +if(CAIRO_FOUND) + # set it back as false + set(CAIRO_FOUND FALSE) - exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=${CAIRO_VERSION} cairo RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull) - if(_return_VALUE STREQUAL "0") - set (CAIRO_CFLAGS ${_CairoCflags}) - set (CAIRO_LIBRARIES ${_CairoLinkFlags}) - endif(_return_VALUE STREQUAL "0") + find_library(CAIRO_LIBRARY cairo + HINTS ${_pc_cairo_LIBRARY_DIRS} + ) + set(CAIRO_LIBRARIES "${CAIRO_LIBRARY}") - else (CAIRO_VERSION) - set (CAIRO_CFLAGS ${_CairoCflags}) - set (CAIRO_LIBRARIES ${_CairoLinkFlags}) - endif (CAIRO_VERSION) + find_path(CAIRO_INCLUDE_DIR cairo.h + HINTS ${_pc_cairo_INCLUDE_DIRS} + PATH_SUFFIXES cairo + ) + set(CAIRO_INCLUDE_DIRS "${CAIRO_INCLUDE_DIR}") - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Cairo DEFAULT_MSG CAIRO_LIBRARIES CAIRO_CFLAGS) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Cairo DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) +endif(CAIRO_FOUND) - endif (_LibCairoIncDir) - -endif(NOT WIN32) +endif(CAIRO_INCLUDE_DIRS AND CAIRO_LIBRARIES) mark_as_advanced( CAIRO_CFLAGS + CAIRO_INCLUDE_DIRS CAIRO_LIBRARIES ) - diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt index 3290377..3761c6f 100644 --- a/glib/CMakeLists.txt +++ b/glib/CMakeLists.txt @@ -3,8 +3,8 @@ add_definitions(-DG_LOG_DOMAIN=\"Poppler\" ${GLIB2_CFLAGS}) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} + ${CAIRO_INCLUDE_DIRS} ) -include_directories(${CAIRO_INCLUDES}) set (CAIRO_FEATURE "#define POPPLER_HAS_CAIRO 1") add_definitions(${CAIRO_CFLAGS}) _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
