Commit 3fe1e96e by Copybara-Service

Merge pull request #1341 from h-vetinari:pkgconfig

PiperOrigin-RevId: 495308617
Change-Id: Ic373a80908e513ce3cc4a9156d49aac8ebf89024
parents a13ef44b 14abd930
...@@ -602,6 +602,33 @@ function(absl_make_dll) ...@@ -602,6 +602,33 @@ function(absl_make_dll)
${ABSL_DEFAULT_COPTS} ${ABSL_DEFAULT_COPTS}
) )
foreach(cflag ${ABSL_CC_LIB_COPTS})
if(${cflag} MATCHES "^(-Wno|/wd)")
# These flags are needed to suppress warnings that might fire in our headers.
set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
elseif(${cflag} MATCHES "^(-W|/w[1234eo])")
# Don't impose our warnings on others.
else()
set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
endif()
endforeach()
string(REPLACE ";" " " PC_LINKOPTS "${ABSL_CC_LIB_LINKOPTS}")
FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/lib/pkgconfig/abseil_dll.pc" CONTENT "\
prefix=${CMAKE_INSTALL_PREFIX}\n\
exec_prefix=\${prefix}\n\
libdir=${CMAKE_INSTALL_FULL_LIBDIR}\n\
includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}\n\
\n\
Name: abseil_dll\n\
Description: Abseil DLL library\n\
URL: https://abseil.io/\n\
Version: ${absl_VERSION}\n\
Libs: -L\${libdir} ${PC_LINKOPTS} $<$<NOT:$<BOOL:${ABSL_CC_LIB_IS_INTERFACE}>>:-labseil_dll>\n\
Cflags: -I\${includedir}${PC_CFLAGS}\n")
INSTALL(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/abseil_dll.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
target_compile_definitions( target_compile_definitions(
abseil_dll abseil_dll
PRIVATE PRIVATE
......
...@@ -150,8 +150,7 @@ function(absl_cc_library) ...@@ -150,8 +150,7 @@ function(absl_cc_library)
endif() endif()
# Generate a pkg-config file for every library: # Generate a pkg-config file for every library:
if((_build_type STREQUAL "static" OR _build_type STREQUAL "shared") if(ABSL_ENABLE_INSTALL)
AND ABSL_ENABLE_INSTALL)
if(NOT ABSL_CC_LIB_TESTONLY) if(NOT ABSL_CC_LIB_TESTONLY)
if(absl_VERSION) if(absl_VERSION)
set(PC_VERSION "${absl_VERSION}") set(PC_VERSION "${absl_VERSION}")
...@@ -160,11 +159,28 @@ function(absl_cc_library) ...@@ -160,11 +159,28 @@ function(absl_cc_library)
endif() endif()
foreach(dep ${ABSL_CC_LIB_DEPS}) foreach(dep ${ABSL_CC_LIB_DEPS})
if(${dep} MATCHES "^absl::(.*)") if(${dep} MATCHES "^absl::(.*)")
# Join deps with commas. # for DLL builds many libs are not created, but add
if(PC_DEPS) # the pkgconfigs nevertheless, pointing to the dll.
set(PC_DEPS "${PC_DEPS},") if(_build_type STREQUAL "dll")
# hide this MATCHES in an if-clause so it doesn't overwrite
# the CMAKE_MATCH_1 from (${dep} MATCHES "^absl::(.*)")
if(NOT PC_DEPS MATCHES "abseil_dll")
# Join deps with commas.
if(PC_DEPS)
set(PC_DEPS "${PC_DEPS},")
endif()
# don't duplicate dll-dep if it exists already
set(PC_DEPS "${PC_DEPS} abseil_dll = ${PC_VERSION}")
set(LNK_LIB "${LNK_LIB} -labseil_dll")
endif()
else()
# Join deps with commas.
if(PC_DEPS)
set(PC_DEPS "${PC_DEPS},")
endif()
set(PC_DEPS "${PC_DEPS} absl_${CMAKE_MATCH_1} = ${PC_VERSION}")
set(LNK_LIB "${LNK_LIB} -labsl_${_NAME}")
endif() endif()
set(PC_DEPS "${PC_DEPS} absl_${CMAKE_MATCH_1} = ${PC_VERSION}")
endif() endif()
endforeach() endforeach()
foreach(cflag ${ABSL_CC_LIB_COPTS}) foreach(cflag ${ABSL_CC_LIB_COPTS})
...@@ -192,7 +208,7 @@ Description: Abseil ${_NAME} library\n\ ...@@ -192,7 +208,7 @@ Description: Abseil ${_NAME} library\n\
URL: https://abseil.io/\n\ URL: https://abseil.io/\n\
Version: ${PC_VERSION}\n\ Version: ${PC_VERSION}\n\
Requires:${PC_DEPS}\n\ Requires:${PC_DEPS}\n\
Libs: -L\${libdir} ${PC_LINKOPTS} $<$<NOT:$<BOOL:${ABSL_CC_LIB_IS_INTERFACE}>>:-labsl_${_NAME}>\n\ Libs: -L\${libdir} ${PC_LINKOPTS} $<$<NOT:$<BOOL:${ABSL_CC_LIB_IS_INTERFACE}>>:${LNK_LIB}>\n\
Cflags: -I\${includedir}${PC_CFLAGS}\n") Cflags: -I\${includedir}${PC_CFLAGS}\n")
INSTALL(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" INSTALL(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment