Skip to content

Commit 3e1207d

Browse files
committed
Fix Windows libmysqlclient dynamic linking
1 parent 5497293 commit 3e1207d

File tree

1 file changed

+55
-12
lines changed

1 file changed

+55
-12
lines changed

cmake/DepFindMySQL.cmake

Lines changed: 55 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -165,17 +165,46 @@ function(main)
165165
NO_DEFAULT_PATH
166166
)
167167

168-
find_library(MYSQL_DLL
169-
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
170-
PATHS ${MYSQL_LIB_DIR}
171-
NO_DEFAULT_PATH
172-
)
168+
if(NOT WIN32)
173169

174-
find_library(MYSQL_DLL_DEBUG
175-
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
176-
PATHS "${MYSQL_LIB_DIR}/debug"
177-
NO_DEFAULT_PATH
178-
)
170+
find_library(MYSQL_DLL
171+
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
172+
PATHS ${MYSQL_LIB_DIR}
173+
NO_DEFAULT_PATH
174+
)
175+
176+
find_library(MYSQL_DLL_DEBUG
177+
NAMES ${CMAKE_DYNAMIC_LIBRARY_PREFIX}mysqlclient${CMAKE_DYNAMIC_LIBRARY_SUFFIX}
178+
PATHS "${MYSQL_LIB_DIR}/debug"
179+
NO_DEFAULT_PATH
180+
)
181+
182+
else() #WIN32
183+
184+
find_library(MYSQL_DLL
185+
NAMES libmysql
186+
PATHS ${MYSQL_LIB_DIR}
187+
NO_DEFAULT_PATH
188+
)
189+
190+
find_library(MYSQL_DLL_DEBUG
191+
NAMES libmysql
192+
PATHS "${MYSQL_LIB_DIR}/debug"
193+
NO_DEFAULT_PATH
194+
)
195+
196+
find_library(MYSQL_DLL_IMP
197+
NAMES libmysql.lib
198+
PATHS ${MYSQL_LIB_DIR}
199+
NO_DEFAULT_PATH
200+
)
201+
202+
find_library(MYSQL_DLL_IMP_DEBUG
203+
NAMES libmysql.lib
204+
PATHS "${MYSQL_LIB_DIR}/debug"
205+
NO_DEFAULT_PATH
206+
)
207+
endif()
179208

180209
#message("-- static lib: ${MYSQL_LIB}")
181210
#message("-- debug lib: ${MYSQL_LIB_DEBUG}")
@@ -229,6 +258,18 @@ function(main)
229258
IMPORTED_LOCATION_DEBUG "${MYSQL_DLL_DEBUG}"
230259
)
231260

261+
if (WIN32)
262+
if(MYSQL_DLL_IMP)
263+
set_target_properties(MySQL::client-shared PROPERTIES
264+
IMPORTED_IMPLIB "${MYSQL_DLL_IMP}")
265+
endif()
266+
if(MYSQL_DLL_IMP_DEBUG)
267+
set_target_properties(MySQL::client-shared PROPERTIES
268+
IMPORTED_IMPLIB_DEBUG "${MYSQL_DLL_IMP_DEBUG}")
269+
endif()
270+
endif()
271+
272+
232273
# Define alias MySQL::client pointing to -static or -shared library,
233274
# depending on MYSQL_LIB_STATIC setting.
234275
#
@@ -278,8 +319,10 @@ function(main)
278319
get_dependencies()
279320

280321
message(" version: ${MYSQL_VERSION}")
281-
message(" include path: ${MYSQL_INCLUDE_DIR}")
282-
message(" library location: ${MYSQL_LIB}")
322+
get_target_property(dummy MySQL::client-shared INTERFACE_INCLUDE_DIRECTORIES)
323+
message(" include path: ${dummy}")
324+
get_target_property(dummy MySQL::client-shared IMPORTED_LOCATION)
325+
message(" library location: ${dummy}")
283326

284327
# Using INTERFACE_LINK_LIBRARIES we ensure that -L option will appear
285328
# in the link line of the consumer of this library. Adding this -L option

0 commit comments

Comments
 (0)