--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -551,8 +551,6 @@ IF(BUILD_BUNDLED_ZLIB) ENDIF() # Add bundled yassl/taocrypt or system openssl. MYSQL_CHECK_SSL() -# Add system/bundled editline. -MYSQL_CHECK_EDITLINE() # Add libevent IF(NOT WITHOUT_SERVER) MYSQL_CHECK_LIBEVENT() @@ -645,7 +643,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) @@ -692,7 +693,6 @@ IF(WITH_UNIT_TESTS) ENDIF() ADD_SUBDIRECTORY(extra) -ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(sql/share) ADD_SUBDIRECTORY(libservices) @@ -700,11 +700,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 @@ -71,12 +71,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) @@ -95,10 +99,15 @@ ENDIF() MYSQL_ADD_EXECUTABLE(replace replace.c) TARGET_LINK_LIBRARIES(replace mysys) -MYSQL_ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc) -TARGET_LINK_LIBRARIES(lz4_decompress ${LZ4_LIBRARY}) +IF(NOT WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc) + MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc) +ELSE(NOT WITHOUT_CLIENTLIBS) + ADD_EXECUTABLE(lz4_decompress lz4_decompress.cc) + ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc) +ENDIF(NOT WITHOUT_CLIENTLIBS) -MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc) +TARGET_LINK_LIBRARIES(lz4_decompress ${LZ4_LIBRARY}) TARGET_LINK_LIBRARIES(zlib_decompress ${ZLIB_LIBRARY}) IF(WITH_INNOBASE_STORAGE_ENGINE) --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -232,12 +232,16 @@ 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 mysqlclient -MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS} COMPONENT Development) +IF(WITHOUT_CLIENTLIBS) + # Merge several convenience libraries into one big mysqlclient + MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${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 mysqlclient + MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS} COMPONENT Development) +ENDIF(WITHOUT_CLIENTLIBS) # Visual Studio users need debug static library for debug projects IF(MSVC) @@ -284,9 +288,15 @@ ENDIF() IF(NOT DISABLE_SHARED) # Merge several convenience libraries into one big mysqlclient # 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 @@ -413,18 +413,21 @@ 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") @@ -439,7 +442,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})