Title: [280461] trunk
- Revision
- 280461
- Author
- ape...@igalia.com
- Date
- 2021-07-29 18:44:51 -0700 (Thu, 29 Jul 2021)
Log Message
[CMake] Fix missing libgpg-error not added to link commands as libgcrypt dep after r280423
https://bugs.webkit.org/show_bug.cgi?id=228581
Reviewed by Carlos Alberto Lopez Perez.
* Source/cmake/FindLibGcrypt.cmake: Manually search for libgpg-error, which is not listed
in libgcrypt.pc as a dependency, add an imported target for it, and add it as a dependency
of LibGcrypt::LibGcrypt to avoid missing symbols at link time.
Modified Paths
Diff
Modified: trunk/ChangeLog (280460 => 280461)
--- trunk/ChangeLog 2021-07-30 01:36:31 UTC (rev 280460)
+++ trunk/ChangeLog 2021-07-30 01:44:51 UTC (rev 280461)
@@ -1,5 +1,16 @@
2021-07-29 Adrian Perez de Castro <ape...@igalia.com>
+ [CMake] Fix missing libgpg-error not added to link commands as libgcrypt dep after r280423
+ https://bugs.webkit.org/show_bug.cgi?id=228581
+
+ Reviewed by Carlos Alberto Lopez Perez.
+
+ * Source/cmake/FindLibGcrypt.cmake: Manually search for libgpg-error, which is not listed
+ in libgcrypt.pc as a dependency, add an imported target for it, and add it as a dependency
+ of LibGcrypt::LibGcrypt to avoid missing symbols at link time.
+
+2021-07-29 Adrian Perez de Castro <ape...@igalia.com>
+
[CMake] Use an imported target for the libgcrypt library
https://bugs.webkit.org/show_bug.cgi?id=228581
Modified: trunk/Source/cmake/FindLibGcrypt.cmake (280460 => 280461)
--- trunk/Source/cmake/FindLibGcrypt.cmake 2021-07-30 01:36:31 UTC (rev 280460)
+++ trunk/Source/cmake/FindLibGcrypt.cmake 2021-07-30 01:44:51 UTC (rev 280461)
@@ -41,8 +41,11 @@
find_package(PkgConfig QUIET)
find_program(LIBGCRYPTCONFIG_SCRIPT NAMES libgcrypt-config)
if (PkgConfig_FOUND)
+ # XXX: The libgcrypt.pc file does not list gpg-error as a dependency,
+ # resulting in linking errors; search for the latter as well.
pkg_check_modules(PC_GCRYPT QUIET libgcrypt)
- set(LibGcrypt_COMPILE_OPTIONS ${PC_GCRYPT_CFLAGS_OTHER})
+ pkg_check_modules(PC_GPGERROR QUIET gpg-error)
+ set(LibGcrypt_COMPILE_OPTIONS ${PC_GCRYPT_CFLAGS_OTHER} ${PC_GPGERROR_CFLAGS_OTHER})
set(LibGcrypt_VERSION ${PC_GCRYPT_VERSION})
elseif (LIBGCRYPTCONFIG_SCRIPT)
execute_process(
@@ -67,7 +70,7 @@
endif ()
execute_process(
- COMMAND "${LIBGCRYPTCONFIG_SCRIPT}" --cflags
+ COMMAND "${LIBGCRYPTCONFIG_SCRIPT}" --version
RESULT_VARIABLE CONFIGSCRIPT_RESULT
OUTPUT_VARIABLE CONFIGSCRIPT_VALUE
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -77,6 +80,19 @@
endif ()
endif ()
+find_path(LibGcrypt_GpgError_INCLUDE_DIR
+ NAMES gpg-error.h
+ HINTS ${PC_GPGERROR_INCLUDEDIR} ${PC_GPGERROR_INCLUDE_DIRS}
+ ${PC_GCRYPT_INCLUDEDIR} ${PC_GCRYPT_INCLUDE_DIRS}
+ ${LIBGCRYPT_SCRIPT_INCLUDE_HINT} ${LibGcrypt_INCLUDE_DIR}
+)
+
+find_library(LibGcrypt_GpgError_LIBRARY
+ NAMES ${LibGcrypt_GpgError_NAMES} gpg-error libgpg-error
+ HINTS ${PC_GPGERROR_LIBDIR} ${PC_GPGERROR_LIBRARY_DIRS}
+ ${PC_GCRYPT_LIBDIR} ${PC_GCRYPT_LIBRARY_DIRS} ${LIBGCRYPT_SCRIPT_LIB_HINT}
+)
+
find_path(LibGcrypt_INCLUDE_DIR
NAMES gcrypt.h
HINTS ${PC_GCRYPT_INCLUDEDIR} ${PC_GCRYPT_INCLUDE_DIRS}
@@ -97,9 +113,18 @@
find_package_handle_standard_args(LibGcrypt
FOUND_VAR LibGcrypt_FOUND
REQUIRED_VARS LibGcrypt_LIBRARY LibGcrypt_INCLUDE_DIR
+ LibGcrypt_GpgError_LIBRARY LibGcrypt_GpgError_INCLUDE_DIR
VERSION_VAR LibGcrypt_VERSION
)
+if (LibGcrypt_GpgError_LIBRARY AND NOT TARGET LibGcrypt::GpgError)
+ add_library(LibGcrypt::GpgError UNKNOWN IMPORTED GLOBAL)
+ set_target_properties(LibGcrypt::GpgError PROPERTIES
+ IMPORTED_LOCATION "${LibGcrypt_GpgError_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LibGcrypt_GpgError_INCLUDE_DIR}"
+ )
+endif ()
+
if (LibGcrypt_LIBRARY AND NOT TARGET LibGcrypt::LibGcrypt)
add_library(LibGcrypt::LibGcrypt UNKNOWN IMPORTED GLOBAL)
set_target_properties(LibGcrypt::LibGcrypt PROPERTIES
@@ -107,11 +132,13 @@
INTERFACE_COMPILE_OPTIONS "${LibGcrypt_COMPILE_OPTIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${LibGcrypt_INCLUDE_DIR}"
)
+ target_link_libraries(LibGcrypt::LibGcrypt INTERFACE LibGcrypt::GpgError)
endif ()
-mark_as_advanced(LibGcrypt_INCLUDE_DIR LibGcrypt_LIBRARY)
+mark_as_advanced(LibGcrypt_INCLUDE_DIR LibGcrypt_LIBRARY
+ LibGcrypt_GpgError_INCLUDE_DIR LibGcrypt_GpgError_LIBRARY)
if (LibGcrypt_FOUND)
- set(LibGcrypt_LIBRARIES ${LibGcrypt_LIBRARY})
- set(LibGcrypt_INCLUDE_DIRS ${LibGcrypt_INCLUDE_DIR})
+ set(LibGcrypt_LIBRARIES ${LibGcrypt_LIBRARY} ${LibGcrypt_GpgError_LIBRARY})
+ set(LibGcrypt_INCLUDE_DIRS ${LibGcrypt_INCLUDE_DIR} ${LibGcrypt_GpgError_INCLUDE_DIR})
endif ()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes