Skip to content

Commit 16089e5

Browse files
author
Tor Didriksen
committed
Bug#36850490 Get rid of the homegrown cmake function MY_TARGET_LINK_OPTIONS
Get rid of the homegrown cmake function MY_TARGET_LINK_OPTIONS. Use the cmake builtin function TARGET_LINK_OPTIONS, which was introduced in cmake 3.13 Change-Id: I9c7e4b97eaa1e25f963bfb3bc46a8a7d9a9912c1
1 parent 1614284 commit 16089e5

File tree

18 files changed

+52
-113
lines changed

18 files changed

+52
-113
lines changed

CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -746,7 +746,6 @@ INCLUDE(CMakePushCheckState)
746746
INCLUDE(add_custom_target)
747747
INCLUDE(pkg-config)
748748
INCLUDE(character_sets)
749-
INCLUDE(link_options)
750749
INCLUDE(malloc_utils)
751750
INCLUDE(cpu_info)
752751
INCLUDE(fileutils)
@@ -2313,16 +2312,16 @@ IF(NOT WITHOUT_SERVER AND WITH_UNIT_TESTS)
23132312
# and several other boost files.
23142313
MY_CHECK_CXX_COMPILER_WARNING("error=maybe-uninitialized" HAS_WARN_FLAG)
23152314
IF(HAS_WARN_FLAG)
2316-
MY_TARGET_LINK_OPTIONS(server_unittest_library "${HAS_WARN_FLAG}")
2315+
TARGET_LINK_OPTIONS(server_unittest_library PRIVATE ${HAS_WARN_FLAG})
23172316
ENDIF()
23182317
# The mold linker and RelWithDebInfo build complains about
23192318
# the new expression in Rpl_info_values::init()
2319+
# We get stringop warnings in functions generated by protobuf.
23202320
IF(MY_COMPILER_IS_GNU)
2321-
MY_TARGET_LINK_OPTIONS(server_unittest_library
2322-
"-Wno-alloc-size-larger-than")
2323-
# In functions generated by protobuf:
2324-
MY_TARGET_LINK_OPTIONS(server_unittest_library
2325-
"-Wno-stringop-overflow")
2321+
TARGET_LINK_OPTIONS(server_unittest_library PRIVATE
2322+
-Wno-alloc-size-larger-than
2323+
-Wno-stringop-overflow
2324+
)
23262325
ENDIF()
23272326
ENDIF()
23282327
ELSE()

client/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ MYSQL_ADD_EXECUTABLE(mysqlbinlog
272272
IF((WITH_LTO OR CMAKE_COMPILER_FLAG_WITH_LTO) AND
273273
MY_COMPILER_IS_GNU AND
274274
CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 11)
275-
MY_TARGET_LINK_OPTIONS(mysqlbinlog "-Wno-stringop-truncation")
275+
TARGET_LINK_OPTIONS(mysqlbinlog PRIVATE -Wno-stringop-truncation)
276276
ENDIF()
277277

278278
IF(WITH_JSON_BINLOG_LIBRARY)

cmake/component.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ MACRO(MYSQL_ADD_COMPONENT component_arg)
7878

7979
TARGET_COMPILE_DEFINITIONS(${target} PUBLIC MYSQL_COMPONENT)
8080
IF(COMPRESS_DEBUG_SECTIONS)
81-
MY_TARGET_LINK_OPTIONS(${target}
82-
"LINKER:--compress-debug-sections=zlib")
81+
TARGET_LINK_OPTIONS(${target} PRIVATE LINKER:--compress-debug-sections=zlib)
8382
ENDIF()
8483

8584
IF(ARG_LINK_LIBRARIES)

cmake/libutils.cmake

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,9 @@ MACRO(MERGE_LIBRARIES_SHARED TARGET_ARG)
294294
# --Wl,--no-whole-archive, but is more focused.
295295
FOREACH(SYMBOL ${ARG_EXPORTS})
296296
IF(APPLE)
297-
SET(export_link_flags "${export_link_flags} -Wl,-u,_${SYMBOL}")
297+
LIST(APPEND export_link_flags "-Wl,-u,_${SYMBOL}")
298298
ELSE()
299-
SET(export_link_flags "${export_link_flags} -Wl,-u,${SYMBOL}")
299+
LIST(APPEND export_link_flags "-Wl,-u,${SYMBOL}")
300300
ENDIF()
301301
ENDFOREACH()
302302
ENDIF()
@@ -360,7 +360,7 @@ MACRO(MERGE_LIBRARIES_SHARED TARGET_ARG)
360360
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES MACOSX_RPATH ON)
361361
ENDIF()
362362

