--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -534,8 +534,6 @@ INCLUDE_DIRECTORIES( MYSQL_CHECK_ZLIB_WITH_COMPRESS() # Add bundled yassl/taocrypt or system openssl. MYSQL_CHECK_SSL() -# Add system/bundled editline. -MYSQL_CHECK_EDITLINE() # Add libevent MYSQL_CHECK_LIBEVENT() # Add lz4 library @@ -624,7 +622,10 @@ 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) @@ -665,7 +666,6 @@ IF(WITH_UNIT_TESTS) ENDIF() ADD_SUBDIRECTORY(extra) -ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(sql/share) ADD_SUBDIRECTORY(libservices) @@ -673,11 +673,20 @@ 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(testclients) ADD_SUBDIRECTORY(sql) OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) IF(WITH_EMBEDDED_SERVER) + IF(WITHOUT_TOOLS) + MYSQL_CHECK_EDITLINE() + ENDIF(WITHOUT_TOOLS) ADD_SUBDIRECTORY(libmysqld) ADD_SUBDIRECTORY(libmysqld/examples) ENDIF(WITH_EMBEDDED_SERVER) --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -72,12 +72,16 @@ IF (WIN32 AND WITH_SSL_PATH AND HAVE_CRYPTO_DLL) ADD_DEPENDENCIES(GenError copy_openssl_extra) ENDIF() - -MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) +IF(NOT WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) + MYSQL_ADD_EXECUTABLE(perror perror.c) +ELSE(NOT WITHOUT_CLIENTLIBS) + ADD_EXECUTABLE(my_print_defaults my_print_defaults.c) + ADD_EXECUTABLE(perror perror.c) +ENDIF(NOT WITHOUT_CLIENTLIBS) TARGET_LINK_LIBRARIES(my_print_defaults mysys mysys_ssl) SET_TARGET_PROPERTIES(my_print_defaults PROPERTIES LINKER_LANGUAGE CXX) -MYSQL_ADD_EXECUTABLE(perror perror.c) ADD_DEPENDENCIES(perror GenError) TARGET_LINK_LIBRARIES(perror mysys mysys_ssl) SET_TARGET_PROPERTIES(perror PROPERTIES LINKER_LANGUAGE CXX) --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -231,12 +231,17 @@ IF(WIN32) LIST(APPEND LIBS 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} COMPONENT Development) +IF(WITHOUT_CLIENTLIBS) + # Merge several convenience libraries into one big perconaserverclient + MERGE_CONVENIENCE_LIBRARIES(perconaserverclient ${LIBS} 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} COMPONENT Development) +ENDIF(WITHOUT_CLIENTLIBS) # Visual Studio users need debug static library for debug projects IF(MSVC) @@ -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} + EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} + COMPONENT SharedLibraries SKIP_INSTALL) +ELSE(WITHOUT_CLIENTLIBS) MERGE_LIBRARIES_SHARED(libmysql ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} COMPONENT SharedLibraries) +ENDIF(WITHOUT_CLIENTLIBS) IF(UNIX) # libtool compatability IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -411,7 +411,6 @@ ELSE() IF(WITH_SYSTEMD) SET(BIN_SCRIPTS - mysql_config mysqldumpslow ps_tokudb_admin ps_mysqld_helper @@ -419,7 +418,6 @@ ELSE() ) ELSE() SET(BIN_SCRIPTS - mysql_config mysqldumpslow mysqld_multi mysqld_safe @@ -429,6 +427,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") @@ -443,7 +448,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 @@ -59,8 +59,9 @@ IF(UNIX) IF(INSTALL_SUPPORTFILESDIR) INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) ENDIF() - +IF(NOT WITHOUT_CLIENTLIBS) INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) +ENDIF(NOT WITHOUT_CLIENTLIBS) SET(bindir ${prefix}/${INSTALL_BINDIR}) SET(sbindir ${prefix}/${INSTALL_SBINDIR})