summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xCMakeLists.txt7
-rwxr-xr-xlibmysql/CMakeLists.txt28
-rw-r--r--libmysqld/CMakeLists.txt4
-rwxr-xr-xmysql-test/mysql-test-run.pl5
-rwxr-xr-xmysys/CMakeLists.txt3
-rwxr-xr-xsql/CMakeLists.txt2
6 files changed, 31 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 18c1fca68b7..93d2f0ab457 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,11 +67,16 @@ INCLUDE(cmake/plugin.cmake)
INCLUDE(cmake/install_macros.cmake)
# Handle options
+OPTION(DISABLE_SHARED
+ "Don't build shared libraries, compile code as position-dependent" OFF)
+IF(DISABLE_SHARED)
+ SET(WITHOUT_DYNAMIC_PLUGINS 1)
+ENDIF()
OPTION(ENABLED_PROFILING "Enable profiling" ON)
OPTION(CYBOZU "" OFF)
OPTION(BACKUP_TEST "" OFF)
OPTION(WITHOUT_SERVER OFF)
-MARK_AS_ADVANCED(CYBOZU BACKUP_TEST WITHOUT_SERVER)
+MARK_AS_ADVANCED(CYBOZU BACKUP_TEST WITHOUT_SERVER DISABLE_SHARED)
OPTION(ENABLE_DEBUG_SYNC "Enable debug sync (debug builds only)" ON)
diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
index c6047c0c4c5..4286ea2bb0b 100755
--- a/libmysql/CMakeLists.txt
+++ b/libmysql/CMakeLists.txt
@@ -153,18 +153,22 @@ SET(LIBS clientlib dbug strings vio mysys ${ZLIB_LIBRARY} ${SSL_LIBRARIES})
# Merge several convenience libraries into one big mysqlclient
# and link them together into shared library.
MERGE_LIBRARIES(mysqlclient STATIC ${LIBS})
-MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS})
+INSTALL(TARGETS mysqlclient DESTINATION lib)
IF(UNIX)
- # Name of shared library is mysqlclient on Unix
- SET_TARGET_PROPERTIES(libmysql PROPERTIES OUTPUT_NAME mysqlclient)
- # clean direct output needs to be set several targets have the same name
- #(mysqlclient in this case)
- SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1)
- # Install links to shared and static libraries
- # (append _r to base name)
- INSTALL_SYMLINK(${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r libmysql lib)
- INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r mysqlclient lib)
+ INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r mysqlclient lib)
ENDIF()
+INSTALL_DEBUG_SYMBOLS(mysqlclient)
-INSTALL(TARGETS mysqlclient libmysql DESTINATION lib)
-INSTALL_DEBUG_SYMBOLS("mysqlclient;libmysql")
+IF(NOT DISABLE_SHARED)
+ MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS})
+ IF(UNIX)
+ # Name of shared library is mysqlclient on Unix
+ SET_TARGET_PROPERTIES(libmysql PROPERTIES OUTPUT_NAME mysqlclient)
+ # clean direct output needs to be set several targets have the same name
+ #(mysqlclient in this case)
+ SET_TARGET_PROPERTIES(mysqlclient PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ SET_TARGET_PROPERTIES(libmysql PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ INSTALL_SYMLINK(${CMAKE_SHARED_LIBRARY_PREFIX}mysqlclient_r libmysql lib)
+ ENDIF()
+ INSTALL_DEBUG_SYMBOLS(libmysql)
+ENDIF()
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt
index d02cf2e6149..7378d23790d 100644
--- a/libmysqld/CMakeLists.txt
+++ b/libmysqld/CMakeLists.txt
@@ -120,8 +120,10 @@ ENDFOREACH()
MERGE_LIBRARIES(mysqlserver STATIC ${EMBEDDED_LIBS}
OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME})
INSTALL(TARGETS mysqlserver DESTINATION lib)
+INSTALL_DEBUG_SYMBOLS(mysqlserver)
-IF(MSVC)
+IF(MSVC AND NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysqld SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS})
INSTALL(TARGETS libmysqld DESTINATION lib)
+ INSTALL_DEBUG_SYMBOLS(libmysqld)
ENDIF()
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 9a9fa85aa79..3764cff2d9a 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -4275,6 +4275,11 @@ sub mysqld_arguments ($$$) {
{
; # Dont add --skip-log-bin when mysqld have --log-slave-updates in config
}
+ elsif ($arg eq "")
+ {
+ # We can get an empty argument when we set environment variables to ""
+ # (e.g plugin not found). Just skip it.
+ }
else
{
mtr_add_arg($args, "%s", $arg);
diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
index 5f271d0a4a3..b9ecd4bf83a 100755
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
@@ -54,9 +54,6 @@ ENDIF()
IF(UNIX)
# some workarounds
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_port.c)
- # Some stuff not ported to windows
- SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_atomic.c)
- SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_getncpus.c)
ENDIF()
ADD_CONVENIENCE_LIBRARY(mysys ${MYSYS_SOURCES})
TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY})
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index c3aadc8def5..82ad781c73b 100755
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -178,7 +178,7 @@ ADD_CUSTOM_TARGET(
#Need this only for embedded
SET_TARGET_PROPERTIES(GenServerSource PROPERTIES EXCLUDE_FROM_ALL TRUE)
-IF(WIN32 OR HAVE_DLOPEN)
+IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
ADD_LIBRARY(udf_example MODULE udf_example.c)
SET_TARGET_PROPERTIES(udf_example PROPERTIES PREFIX "")
# udf_example depends on strings