363-
MY_TARGET_LINK_OPTIONS(${TARGET} "${export_link_flags}")
363+
TARGET_LINK_OPTIONS(${TARGET} PRIVATE ${export_link_flags})
364364

365365
IF(APPLE_WITH_CUSTOM_SSL)
366366
SET_PATH_TO_CUSTOM_SSL_FOR_APPLE(${TARGET})
@@ -627,7 +627,7 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
627627
ENDIF()
628628

629629
IF(ARG_NO_UNDEFINED AND LINK_FLAG_NO_UNDEFINED)
630-
MY_TARGET_LINK_OPTIONS(${TARGET} "${LINK_FLAG_NO_UNDEFINED}")
630+
TARGET_LINK_OPTIONS(${TARGET} PRIVATE ${LINK_FLAG_NO_UNDEFINED})
631631
ENDIF()
632632

633633
IF(NOT ARG_SKIP_INSTALL)
@@ -673,8 +673,8 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
673673
ENDIF()
674674

675675
IF(LINUX AND ARG_LINUX_VERSION_SCRIPT)
676-
MY_TARGET_LINK_OPTIONS(${TARGET}
677-
"LINKER:--version-script=${ARG_LINUX_VERSION_SCRIPT}")
676+
TARGET_LINK_OPTIONS(${TARGET} PRIVATE
677+
LINKER:--version-script=${ARG_LINUX_VERSION_SCRIPT})
678678
SET_TARGET_PROPERTIES(${TARGET}
679679
PROPERTIES LINK_DEPENDS ${ARG_LINUX_VERSION_SCRIPT}
680680
)
@@ -685,7 +685,7 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
685685
# Bug in cmake Visual Studio generator:
686686
# https://gitlab.kitware.com/cmake/cmake/-/issues/19618
687687
IF(WIN32 AND CMAKE_GENERATOR MATCHES "Visual Studio")
688-
MY_TARGET_LINK_OPTIONS(${TARGET} "/VERSION:${ARG_VERSION}")
688+
TARGET_LINK_OPTIONS(${TARGET} PRIVATE /VERSION:${ARG_VERSION})
689689
ENDIF()
690690
ENDIF()
691691

@@ -698,7 +698,7 @@ FUNCTION(ADD_SHARED_LIBRARY TARGET_ARG)
698698
"${RUNTIME_DIR}/${CMAKE_CFG_INTDIR}/$<TARGET_FILE_NAME:${TARGET}>"
699699
)
700700
IF(ARG_WIN_DEF_FILE)
701-
MY_TARGET_LINK_OPTIONS(${TARGET} "/DEF:${ARG_WIN_DEF_FILE}")
701+
TARGET_LINK_OPTIONS(${TARGET} PRIVATE /DEF:${ARG_WIN_DEF_FILE})
702702
ENDIF()
703703
ENDIF()
704704

cmake/link_options.cmake

Lines changed: 0 additions & 59 deletions
This file was deleted.

cmake/mysql_add_executable.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ FUNCTION(MYSQL_ADD_EXECUTABLE target_arg)
177177
ENDIF()
178178
ENDIF()
179179
IF(ARG_LINK_OPTIONS)
180-
MY_TARGET_LINK_OPTIONS(${target} ${ARG_LINK_OPTIONS})
180+
TARGET_LINK_OPTIONS(${target} PRIVATE ${ARG_LINK_OPTIONS})
181181
ENDIF()
182182

