diff -aurN a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2018-02-27 16:45:56.740178421 -0500 +++ b/CMakeLists.txt 2018-02-28 09:06:59.163673185 -0500 @@ -339,8 +339,6 @@ MYSQL_CHECK_ZLIB_WITH_COMPRESS() # Add bundled yassl/taocrypt or system openssl. MYSQL_CHECK_SSL() -# Add readline or libedit. -MYSQL_CHECK_READLINE() SET(MALLOC_LIBRARY "system") @@ -377,28 +375,38 @@ SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") -INCLUDE(submodules) INCLUDE(mariadb_connector_c) # this does ADD_SUBDIRECTORY(libmariadb) # Add storage engines and plugins. CONFIGURE_PLUGINS() -ADD_SUBDIRECTORY(include) +IF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(include) +ENDIF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(dbug) ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) ADD_SUBDIRECTORY(mysys) ADD_SUBDIRECTORY(mysys_ssl) -ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(extra) ADD_SUBDIRECTORY(libservices) ADD_SUBDIRECTORY(sql/share) +IF(NOT WITHOUT_TOOLS) + # Add readline or libedit. + MYSQL_CHECK_READLINE() + ADD_SUBDIRECTORY(client) +ENDIF(NOT WITHOUT_TOOLS) + IF(NOT WITHOUT_SERVER) ADD_SUBDIRECTORY(tests) ADD_SUBDIRECTORY(sql) OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) - IF(WITH_EMBEDDED_SERVER) + IF(WITH_EMBEDDED_SERVER) + IF(WITHOUT_TOOLS) + MYSQL_CHECK_READLINE() + ENDIF(WITHOUT_TOOLS) ADD_SUBDIRECTORY(libmysqld) ADD_SUBDIRECTORY(libmysqld/examples) ENDIF(WITH_EMBEDDED_SERVER) diff -aurN a/extra/CMakeLists.txt b/extra/CMakeLists.txt --- a/extra/CMakeLists.txt 2018-02-25 22:27:15.000000000 -0500 +++ b/extra/CMakeLists.txt 2018-03-09 10:08:24.532158129 -0500 @@ -46,10 +46,15 @@ DEPENDS ${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp) +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) -MYSQL_ADD_EXECUTABLE(perror perror.c) ADD_DEPENDENCIES(perror GenError) TARGET_LINK_LIBRARIES(perror mysys) diff -aurN a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt --- a/libmariadb/CMakeLists.txt 2018-02-27 16:45:56.434184441 -0500 +++ b/libmariadb/CMakeLists.txt 2018-02-28 09:15:16.258725638 -0500 @@ -378,7 +378,7 @@ ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(libmariadb) ADD_SUBDIRECTORY(plugins) -IF(NOT WIN32) +IF(NOT WIN32 AND NOT WITHOUT_CLIENTLIBS) ADD_SUBDIRECTORY(mariadb_config) ENDIF() diff -aurN a/libmariadb/include/CMakeLists.txt b/libmariadb/include/CMakeLists.txt --- a/libmariadb/include/CMakeLists.txt 2018-02-27 16:45:56.408184952 -0500 +++ b/libmariadb/include/CMakeLists.txt 2018-02-27 16:59:34.668054644 -0500 @@ -26,6 +26,7 @@ SET(WIX_INCLUDES ${MARIADB_CLIENT_INCLUDES} ${MARIADB_ADDITIONAL_INCLUDES} ${MYSQL_ADDITIONAL_INCLUDES} PARENT_SCOPE) ENDIF() +IF(NOT WITHOUT_CLIENTLIBS) INSTALL(FILES ${MARIADB_CLIENT_INCLUDES} DESTINATION ${INSTALL_INCLUDEDIR} @@ -38,3 +39,4 @@ ${MARIADB_ADDITIONAL_INCLUDES} DESTINATION ${INSTALL_INCLUDEDIR}/mariadb COMPONENT Development) +ENDIF(NOT WITHOUT_CLIENTLIBS) diff -aurN a/libmariadb/libmariadb/CMakeLists.txt b/libmariadb/libmariadb/CMakeLists.txt --- a/libmariadb/libmariadb/CMakeLists.txt 2018-02-27 16:45:56.421184696 -0500 +++ b/libmariadb/libmariadb/CMakeLists.txt 2018-02-28 09:10:54.981951174 -0500 @@ -371,8 +371,10 @@ "FILE_DESCRIPTION:Dynamic lib for client/server communication") ENDIF() -ADD_LIBRARY(mariadbclient STATIC ${MARIADB_OBJECTS} ${EMPTY_FILE}) -TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) +IF(ENABLE_STATIC_LIBS OR NOT WITHOUT_TOOLS) + ADD_LIBRARY(mariadbclient STATIC ${MARIADB_OBJECTS} ${EMPTY_FILE}) + TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) +ENDIF(ENABLE_STATIC_LIBS OR NOT WITHOUT_TOOLS) IF(UNIX) ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE} mariadbclient.def) @@ -398,7 +400,9 @@ TARGET_LINK_LIBRARIES (libmariadb "${CC_BINARY_DIR}/libmariadb/mariadbclient.def") ENDIF() -SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}") +IF(ENABLE_STATIC_LIBS OR NOT WITHOUT_TOOLS) + SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}") +ENDIF(ENABLE_STATIC_LIBS OR NOT WITHOUT_TOOLS) SET_TARGET_PROPERTIES(libmariadb PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}") SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "") @@ -412,11 +416,13 @@ # of the config program. To make sure these programs can # use mariadb client library we provide libmysql symlinks -IF(WITH_MYSQLCOMPAT) +IF(WITH_MYSQLCOMPAT AND NOT WITHOUT_CLIENTLIBS) create_symlink(libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_LIBDIR}) - create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_LIBDIR}) - create_symlink(libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR}) - create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR}) +# create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_LIBDIR}) + IF(ENABLE_STATIC_LIBS) + create_symlink(libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR}) +# create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR}) + ENDIF(ENABLE_STATIC_LIBS) ENDIF() @@ -424,12 +430,16 @@ ${CPACK_PACKAGE_VERSION_MAJOR} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) +IF(NOT WITHOUT_CLIENTLIBS) +IF(ENABLE_STATIC_LIBS) INSTALL(TARGETS mariadbclient COMPONENT Development DESTINATION ${INSTALL_LIBDIR}) +ENDIF(ENABLE_STATIC_LIBS) INSTALL(TARGETS libmariadb COMPONENT SharedLibraries DESTINATION ${INSTALL_LIBDIR}) +ENDIF(NOT WITHOUT_CLIENTLIBS) IF(WIN32) # On Windows, install PDB diff -aurN a/libmariadb/plugins/CMakeLists.txt b/libmariadb/plugins/CMakeLists.txt --- a/libmariadb/plugins/CMakeLists.txt 2018-02-27 16:45:56.445184224 -0500 +++ b/libmariadb/plugins/CMakeLists.txt 2018-02-27 16:59:59.028574104 -0500 @@ -1,3 +1,4 @@ +IF(NOT WITHOUT_CLIENTLIBS) SET(PLUGIN_EXTRA_FILES ${CC_SOURCE_DIR}/libmariadb/ma_errmsg.c) FILE(GLOB plugin_dirs ${CC_SOURCE_DIR}/plugins/*) FOREACH(dir ${plugin_dirs}) @@ -5,3 +6,4 @@ ADD_SUBDIRECTORY(${dir}) ENDIF() ENDFOREACH() +ENDIF(NOT WITHOUT_CLIENTLIBS) diff -aurN a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt --- a/scripts/CMakeLists.txt 2018-02-27 16:45:56.384185424 -0500 +++ b/scripts/CMakeLists.txt 2018-02-27 16:54:34.623973364 -0500 @@ -293,7 +293,6 @@ # On Unix, most of the files end up in the bin directory SET(BIN_SCRIPTS msql2mysql - mysql_config mysql_setpermission mysql_secure_installation mysqlaccess @@ -305,6 +304,12 @@ ${WSREP_SCRIPTS} ${SYSTEMD_SCRIPTS} ) + 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