--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1199,7 +1199,9 @@ ENDIF() # Add lz4 library MYSQL_CHECK_LZ4() # Add icu library -MYSQL_CHECK_ICU() +IF(NOT WITHOUT_SERVER) + MYSQL_CHECK_ICU() +ENDIF() # Add SASL library MYSQL_CHECK_SASL() # Add protoc and libprotobuf @@ -1284,7 +1286,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) --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -240,12 +240,18 @@ 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 @@ -281,12 +287,22 @@ ENDIF() # 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/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -26,7 +26,6 @@ SET(MAN1 ibd2sdi.1 innochecksum.1 lz4_decompress.1 - my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 @@ -51,8 +50,6 @@ SET(MAN1 mysqlpump.1 mysqlshow.1 mysqlslap.1 - perror.1 - zlib_decompress.1 ) SET(MAN1_NDB ndb-common-options.1 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -423,14 +423,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 @@ -453,7 +451,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} @@ -463,6 +461,13 @@ ELSE() ) ENDIF() + IF(NOT WITHOUT_CLIENTLIBS) + SET(BIN_SCRIPTS + ${BIN_SCRIPTS} + mysql_config + ) + ENDIF(NOT WITHOUT_CLIENTLIBS) + FOREACH(file ${BIN_SCRIPTS}) IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh --- 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 @@ IF(APPLE AND HAVE_CRYPTO_DYLIB AND HAVE_OPENSSL_DYLIB) 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,7 +137,6 @@ IF(BUILD_BUNDLED_LZ4) LINK_LIBRARIES ${LZ4_LIBRARY} mysys ) ENDIF() - IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) MYSQL_ADD_EXECUTABLE(zlib_decompress zlib_decompress.cc @@ -125,6 +144,7 @@ IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) LINK_LIBRARIES ${ZLIB_LIBRARY} mysys ) ENDIF() +ENDIF(WITHOUT_CLIENTLIBS) # All targets below belong to COMPONENT Server and depend on InnoDB. IF(WITHOUT_SERVER)