--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1114,8 +1114,6 @@ ENDIF() MYSQL_CHECK_SSL() MYSQL_CHECK_SSL_DLLS() -# Add system/bundled editline. -MYSQL_CHECK_EDITLINE() # Add libevent IF(NOT WITHOUT_SERVER) MYSQL_CHECK_LIBEVENT() @@ -1207,7 +1205,9 @@ IF(WITH_UNIT_TESTS) INCLUDE(googletest) ENDIF() -ADD_SUBDIRECTORY(include) +IF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(include) +ENDIF(NOT WITHOUT_CLIENTLIBS) ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) ADD_SUBDIRECTORY(mysys) @@ -1250,7 +1250,6 @@ IF(WITH_UNIT_TESTS) ADD_SUBDIRECTORY(unittest/mytap/t) ENDIF() -ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(utilities) ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(libservices) @@ -1295,6 +1294,12 @@ IF(UNIX) ADD_SUBDIRECTORY(man) ENDIF() +IF(NOT WITHOUT_TOOLS) + # Add system/bundled editline + MYSQL_CHECK_EDITLINE() + ADD_SUBDIRECTORY(client) +ENDIF(NOT WITHOUT_TOOLS) + IF(NOT WITHOUT_SERVER) ADD_SUBDIRECTORY(packaging/rpm-common) ADD_SUBDIRECTORY(packaging/rpm-oel) --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -240,12 +240,17 @@ IF(WIN32) LIST(APPEND LIBS_TO_MERGE auth_win_client) ENDIF() -# LDAP authentication SASL client plugin -MESSAGE(STATUS "Creating LDAP authentication SASL client library.") -ADD_SUBDIRECTORY(authentication_ldap) - -# Merge several convenience libraries into one big mysqlclient -MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) +IF(WITHOUT_CLIENTLIBS) + # Merge several convenience libraries into one big mysqlclient + MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development SKIP_INSTALL) +ELSE(WITHOUT_CLIENTLIBS) + # LDAP authentication SASL client plugin + MESSAGE(STATUS "Creating LDAP authentication SASL client library.") + ADD_SUBDIRECTORY(authentication_ldap) + + # Merge several convenience libraries into one big mysqlclient + MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} COMPONENT Development) +ENDIF(WITHOUT_CLIENTLIBS) TARGET_LINK_LIBRARIES(mysqlclient PRIVATE ${LIBS_TO_LINK}) # Visual Studio users need debug static library for debug projects @@ -286,12 +286,22 @@ # Merge several convenience libraries into one big mysqlclient # and link them together into shared library. +IF(WITHOUT_CLIENTLIBS) +MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} + EXPORTS + ${CLIENT_API_FUNCTIONS} + ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} + ${CLIENT_API_NONBLOCKING_FUNCTIONS} + COMPONENT SharedLibraries + SKIP_INSTALL ) +ELSE(WITHOUT_CLIENTLIBS) MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ${CLIENT_API_NONBLOCKING_FUNCTIONS} COMPONENT SharedLibraries) +ENDIF(WITHOUT_CLIENTLIBS) TARGET_LINK_LIBRARIES(libmysql PRIVATE ${LIBS_TO_LINK}) IF(WIN32) --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -459,18 +459,23 @@ ELSE() IF(WITH_SYSTEMD) SET(BIN_SCRIPTS - mysql_config mysqldumpslow ) ELSE() SET(BIN_SCRIPTS - mysql_config mysqldumpslow mysqld_multi mysqld_safe ) ENDIF() + IF(NOT WITHOUT_CLIENTLIBS) + SET(BIN_SCRIPTS + ${BIN_SCRIPTS} + mysql_config + ) + ENDIF(NOT WITHOUT_CLIENTLIBS) + SET(PKGCONFIG_FILE ${LIBMYSQL_OS_OUTPUT_NAME}.pc) STRING(REGEX REPLACE "/mysql$" "" PKGCONFIG_DIR "${INSTALL_LIBDIR}") SET(PKGCONFIG_DIR "${PKGCONFIG_DIR}/pkgconfig") @@ -485,7 +490,7 @@ ELSE() ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} ESCAPE_QUOTES @ONLY) - IF(INSTALL_PKGCONFIGDIR) + IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS) MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} --- a/support-files/CMakeLists.txt +++ b/support-files/CMakeLists.txt @@ -24,8 +24,9 @@ IF(NOT UNIX) RETURN() ENDIF() -INSTALL(FILES mysql.m4 - DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) +IF(NOT WITHOUT_CLIENTLIBS) + INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) +ENDIF(NOT WITHOUT_CLIENTLIBS) SET(localstatedir "${MYSQL_DATADIR}") --- a/utilities/CMakeLists.txt +++ b/utilities/CMakeLists.txt @@ -99,6 +99,26 @@ ADD_DEPENDENCIES(comp_err copy_openssl_dlls) ENDIF() +IF(WITHOUT_CLIENTLIBS) +MYSQL_ADD_EXECUTABLE(my_print_defaults + my_print_defaults.cc + COMPONENT Server + LINK_LIBRARIES mysys + SKIP_INSTALL ) +MYSQL_ADD_EXECUTABLE(perror + perror.cc + COMPONENT Server + DEPENDENCIES GenError + LINK_LIBRARIES mysys + SKIP_INSTALL ) +IF(BUILD_BUNDLED_LZ4) + MYSQL_ADD_EXECUTABLE(lz4_decompress + lz4_decompress.cc + COMPONENT Server + LINK_LIBRARIES ${LZ4_LIBRARY} mysys + SKIP_INSTALL ) +ENDIF() +ELSE(WITHOUT_CLIENTLIBS) MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc COMPONENT Server @@ -117,6 +137,7 @@ LINK_LIBRARIES ${LZ4_LIBRARY} mysys ) ENDIF() +ENDIF(WITHOUT_CLIENTLIBS) IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) MYSQL_ADD_EXECUTABLE(zlib_decompress diff -aurN a/man/CMakeLists.txt b/man/CMakeLists.txt --- a/man/CMakeLists.txt 2019-10-14 14:23:01.188087069 -0400 +++ b/man/CMakeLists.txt 2019-10-14 14:43:18.723648241 -0400 @@ -26,7 +26,6 @@ ibd2sdi.1 innochecksum.1 lz4_decompress.1 - my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 @@ -51,7 +50,5 @@ mysqlpump.1 mysqlshow.1 mysqlslap.1 - perror.1 - zlib_decompress.1 ) SET(MAN1_NDB