183183
IF(ARG_EXCLUDE_FROM_PGO)
@@ -221,9 +221,9 @@ FUNCTION(MYSQL_ADD_EXECUTABLE target_arg)
221221
"${ASAN_LIB_DIR}/clang_rt.asan-x86_64.lib"
222222
"${ASAN_LIB_DIR}/clang_rt.asan_cxx-x86_64.lib"
223223
)
224-
MY_TARGET_LINK_OPTIONS(${target}
224+
TARGET_LINK_OPTIONS(${target} PRIVATE
225225
"/wholearchive:\"${ASAN_LIB_DIR}/clang_rt.asan-x86_64.lib\"")
226-
MY_TARGET_LINK_OPTIONS(${target}
226+
TARGET_LINK_OPTIONS(${target} PRIVATE
227227
"/wholearchive:\"${ASAN_LIB_DIR}/clang_rt.asan_cxx-x86_64.lib\"")
228228
ENDIF()
229229

@@ -236,12 +236,12 @@ FUNCTION(MYSQL_ADD_EXECUTABLE target_arg)
236236
ENDIF()
237237

238238
IF(COMPRESS_DEBUG_SECTIONS)
239-
MY_TARGET_LINK_OPTIONS(${target}
240-
"LINKER:--compress-debug-sections=zlib")
239+
TARGET_LINK_OPTIONS(${target} PRIVATE
240+
LINKER:--compress-debug-sections=zlib)
241241
ENDIF()
242242

243243
IF(HAVE_BUILD_ID_SUPPORT)
244-
MY_TARGET_LINK_OPTIONS(${target} "LINKER:--build-id=sha1")
244+
TARGET_LINK_OPTIONS(${target} PRIVATE LINKER:--build-id=sha1)
245245
ENDIF()
246246

247247
# tell CPack where to install

cmake/plugin.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
152152

153153
ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDENCIES})
154154
IF(COMPRESS_DEBUG_SECTIONS)
155-
MY_TARGET_LINK_OPTIONS(${target}
156-
"LINKER:--compress-debug-sections=zlib")
155+
TARGET_LINK_OPTIONS(${target} PRIVATE
156+
LINKER:--compress-debug-sections=zlib)
157157
ENDIF()
158158

159159
# Update mysqld dependencies
@@ -194,8 +194,8 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
194194
ADD_VERSION_INFO(${target} MODULE SOURCES "")
195195
ADD_LIBRARY(${target} MODULE ${SOURCES})
196196
IF(COMPRESS_DEBUG_SECTIONS)
197-
MY_TARGET_LINK_OPTIONS(${target}
198-
"LINKER:--compress-debug-sections=zlib")
197+
TARGET_LINK_OPTIONS(${target} PRIVATE
198+
LINKER:--compress-debug-sections=zlib)
199199
ENDIF()
200200
IF(ARG_SERVER_AND_CLIENT)
201201
SET_TARGET_PROPERTIES (${target} PROPERTIES
@@ -215,7 +215,7 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
215215
ENDIF()
216216

217217
IF(ARG_NO_UNDEFINED AND LINK_FLAG_NO_UNDEFINED)
218-
MY_TARGET_LINK_OPTIONS(${target} "${LINK_FLAG_NO_UNDEFINED}")
218+
TARGET_LINK_OPTIONS(${target} PRIVATE ${LINK_FLAG_NO_UNDEFINED})
219219
ENDIF()
220220

221221
IF(WIN32_CLANG AND WITH_ASAN)
@@ -315,7 +315,7 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
315315
ENDIF()
316316

317317
IF(BUILD_PLUGIN AND WIN32 AND ARG_WIN_DEF_FILE)
318-
MY_TARGET_LINK_OPTIONS(${target} "/DEF:${ARG_WIN_DEF_FILE}")
318+
TARGET_LINK_OPTIONS(${target} PRIVATE /DEF:${ARG_WIN_DEF_FILE})
319319
ENDIF()
320320

321321
IF(BUILD_PLUGIN AND ARG_VISIBILITY_HIDDEN AND UNIX)

libmysql/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE}
369369

