Skip to content

Commit

Permalink
fix libgd#303: gdlib.pc: use Requires instead of Libs (libgd#537)
Browse files Browse the repository at this point in the history
  • Loading branch information
willson-chen authored Jun 18, 2020
1 parent 93f4263 commit 28ecfe7
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 3 deletions.
12 changes: 12 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"Single Directory for all static libraries."
)

SET(PKG_REQUIRES_PRIVATES "")

if (USE_EXT_GD)
message("Using GD at: ${USE_EXT_GD}")
INCLUDE_DIRECTORIES(BEFORE ${GD_INCLUDE_DIR})
Expand Down Expand Up @@ -155,11 +157,13 @@ else (USE_EXT_GD)
INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
SET(HAVE_FT2BUILD_H 1)
SET(HAVE_LIBFREETYPE 1)
LIST(APPEND PKG_REQUIRES_PRIVATES freetype2)
ENDIF(FREETYPE_FOUND)

IF(ZLIB_FOUND)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
SET(HAVE_LIBZ 1)
LIST(APPEND PKG_REQUIRES_PRIVATES zlib)
ENDIF(ZLIB_FOUND)

IF(WEBP_FOUND)
Expand All @@ -170,6 +174,7 @@ else (USE_EXT_GD)
IF(PNG_FOUND)
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
SET(HAVE_LIBPNG 1)
LIST(APPEND PKG_REQUIRES_PRIVATES libpng)
ENDIF(PNG_FOUND)

IF(ICONV_FOUND)
Expand All @@ -186,21 +191,25 @@ else (USE_EXT_GD)
IF(XPM_FOUND)
INCLUDE_DIRECTORIES(${XPM_INCLUDE_DIR})
SET(HAVE_LIBXPM 1)
LIST(APPEND PKG_REQUIRES_PRIVATES xpm)
ENDIF(XPM_FOUND)

IF(JPEG_FOUND)
INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
SET(HAVE_LIBJPEG 1)
LIST(APPEND PKG_REQUIRES_PRIVATES libjpeg)
ENDIF(JPEG_FOUND)

IF(TIFF_FOUND)
INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
SET(HAVE_LIBTIFF 1)
LIST(APPEND PKG_REQUIRES_PRIVATES libtiff-4)
ENDIF(TIFF_FOUND)

IF(FONTCONFIG_FOUND)
INCLUDE_DIRECTORIES(${FONTCONFIG_INCLUDE_DIR})
SET(HAVE_LIBFONTCONFIG 1)
LIST(APPEND PKG_REQUIRES_PRIVATES fontconfig)
ELSE (FONTCONFIG_FOUND)
SET(FONTCONFIG_LIBRARY "")
SET(FONTCONFIG_INCLUDE_DIR "")
Expand All @@ -209,8 +218,11 @@ else (USE_EXT_GD)

IF(RAQM_FOUND)
INCLUDE_DIRECTORIES(${RAQM_INCLUDE_DIR})
SET(HAVE_RAQM 1)
LIST(APPEND PKG_REQUIRES_PRIVAES raqm)
ENDIF(RAQM_FOUND)

string(REPLACE ";" ", " PKG_REQUIRES_PRIVATES "${PKG_REQUIRES_PRIVATES}")
SET(HAVE_CONFIG_H 1)

ADD_DEFINITIONS(-DHAVE_CONFIG_H)
Expand Down
4 changes: 3 additions & 1 deletion config/gdlib.pc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: gd
Description: GD graphics library
Version: @GDLIB_VERSION@
Requires:
Requires.private: @PKG_REQUIRES_PRIVATES@
Cflags: -I${includedir}
Libs.private: @LIBGD_DEP_LIBS@
Libs.private: @LIBS_PRIVATES@
Libs: -L${libdir} -lgd
4 changes: 3 additions & 1 deletion config/gdlib.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ includedir=@includedir@
Name: gd
Description: GD graphics library
Version: @VERSION@
Requires:
Requires.private: @PKG_REQUIRES_PRIVATES@
Cflags: -I${includedir}
Libs.private: @LIBS@ @LIBICONV@
Libs.private: @LIBS_PRIVATES@ @LIBICONV@
Libs: -L${libdir} -lgd
11 changes: 10 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ AC_SUBST(GDLIB_LT_CURRENT)
AC_SUBST(GDLIB_LT_REVISION)
AC_SUBST(GDLIB_LT_AGE)

AC_SUBST(LIBS_PRIVATES)
AC_SUBST(PKG_REQUIRES_PRIVATES)

AM_INIT_AUTOMAKE([1.11 foreign dist-xz -Wall -Werror subdir-objects])
AC_CONFIG_HEADERS([src/config.h:src/config.hin])

Expand Down Expand Up @@ -130,6 +133,7 @@ m4_define([GD_LIB_CHECK], [dnl
AC_MSG_RESULT([$gd_with_lib])
gd_found_lib=no
gd_require_pkg_name=""
if test "$gd_with_lib" != "no"; then
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
Expand Down Expand Up @@ -161,6 +165,11 @@ m4_define([GD_LIB_CHECK], [dnl
$1][_CFLAGS="$gd_lib_cflags $][$1][_CFLAGS"
AS_VAR_APPEND([LIBS], [" $][$1][_LIBS"])
AS_VAR_APPEND([CPPFLAGS], [" $][$1][_CFLAGS"])
if test -z "$gd_require_pkg_name"; then
AS_VAR_APPEND([LIBS_PRIVATES], [" $][$1][_LIBS"])
else
AS_VAR_APPEND([PKG_REQUIRES_PRIVATES], [" $gd_require_pkg_name"])
fi
elif test "$gd_with_lib" = "yes"; then
AC_MSG_ERROR([$3 requested but not found])
else
Expand All @@ -180,7 +189,7 @@ dnl $4 - pkg-config module to look for
dnl $5 - fallback test for the feature
m4_define([GD_LIB_PKG_CHECK], [dnl
GD_LIB_CHECK([$1], [$2], [$3], [dnl
PKG_CHECK_MODULES([$1], [$4], [gd_found_lib=yes], [$5])
PKG_CHECK_MODULES([$1], [$4], [gd_found_lib=yes gd_require_pkg_name="$4"], [$5])
])
])

Expand Down
6 changes: 6 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,12 @@ if (BUILD_STATIC_LIBS)
target_link_libraries(${GD_LIB_STATIC} ${LIBGD_DEP_LIBS})
endif()

SET(LIBS_PRIVATES
${ICONV_LIBRARIES}
${LIQ_LIBRARIES}
${WEBP_LIBRARIES}
)

set(GD_PROGRAMS gdcmpgif)

if (PNG_FOUND)
Expand Down

0 comments on commit 28ecfe7

Please sign in to comment.