Skip to content

Commit fbc0ea0

Browse files
committed
Fix FreeBSD 13 build
- Add libs search path from mysql_config - Do not filter needed libs
1 parent 82b2e47 commit fbc0ea0

File tree

1 file changed

+46
-7
lines changed

1 file changed

+46
-7
lines changed

cmake/DepFindMySQL.cmake

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
# MYSQL_LIB_DIR
4747
# MYSQL_PLUGIN_DIR
4848
# MYSQL_EXTERNAL_DEPENDENCIES
49+
# MYSQL_EXTERNAL_SEARCHPATH
4950
#
5051
##########################################################################
5152

@@ -344,15 +345,30 @@ function(main)
344345
# the dependencies themselves.
345346

346347
if(NOT MSVC)
348+
349+
set(searchpath "")
350+
list(APPEND searchpath "-L${MYSQL_LIB_DIR}"
351+
"-L${MYSQL_LIB_DIR}/private")
352+
353+
if(MYSQL_EXTERNAL_SEARCHPATH)
354+
355+
foreach(search ${MYSQL_EXTERNAL_SEARCHPATH})
356+
list(APPEND searchpath "-L${search}")
357+
endforeach()
358+
359+
endif()
360+
361+
string(REPLACE ";" " " searchpath "${searchpath}")
362+
message(" dependencies search path: ${searchpath}")
363+
364+
347365
set_property(TARGET MySQL::client-static
348366
PROPERTY INTERFACE_LINK_LIBRARIES
349-
"-L${MYSQL_LIB_DIR}"
350-
"-L${MYSQL_LIB_DIR}/private"
367+
"${searchpath}"
351368
)
352369
set_property(TARGET MySQL::client-shared
353370
PROPERTY INTERFACE_LINK_LIBRARIES
354-
"-L${MYSQL_LIB_DIR}"
355-
"-L${MYSQL_LIB_DIR}/private"
371+
"${searchpath}"
356372
)
357373
endif()
358374

@@ -453,6 +469,11 @@ function(get_dependencies)
453469
"List of external libraries on which MySQL client library depends."
454470
)
455471

472+
set(MYSQL_EXTERNAL_SEARCHPATH "${MYSQL_EXTERNAL_SEARCHPATH}"
473+
CACHE INTERNAL
474+
"List of locations of external libraries on which MySQL client library depends as reported by mysql_config."
475+
)
476+
456477
endfunction(get_dependencies)
457478

458479

@@ -490,10 +511,11 @@ function(use_mysql_config)
490511

491512
set(MYSQL_EXTERNAL_DEPENDENCIES "")
492513

493-
_mysql_conf(config_libs --libs)
494-
string(REGEX MATCHALL " -l[^ ]+" config_libs ${config_libs})
514+
_mysql_conf(config_libs_paths --libs)
515+
string(REGEX MATCHALL " -l[^ ]+" config_libs ${config_libs_paths})
495516
message("-- libs: ${config_libs}")
496517

518+
497519
foreach(lib ${config_libs})
498520

499521
string(REGEX REPLACE " -l([^ ]+)" "\\1" lib ${lib})
@@ -503,7 +525,7 @@ function(use_mysql_config)
503525
# explicit dependencies.
504526

505527
if(NOT lib MATCHES
506-
"(mysqlclient|libmysql|^stdc|^gcc|^CrunG3|^c$|^statomic|^unwind|^execinfo)"
528+
"(mysqlclient|libmysql|^stdc|^gcc|^CrunG3|^c$|^statomic)"
507529
)
508530

509531
list(APPEND MYSQL_EXTERNAL_DEPENDENCIES ${lib})
@@ -516,6 +538,23 @@ function(use_mysql_config)
516538

517539
set(MYSQL_EXTERNAL_DEPENDENCIES "${MYSQL_EXTERNAL_DEPENDENCIES}" PARENT_SCOPE)
518540

541+
# check if --libs have libs search path
542+
set(MYSQL_EXTERNAL_SEARCHPATH "")
543+
544+
string(REGEX MATCHALL " -L[^ ]+" config_lib_search_path ${config_libs_paths})
545+
message("-- libs search path: ${config_lib_search_path}")
546+
547+
foreach(search ${config_lib_search_path})
548+
549+
string(REGEX REPLACE " -L([^ ]+)" "\\1" search ${search})
550+
message("-- checking search path: ${search}")
551+
552+
553+
list(APPEND MYSQL_EXTERNAL_SEARCHPATH ${search})
554+
endforeach()
555+
556+
set(MYSQL_EXTERNAL_SEARCHPATH "${MYSQL_EXTERNAL_SEARCHPATH}" PARENT_SCOPE)
557+
519558
endfunction(use_mysql_config)
520559

521560

0 commit comments

Comments
 (0)