From 0727e1ad6c8fec2a6f9ac3e38696fe4bd564d7a4 Mon Sep 17 00:00:00 2001 From: Richard Holland Date: Sat, 15 Feb 2025 16:53:14 +1100 Subject: [PATCH] static mysql linkage --- Builds/CMake/deps/MySQL.cmake | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Builds/CMake/deps/MySQL.cmake b/Builds/CMake/deps/MySQL.cmake index 64b8a02fb..a814360b6 100644 --- a/Builds/CMake/deps/MySQL.cmake +++ b/Builds/CMake/deps/MySQL.cmake @@ -1,8 +1,7 @@ #[===================================================================[ dep: MySQL - MySQL client library integration for rippled + MySQL client library integration for rippled (static linking) #]===================================================================] - # Create an IMPORTED target for MySQL add_library(mysql_client UNKNOWN IMPORTED) @@ -16,15 +15,17 @@ find_path(MYSQL_INCLUDE_DIR DOC "MySQL include directory" ) +# Modified to specifically look for static library find_library(MYSQL_LIBRARY - NAMES mysqlclient + NAMES libmysqlclient.a mysqlclient.a # Look for static libraries first PATHS /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/mysql /usr/local/lib/mysql /opt/mysql/mysql/lib - DOC "MySQL client library" + DOC "MySQL client static library" + NO_DEFAULT_PATH # Prevents finding dynamic library first ) # Set properties on the imported target @@ -32,12 +33,13 @@ if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY) set_target_properties(mysql_client PROPERTIES IMPORTED_LOCATION "${MYSQL_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${MYSQL_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" # Added for static linking + IMPORTED_LINK_INTERFACE_MULTIPLICITY "1" # Added for static linking ) - message(STATUS "Found MySQL include dir: ${MYSQL_INCLUDE_DIR}") message(STATUS "Found MySQL library: ${MYSQL_LIBRARY}") else() - message(FATAL_ERROR "Could not find MySQL development files. Please install libmysqlclient-dev") + message(FATAL_ERROR "Could not find MySQL static development files. Please install libmysqlclient-dev") endif() # Add MySQL backend source to rippled sources @@ -45,8 +47,8 @@ list(APPEND rippled_src src/ripple/nodestore/backend/MySQLBackend.cpp) # Link MySQL to rippled -target_link_libraries(ripple_libs - INTERFACE +target_link_libraries(ripple_libs + INTERFACE mysql_client )