Skip to content

Commit 3274c85

Browse files
author
Mario1159
committed
Set ABSL_DEFAULT_LINKOPTS to private to avoid propagating into interface libs
1 parent c20be0a commit 3274c85

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

CMake/AbseilHelpers.cmake

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,13 @@ function(absl_cc_library)
207207
set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
208208
endif()
209209
endforeach()
210-
string(REPLACE ";" " " PC_LINKOPTS "${ABSL_CC_LIB_LINKOPTS}")
210+
# Remove ABSL_DEFAULT_LINKOPTS from ABSL_CC_LIB_LINKOPTS to prevent
211+
# duplication and exportation of linker-only flags.
212+
set(_ABSL_CC_LIB_LINKOPTS "${ABSL_CC_LIB_LINKOPTS}")
213+
foreach(_opt IN LISTS ABSL_DEFAULT_LINKOPTS)
214+
list(REMOVE_ITEM _ABSL_CC_LIB_LINKOPTS "${_opt}")
215+
endforeach()
216+
string(REPLACE ";" " " PC_LINKOPTS "${_ABSL_CC_LIB_LINKOPTS}")
211217
FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" CONTENT "\
212218
prefix=${CMAKE_INSTALL_PREFIX}\n\
213219
exec_prefix=\${prefix}\n\
@@ -238,10 +244,9 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
238244
)
239245
target_link_libraries(${_NAME}
240246
PUBLIC ${_dll_deps}
241-
PRIVATE
242-
${ABSL_CC_LIB_LINKOPTS}
243-
${ABSL_DEFAULT_LINKOPTS}
247+
PRIVATE ${_ABSL_CC_LIB_LINKOPTS}
244248
)
249+
target_link_options(${_NAME} PRIVATE ${ABSL_DEFAULT_LINKOPTS})
245250

246251
if (ABSL_CC_LIB_TESTONLY)
247252
set(_gtest_link_define "GTEST_LINKED_AS_SHARED_LIBRARY=1")
@@ -266,11 +271,10 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
266271
INSTALL_RPATH "$ORIGIN")
267272
endif()
268273
target_link_libraries(${_NAME}
269-
PUBLIC ${ABSL_CC_LIB_DEPS}
270-
PRIVATE
271-
${ABSL_CC_LIB_LINKOPTS}
272-
${ABSL_DEFAULT_LINKOPTS}
274+
PUBLIC ${ABSL_CC_LIB_DEPS}
275+
PRIVATE ${_ABSL_CC_LIB_LINKOPTS}
273276
)
277+
target_link_options(${_NAME} PRIVATE ${ABSL_DEFAULT_LINKOPTS})
274278
else()
275279
message(FATAL_ERROR "Invalid build type: ${_build_type}")
276280
endif()
@@ -337,8 +341,7 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n")
337341
target_link_libraries(${_NAME}
338342
INTERFACE
339343
${ABSL_CC_LIB_DEPS}
340-
${ABSL_CC_LIB_LINKOPTS}
341-
${ABSL_DEFAULT_LINKOPTS}
344+
${_ABSL_CC_LIB_LINKOPTS}
342345
)
343346
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
344347

0 commit comments

Comments
 (0)