[poppler] 4 commits - CMakeLists.txt cmake/modules glib/CMakeLists.txt

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Oct 3 23:56:26 UTC 2020


 CMakeLists.txt                     |   17 ++++++++++++++++
 cmake/modules/FindFontconfig.cmake |    2 +
 cmake/modules/FindGLIB.cmake       |    2 -
 cmake/modules/FindGTK.cmake        |    2 +
 cmake/modules/FindIconv.cmake      |    4 +++
 glib/CMakeLists.txt                |   38 ++++++++++++++++++++++---------------
 6 files changed, 49 insertions(+), 16 deletions(-)

New commits:
commit 061bae27a04684bdb0a1b4a6c3a8adf7fddcb7db
Author: Kyle Auble <kyle.auble at outlook.com>
Date:   Fri Oct 2 23:41:09 2020 +0000

    cmake: Raise error level of missing gtk-doc deps

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b506cf8b..ee36242d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -206,16 +206,14 @@ if(ENABLE_GTK_DOC)
   # Disable gtk-doc generation & warn if the package is missing
   find_package(GtkDoc)
   if(NOT GtkDoc_FOUND)
-    message("-- Warning: Install the gtk-doc package to generate GTK API documentation")
-    set(ENABLE_GTK_DOC OFF)
+    message(FATAL_ERROR "Install the gtk-doc package to generate GTK API documentation")
   endif()
   # NOTE: These Find<...> modules are deprecated, but the newer FindPython3 module requires CMake >=3.12
   find_package(PythonInterp 3)
   find_package(PythonLibs 3)
   # Also disable gtk-doc generation & raise a warning if Python3 is missing
   if(NOT (PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND))
-    message("-- Warning: ENABLE_GTK_DOC requires a python3 interpreter and libraries.")
-    set(ENABLE_GTK_DOC OFF)
+    message(FATAL_ERROR "ENABLE_GTK_DOC requires a python3 interpreter and libraries.")
   endif()
 endif()
 
commit 327a7ce092397bc2ddb8a35eca52ab2b3f3bb858
Author: Kyle Auble <kyle.auble at outlook.com>
Date:   Fri Sep 4 15:07:36 2020 -0400

    cmake: Reorganize GObject introspection config
    
    * Fixes #958, separating scanner args enables warnings

diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
index 75402ccd..fd76b150 100644
--- a/glib/CMakeLists.txt
+++ b/glib/CMakeLists.txt
@@ -126,29 +126,37 @@ endmacro(_list_prefix)
 # GObject Introspection
 if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS)
   include(GObjectIntrospectionMacros)
+
+  # General gir: Reset object-list for introspection & load tool args
   set(INTROSPECTION_GIRS)
-  set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR} --warn-all")
+  set(INTROSPECTION_SCANNER_ARGS "--add-include-path=${CMAKE_CURRENT_SOURCE_DIR}" "--warn-all")
   set(INTROSPECTION_COMPILER_ARGS "--includedir=${CMAKE_CURRENT_SOURCE_DIR}")
 
-  set(introspection_files ${poppler_glib_SRCS} ${poppler_glib_public_headers})
+  # Poppler: Assign package to gir & export keys
   set(Poppler_0_18_gir "poppler-glib")
-  set(Poppler_0_18_gir_INCLUDES GObject-2.0 Gio-2.0 cairo-1.0)
+  set(Poppler_0_18_gir_EXPORT_PACKAGES "poppler-glib")
+  # Then load library and header lists
+  set(Poppler_0_18_gir_LIBS "poppler-glib" "poppler")
+  set(Poppler_0_18_gir_INCLUDES "GObject-2.0" "Gio-2.0" "cairo-1.0")
+
+  # Format list of include directories as compiler flags
   get_directory_property(_tmp_includes INCLUDE_DIRECTORIES)
   _list_prefix(_includes _tmp_includes "-I")
+  # And set flags for gir compiler and scanner
   set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR} -L${CMAKE_CURRENT_BINARY_DIR})
-  set(Poppler_0_18_gir_LIBS poppler-glib poppler)
-  _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/")
-  list(APPEND _abs_introspection_files
-    ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c
-    ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.h
-    ${CMAKE_CURRENT_BINARY_DIR}/poppler-features.h
-  )
-  set(Poppler_0_18_gir_FILES ${_abs_introspection_files})
-  set(Poppler_0_18_gir_SCANNERFLAGS --c-include poppler.h)
-  set(Poppler_0_18_gir_EXPORT_PACKAGES poppler-glib)
-
+  set(Poppler_0_18_gir_SCANNERFLAGS "--c-include=poppler.h")
+
+  # Load temporary source-file lists, including a few generated at build
+  set(orig_introspect_srcs ${poppler_glib_SRCS} ${poppler_glib_public_headers})
+  set(gen_introspect_srcs "poppler-enums.c" "poppler-enums.h" "poppler-features.h")
+  # Prefix the files with their correct directories for full paths
+  _list_prefix(_orig_introspect_paths orig_introspect_srcs "${CMAKE_CURRENT_SOURCE_DIR}/")
+  _list_prefix(_gen_introspect_paths gen_introspect_srcs "${CMAKE_CURRENT_BINARY_DIR}/")
+  # Now load them to the final file list
+  set(Poppler_0_18_gir_FILES ${_orig_introspect_paths} ${_gen_introspect_paths})
+
+  # Finally, load the list of objects for introspection & invoke macro
   list(APPEND INTROSPECTION_GIRS Poppler-0.18.gir)
-
   gir_add_introspections(INTROSPECTION_GIRS)
 endif ()
 
commit ff2130725ce43604323931cf8a365dad9ba93036
Author: Kyle Auble <kyle.auble at outlook.com>
Date:   Sun Sep 6 20:03:16 2020 -0400

    cmake: Add some checks for gtk-doc support
    
    * Fixes #956 (at least on Poppler's end)
    * Explicitly check for gtk-doc package also

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f035b8d..b506cf8b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -200,6 +200,25 @@ else()
   set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO")
   set(ENABLE_GLIB OFF)
 endif()
+
+# GTK API docs require both the gtk-doc package & python3 support
+if(ENABLE_GTK_DOC)
+  # Disable gtk-doc generation & warn if the package is missing
+  find_package(GtkDoc)
+  if(NOT GtkDoc_FOUND)
+    message("-- Warning: Install the gtk-doc package to generate GTK API documentation")
+    set(ENABLE_GTK_DOC OFF)
+  endif()
+  # NOTE: These Find<...> modules are deprecated, but the newer FindPython3 module requires CMake >=3.12
+  find_package(PythonInterp 3)
+  find_package(PythonLibs 3)
+  # Also disable gtk-doc generation & raise a warning if Python3 is missing
+  if(NOT (PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND))
+    message("-- Warning: ENABLE_GTK_DOC requires a python3 interpreter and libraries.")
+    set(ENABLE_GTK_DOC OFF)
+  endif()
+endif()
+
 if(ENABLE_CPP)
   macro_optional_find_package(Iconv)
   set(ENABLE_CPP ${ICONV_FOUND})
commit c5d85017f5cbc6487327d3de73fbab1c64b6af50
Author: Kyle Auble <kyle.auble at outlook.com>
Date:   Fri Sep 4 18:32:06 2020 -0400

    cmake: Note built-in Find<...> modules for later
    
    * See #955 for details
    * FindGLIB: Also fix minor case-sensitivity warning

diff --git a/cmake/modules/FindFontconfig.cmake b/cmake/modules/FindFontconfig.cmake
index 268a61ae..375bf7a0 100644
--- a/cmake/modules/FindFontconfig.cmake
+++ b/cmake/modules/FindFontconfig.cmake
@@ -11,6 +11,8 @@
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
+# NOTE: Once required cmake >=3.14, consider using built-in FindFontconfig
+#       See Poppler issue #955 for details
 
 if (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR)
 
diff --git a/cmake/modules/FindGLIB.cmake b/cmake/modules/FindGLIB.cmake
index 68efd347..d54ec4b4 100644
--- a/cmake/modules/FindGLIB.cmake
+++ b/cmake/modules/FindGLIB.cmake
@@ -21,4 +21,4 @@ else()
     pkg_check_modules(GLIB2 IMPORTED_TARGET "glib-2.0>=${GLIB_REQUIRED}" "gobject-2.0>=${GLIB_REQUIRED}" "gio-2.0>=${GLIB_REQUIRED}")
 endif()
 
-find_package_handle_standard_args(GLib DEFAULT_MSG GLIB2_LIBRARIES GLIB2_CFLAGS)
+find_package_handle_standard_args(GLIB DEFAULT_MSG GLIB2_LIBRARIES GLIB2_CFLAGS)
diff --git a/cmake/modules/FindGTK.cmake b/cmake/modules/FindGTK.cmake
index 86af910c..3cc78438 100644
--- a/cmake/modules/FindGTK.cmake
+++ b/cmake/modules/FindGTK.cmake
@@ -10,6 +10,8 @@
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
+# NOTE: As of cmake v3.18, built-in FindGTK is *only* valid for GTK1
+
 include(FindPackageHandleStandardArgs)
 
 find_package(PkgConfig REQUIRED)
diff --git a/cmake/modules/FindIconv.cmake b/cmake/modules/FindIconv.cmake
index 338d17d0..ab9ad563 100644
--- a/cmake/modules/FindIconv.cmake
+++ b/cmake/modules/FindIconv.cmake
@@ -6,6 +6,10 @@
 #  ICONV_LIBRARIES - Link these to use Iconv 
 #  ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
 # 
+
+# NOTE: Once required CMake >=3.11, consider using built-in FindIconv
+#       See Poppler issue #955 for details
+
 include(CheckCXXSourceCompiles)
 
 IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)


More information about the poppler mailing list