370370
# Downgrade warning for strncat in my_crypt_genhash.
371371
IF((WITH_LTO OR CMAKE_COMPILER_FLAG_WITH_LTO) AND MY_COMPILER_IS_GNU)
372-
MY_TARGET_LINK_OPTIONS(libmysql "-Wno-error=stringop-truncation")
372+
TARGET_LINK_OPTIONS(libmysql PRIVATE -Wno-error=stringop-truncation)
373373
ENDIF()
374374

375375
IF(LINUX_STANDALONE AND KERBEROS_CUSTOM_LIBRARY)
@@ -379,13 +379,13 @@ ENDIF()
379379

380380
IF(UNIX)
381381
IF(LINK_FLAG_Z_DEFS)
382-
MY_TARGET_LINK_OPTIONS(libmysql "LINKER:${LINK_FLAG_Z_DEFS}")
382+
TARGET_LINK_OPTIONS(libmysql PRIVATE LINKER:${LINK_FLAG_Z_DEFS})
383383
ENDIF()
384384

385385
IF(LINUX)
386386
CONFIGURE_FILE(libmysql.ver.in ${CMAKE_CURRENT_BINARY_DIR}/libmysql.ver)
387-
MY_TARGET_LINK_OPTIONS(libmysql
388-
"LINKER:--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.ver")
387+
TARGET_LINK_OPTIONS(libmysql PRIVATE
388+
LINKER:--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.ver)
389389
ENDIF()
390390

391391
# clean direct output needs to be set several targets have the same name

libmysql/authentication_ldap/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ IF(KERBEROS_FOUND AND (NOT WIN32))
9898
${CMAKE_CURRENT_SOURCE_DIR}/authentication_ldap_sasl_client.ver)
9999
# Hide all symbols in mysys, to avoid ODR violations.
100100
# There is *one* visible symbol: _mysql_client_plugin_declaration_
101-
MY_TARGET_LINK_OPTIONS(authentication_ldap_sasl_client
102-
"LINKER:--version-script=${PLUGIN_VERSION_FILE}"
101+
TARGET_LINK_OPTIONS(authentication_ldap_sasl_client PRIVATE
102+
LINKER:--version-script=${PLUGIN_VERSION_FILE}
103103
)
104104
ENDIF()
105105

libmysql/authentication_oci_client/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ IF(LINUX OR SOLARIS)
5151
SET(PLUGIN_VERSION_FILE
5252
${CMAKE_CURRENT_SOURCE_DIR}/authentication_oci_client.ver)
5353
IF(SOLARIS)
54-
MY_TARGET_LINK_OPTIONS(authentication_oci_client
55-
"LINKER:-z,gnu-version-script-compat")
54+
TARGET_LINK_OPTIONS(authentication_oci_client PRIVATE
55+
LINKER:-z,gnu-version-script-compat)
5656
ENDIF()
5757
# hide all symbols in mysys, to avoid ODR violations.
5858
# There is *one* visible symbol: _mysql_client_plugin_declaration_
59-
MY_TARGET_LINK_OPTIONS(authentication_oci_client
60-
"LINKER:--version-script=${PLUGIN_VERSION_FILE}"
59+
TARGET_LINK_OPTIONS(authentication_oci_client PRIVATE
60+
LINKER:--version-script=${PLUGIN_VERSION_FILE}
6161
)
6262
SET_TARGET_PROPERTIES(authentication_oci_client
6363
PROPERTIES LINK_DEPENDS ${PLUGIN_VERSION_FILE})

0 commit comments

Comments
 (0)