diff options
-rwxr-xr-x | CMakeLists.txt | 7 | ||||
-rwxr-xr-x | libmysql/CMakeLists.txt | 28 | ||||
-rw-r--r-- | libmysqld/CMakeLists.txt | 4 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 5 | ||||
-rwxr-xr-x | mysys/CMakeLists.txt | 3 | ||||
-rwxr-xr-x | sql/CMakeLists.txt | 2 |
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 |