--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1159,8 +1159,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() @@ -1252,7 +1250,9 @@ IF(WITH_UNIT_TESTS) ENABLE_TESTING() ENDIF() -ADD_SUBDIRECTORY(include) +IF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(include) +ENDIF(NOT WITHOUT_CLIENTLIBS) ADD_SUBDIRECTORY(dbug) ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) @@ -1295,11 +1295,16 @@ IF(WITH_UNIT_TESTS) ADD_SUBDIRECTORY(unittest/mytap/t) ENDIF() -ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(utilities) ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(libservices) +IF(NOT WITHOUT_TOOLS) + # Add system/bundled editline + MYSQL_CHECK_EDITLINE() + ADD_SUBDIRECTORY(client) +ENDIF(NOT WITHOUT_TOOLS) + IF(NOT WITHOUT_SERVER) ADD_SUBDIRECTORY(testclients) ADD_SUBDIRECTORY(sql) --- 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 perconaserverclient -MERGE_CONVENIENCE_LIBRARIES(perconaserverclient ${LIBS_TO_MERGE} COMPONENT Development) +IF(WITHOUT_CLIENTLIBS) + # Merge several convenience libraries into one big perconaserverclient + MERGE_CONVENIENCE_LIBRARIES(perconaserverclient ${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 perconaserverclient + MERGE_CONVENIENCE_LIBRARIES(perconaserverclient ${LIBS_TO_MERGE} COMPONENT Development) +ENDIF(WITHOUT_CLIENTLIBS) TARGET_LINK_LIBRARIES(perconaserverclient PRIVATE ${LIBS_TO_LINK}) # Visual Studio users need debug static library for debug projects @@ -283,9 +288,15 @@ ENDIF() IF(NOT DISABLE_SHARED) # Merge several convenience libraries into one big perconaserverclient # 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,14 +459,12 @@ ELSE() IF(WITH_SYSTEMD) SET(BIN_SCRIPTS - mysql_config mysqldumpslow ps_mysqld_helper ps-admin ) ELSE() SET(BIN_SCRIPTS - mysql_config mysqldumpslow mysqld_multi mysqld_safe @@ -475,6 +473,13 @@ ELSE() ) 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") @@ -489,7 +494,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 @@ -94,22 +94,35 @@ IF(APPLE AND HAVE_CRYPTO_DYLIB AND HAVE_OPENSSL_DYLIB) ADD_DEPENDENCIES(comp_err copy_openssl_dlls) ENDIF() -MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc) +IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc SKIP_INSTALL) + MYSQL_ADD_EXECUTABLE(perror perror.cc SKIP_INSTALL) + IF(BUILD_BUNDLED_LZ4) + MYSQL_ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc SKIP_INSTALL) + ENDIF() +ELSE(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.cc) + MYSQL_ADD_EXECUTABLE(perror perror.cc) + IF (BUILD_BUNDLED_LZ4) + MYSQL_ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc) + ENDIF() +ENDIF() + TARGET_LINK_LIBRARIES(my_print_defaults mysys) -MYSQL_ADD_EXECUTABLE(perror perror.cc) ADD_DEPENDENCIES(perror GenError) TARGET_LINK_LIBRARIES(perror mysys) IF (BUILD_BUNDLED_LZ4) - MYSQL_ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc) TARGET_LINK_LIBRARIES(lz4_decompress ${LZ4_LIBRARY} mysys) ENDIF() -IF (BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) +IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc SKIP_INSTALL) +ELSE(WITHOUT_CLIENTLIBS) MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc) - TARGET_LINK_LIBRARIES(zlib_decompress ${ZLIB_LIBRARY} mysys) ENDIF() +TARGET_LINK_LIBRARIES(zlib_decompress ${ZLIB_LIBRARY} mysys) IF(WITH_INNOBASE_STORAGE_ENGINE)