Skip to content

Commit 2706cb7

Browse files
author
Tor Didriksen
committed
Bug #34689226 Add an argument WIN_DEF_FILE to MYSQL_ADD_PLUGIN
Several plugins have linker options "/DEF:xxxx", wrapped in IF(WIN32). Extend the MYSQL_ADD_PLUGIN macro to handle the option. Change-Id: I6ea4f55f3edb21dcea3680dd210bc577f671cd41
1 parent 30ae364 commit 2706cb7

File tree

4 files changed

+15
-26
lines changed

4 files changed

+15
-26
lines changed

cmake/plugin.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
3838
)
3939
SET(PLUGIN_ONE_VALUE_KW
4040
MODULE_OUTPUT_NAME
41+
WIN_DEF_FILE
4142
)
4243
SET(PLUGIN_MULTI_VALUE_KW
4344
DEPENDENCIES # target1 ... targetN
@@ -275,6 +276,10 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg)
275276
TARGET_LINK_LIBRARIES (${target} ${ARG_LINK_LIBRARIES})
276277
ENDIF()
277278

279+
IF(BUILD_PLUGIN AND WIN32 AND ARG_WIN_DEF_FILE)
280+
MY_TARGET_LINK_OPTIONS(${target} "/DEF:${ARG_WIN_DEF_FILE}")
281+
ENDIF()
282+
278283
IF(BUILD_PLUGIN AND ARG_VISIBILITY_HIDDEN AND UNIX)
279284
TARGET_COMPILE_OPTIONS(${target} PRIVATE "-fvisibility=hidden")
280285
ENDIF()

plugin/rewriter/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ MYSQL_ADD_PLUGIN(rewriter
2828
services.cc
2929
MODULE_ONLY
3030
MODULE_OUTPUT_NAME "rewriter"
31+
WIN_DEF_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rewriter_udf.def"
3132
)
3233

3334
# MYSQL_ADD_PLUGIN may have decided not to build it.
@@ -38,17 +39,13 @@ ENDIF()
3839
ADD_DEFINITIONS(-DMYSQL_SERVER)
3940
ADD_DEFINITIONS(-DLOG_COMPONENT_TAG="Rewriter")
4041

42+
# We should use CMAKE_SHARED_LIBRARY_SUFFIX, but we do not use .dylib on Mac.
4143
IF(WIN32)
4244
SET(DYNLIB_EXTENSION "dll")
43-
MY_TARGET_LINK_OPTIONS(rewriter
44-
"/DEF:${CMAKE_CURRENT_SOURCE_DIR}/rewriter_udf.def"
45-
)
4645
ELSE()
4746
SET(DYNLIB_EXTENSION "so")
4847
ENDIF()
4948

50-
51-
5249
#
5350
# This installs all the scripts.
5451
#

plugin/test_service_sql_api/CMakeLists.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,9 @@ MYSQL_ADD_PLUGIN(test_session_attach
6060
MODULE_ONLY
6161
MODULE_OUTPUT_NAME "libtest_session_attach"
6262
TEST_ONLY
63+
WIN_DEF_FILE "${CMAKE_CURRENT_SOURCE_DIR}/test_session_attach.def"
6364
)
6465

65-
# MYSQL_ADD_PLUGIN may have decided not to build it.
66-
IF(WIN32 AND TARGET test_session_attach)
67-
MY_TARGET_LINK_OPTIONS(test_session_attach
68-
"/DEF:${CMAKE_CURRENT_SOURCE_DIR}/test_session_attach.def"
69-
)
70-
ENDIF()
71-
7266
# Test SQL API
7367
MYSQL_ADD_PLUGIN(test_sql_complex
7468
test_sql_complex.cc

sql/CMakeLists.txt

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,24 +1396,17 @@ ADD_DEPENDENCIES(clang_tidy_prerequisites
13961396
)
13971397

13981398
MYSQL_ADD_PLUGIN(udf_example udf_example.cc
1399-
MODULE_ONLY TEST_ONLY MODULE_OUTPUT_NAME "udf_example"
1399+
MODULE_ONLY
1400+
TEST_ONLY
1401+
MODULE_OUTPUT_NAME "udf_example"
1402+
WIN_DEF_FILE "${CMAKE_CURRENT_SOURCE_DIR}/udf_example.def"
14001403
)
1401-
# MYSQL_ADD_PLUGIN may have decided not to build it.
1402-
IF(WIN32 AND TARGET udf_example)
1403-
SET_TARGET_PROPERTIES(udf_example
1404-
PROPERTIES LINK_FLAGS
1405-
"/DEF:${CMAKE_CURRENT_SOURCE_DIR}/udf_example.def")
1406-
ENDIF()
14071404

14081405
MYSQL_ADD_PLUGIN(locking_service locking_service_udf.cc
1409-
MODULE_ONLY MODULE_OUTPUT_NAME "locking_service"
1406+
MODULE_ONLY
1407+
MODULE_OUTPUT_NAME "locking_service"
1408+
WIN_DEF_FILE "${CMAKE_CURRENT_SOURCE_DIR}/locking_service.def"
14101409
)
1411-
# MYSQL_ADD_PLUGIN may have decided not to build it.
1412-
IF(WIN32 AND TARGET locking_service)
1413-
SET_TARGET_PROPERTIES(locking_service
1414-
PROPERTIES LINK_FLAGS
1415-
"/DEF:${CMAKE_CURRENT_SOURCE_DIR}/locking_service.def")
1416-
ENDIF()
14171410

14181411
FOREACH(tool gtar tar git)
14191412
STRING(TOUPPER ${tool} TOOL)

0 commit comments

Comments
 (0)