diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | client/CMakeLists.txt | 11 | ||||
-rw-r--r-- | cmake/libutils.cmake | 6 | ||||
-rw-r--r-- | cmake/mariadb_connector_c.cmake | 58 | ||||
-rw-r--r-- | dbug/CMakeLists.txt | 4 | ||||
-rw-r--r-- | libmariadb/CMakeLists.txt | 127 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 12 |
7 files changed, 49 insertions, 172 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fa5d102e18..055be07025d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -362,8 +362,7 @@ ADD_SUBDIRECTORY(strings) ADD_SUBDIRECTORY(vio) ADD_SUBDIRECTORY(mysys) ADD_SUBDIRECTORY(mysys_ssl) -ADD_SUBDIRECTORY(libmariadb) -ADD_SUBDIRECTORY(libmysql) +INCLUDE(mariadb_connector_c) # this does ADD_SUBDIRECTORY(libmariadb) ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(extra) ADD_SUBDIRECTORY(libservices) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 50280834a68..87535ea7baa 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -19,7 +19,6 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/mysys_ssl ${ZLIB_INCLUDE_DIR} ${SSL_INCLUDE_DIRS} - ${CMAKE_SOURCE_DIR}/libmysql ${CMAKE_SOURCE_DIR}/sql ${CMAKE_SOURCE_DIR}/strings ${MY_READLINE_INCLUDE_DIR} @@ -28,16 +27,16 @@ INCLUDE_DIRECTORIES( ADD_DEFINITIONS(-DHAVE_OPENSSL=1) -INCLUDE_DIRECTORIES( -BEFORE -${CONNECTOR_C_INSTALLDIR}/include/mariadb) +INCLUDE_DIRECTORIES(BEFORE + ${CMAKE_BINARY_DIR}/libmariadb/include + ${CMAKE_SOURCE_DIR}/libmariadb/include) ## We will need libeay32.dll and ssleay32.dll when running client executables. COPY_OPENSSL_DLLS(copy_openssl_client) ADD_DEFINITIONS(-DHAVE_LIBMARIADB=1) -SET(CLIENT_LIB ${CONNECTOR_C_LIBS} mysys) +SET(CLIENT_LIB mariadbclient mysys) ADD_DEFINITIONS(${SSL_DEFINES}) MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc @@ -100,7 +99,7 @@ PROPERTIES HAS_CXX TRUE) FOREACH(t mysql mysqltest mysqltest mysqlcheck mysqldump mysqlimport mysql_upgrade mysqlshow mysql_plugin mysqlbinlog mysqladmin mysqlslap async_example) - ADD_DEPENDENCIES(${t} GenError mariadb_connector_c) + ADD_DEPENDENCIES(${t} GenError ${CLIENT_LIB}) ENDFOREACH() ADD_DEFINITIONS(-DHAVE_DLOPEN) diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index bcba924dfa8..0965ec8cb83 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -58,13 +58,13 @@ IF(WIN32 OR CYGWIN OR APPLE OR WITH_PIC OR DISABLE_SHARED OR NOT CMAKE_SHARED_LI ENDIF() INCLUDE(CMakeParseArguments) -# CREATE_EXPORT_FILE (VAR target api_functions) +# CREATE_EXPORTS_FILE (VAR target api_functions) # Internal macro, used to create source file for shared libraries that # otherwise consists entirely of "convenience" libraries. On Windows, # also exports API functions as dllexport. On unix, creates a dummy file # that references all exports and this prevents linker from creating an # empty library(there are unportable alternatives, --whole-archive) -MACRO(CREATE_EXPORT_FILE VAR TARGET API_FUNCTIONS) +MACRO(CREATE_EXPORTS_FILE VAR TARGET API_FUNCTIONS) IF(WIN32) SET(DUMMY ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_dummy.c) SET(EXPORTS ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_exports.def) @@ -255,7 +255,7 @@ MACRO(MERGE_LIBRARIES) ENDIF() ENDFOREACH() ENDIF() - CREATE_EXPORT_FILE(SRC ${TARGET} "${ARG_EXPORTS}") + CREATE_EXPORTS_FILE(SRC ${TARGET} "${ARG_EXPORTS}") IF(NOT ARG_NOINSTALL) ADD_VERSION_INFO(${TARGET} SHARED SRC) ENDIF() diff --git a/cmake/mariadb_connector_c.cmake b/cmake/mariadb_connector_c.cmake index 3f4deffd593..c55dc03830d 100644 --- a/cmake/mariadb_connector_c.cmake +++ b/cmake/mariadb_connector_c.cmake @@ -1,32 +1,36 @@ -# -# Configuration options for Connector/C -# -IF(WIN32) - # todo: libcurl for windows +SET(OPT CONC_) + +IF (CMAKE_BUILD_TYPE STREQUAL "Debug") + SET(CONC_WITH_RTC ON) +ENDIF() + +SET(CONC_WITH_SIGNCODE ${SIGNCODE}) +SET(SIGN_OPTIONS ${SIGNTOOL_PARAMETERS}) + +IF(TARGET zlib) + GET_PROPERTY(ZLIB_LIBRARY_LOCATION TARGET zlib PROPERTY LOCATION) ELSE() - SET(CC_LIBS ${LIBDL} ${LIBM} ${CMAKE_THREAD_LIBS_INIT}) - FIND_PACKAGE(OpenSSL) - #FIND_PACKAGE(GnuTLS) - IF(OPENSSL_FOUND) - SET(CC_LIBS ${CC_LIBS} ${OPENSSL_LIBRARIES}) - SET(CC_CMAKE_OPTS "-DWITH_SSL=OPENSSL") - ELSEIF (GNUTLS_FOUND) - SET(CC_LIBS ${CC_LIBS} ${GNUTLS_LIBRARY}) - SET(CC_CMAKE_OPTS "-DWITH_SSL=GNUTLS") + SET(ZLIB_LIBRARY_LOCATION ${ZLIB_LIBRARY}) +ENDIF() + +IF(SSL_DEFINES MATCHES "YASSL") + IF(WIN32) + SET(CONC_WITH_SSL "SCHANNEL") ELSE() - SET(CC_CMAKE_OPTS "-DWITH_SSL=OFF") - ENDIF() - INCLUDE(${CMAKE_SOURCE_DIR}/cmake/iconv.cmake) - IF(ICONV_FOUND) - IF(ICONV_EXTERNAL) - IF(NOT ICONV_LIBRARIES MATCHES "libc.so") - SET(CC_LIBS ${CC_LIBS} ${ICONV_LIBRARIES}) - ENDIF() - ENDIF() + SET(CONC_WITH_SSL "GNUTLS") # that's what debian wants, right? ENDIF() +ELSE() + SET(CONC_WITH_SSL "OPENSSL") ENDIF() -IF(NOT TARGET zlib) - SET(CC_LIBS ${CC_LIBS} ${ZLIB_LIBRARY}) + +SET(CONC_WITH_CURL OFF) +SET(CONC_WITH_MYSQLCOMPAT ON) + +IF (INSTALL_LAYOUT STREQUAL "RPM") + SET(CONC_INSTALL_LAYOUT "RPM") +ELSE() + SET(CONC_INSTALL_LAYOUT "DEFAULT") ENDIF() -SET(mysqlclient_LIB_DEPENDS ${CC_LIBS} CACHE INTERNAL "") -MARK_AS_ADVANCED(CC_LIBS CC_CMAKE_OPTS) + +MESSAGE("== Configuring MariaDB Connector/C") +ADD_SUBDIRECTORY(libmariadb) diff --git a/dbug/CMakeLists.txt b/dbug/CMakeLists.txt index c40c70b684d..014efdeb9a3 100644 --- a/dbug/CMakeLists.txt +++ b/dbug/CMakeLists.txt @@ -58,13 +58,13 @@ IF(NOT WIN32 AND NOT CMAKE_GENERATOR MATCHES Xcode) ADD_CUSTOM_COMMAND(OUTPUT user.ps DEPENDS user.r ${OUTPUT_INC} ${SOURCE_INC} COMMAND ${GROFF} -mm ${CMAKE_CURRENT_SOURCE_DIR}/user.r > user.ps || touch user.ps) - ADD_CUSTOM_TARGET(ps ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user.ps) + ADD_CUSTOM_TARGET(user.ps ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user.ps) ENDIF(GROFF) IF(NROFF) ADD_CUSTOM_COMMAND(OUTPUT user.t DEPENDS user.r ${OUTPUT_INC} ${SOURCE_INC} COMMAND ${NROFF} -mm ${CMAKE_CURRENT_SOURCE_DIR}/user.r > user.t || touch user.t) - ADD_CUSTOM_TARGET(t ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user.t) + ADD_CUSTOM_TARGET(user.t ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user.t) ENDIF(NROFF) ENDIF() diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt deleted file mode 100644 index 1f6b299d4d8..00000000000 --- a/libmariadb/CMakeLists.txt +++ /dev/null @@ -1,127 +0,0 @@ -INCLUDE(${CMAKE_SOURCE_DIR}/cmake/mariadb_connector_c.cmake) - -SET(CONNECTOR_C_INSTALLDIR "${CMAKE_CURRENT_BINARY_DIR}/mariadb-connector-c/${CMAKE_CFG_INTDIR}" CACHE STRING "") -SET(CONNECTOR_C_INSTALL_PREFIX ${CONNECTOR_C_INSTALLDIR}) - - -IF(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") - STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" CONNECTOR_C_INSTALL_PREFIX "${CONNECTOR_C_INSTALLDIR}") -ENDIF() - -SET(CONNECTOR_C_GIT_TAG "v3.0-cc-server-integ-0" CACHE STRING "Git tag or branch for connector/c") -IF(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/mariadb-connector-c) - # Building from source package - SET(CONNECTOR_C_SOURCE_DIR ${CMAKE_SOURCE_DIR}/mariadb-connector-c) - SET(GIT_PARAMS) -ELSE() - # Building from git, use git to get Connector/C - SET(GIT_PARAMS - GIT_REPOSITORY "https://github.com/MariaDB/mariadb-connector-c/" - GIT_TAG ${CONNECTOR_C_GIT_TAG} - ) - SET(CONNECTOR_C_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/mariadb-connector-c-src) -ENDIF() - -IF(TARGET zlib) - GET_PROPERTY(ZLIB_LIBRARY_LOCATION TARGET zlib PROPERTY LOCATION) -ELSE() - SET(ZLIB_LIBRARY_LOCATION ${ZLIB_LIBRARY}) -ENDIF() - - -INCLUDE(ExternalProject) -ExternalProject_Add( - mariadb_connector_c - ${GIT_PARAMS} - UPDATE_COMMAND "" - PATCH_COMMAND "" - SOURCE_DIR ${CONNECTOR_C_SOURCE_DIR} - INSTALL_DIR ${CONNECTOR_C_INSTALLDIR} - CMAKE_ARGS ${CC_CMAKE_OPTS} - -DCMAKE_INSTALL_PREFIX=${CONNECTOR_C_INSTALL_PREFIX} - -DWITH_EXTERNAL_ZLIB=1 - -DZLIB_FOUND=1 - -DZLIB_LIBRARY=${ZLIB_LIBRARY_LOCATION} - -DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR} - -DSKIP_TESTS=1 - -DMARIADB_PORT=${MYSQL_TCP_PORT} - -DMARIADB_UNIX_ADDR=${MYSQL_UNIX_ADDR} - -DSHARED_LIB_MAJOR_VERSION=${SHARED_LIB_MAJOR_VERSION} - -DPLUGINDIR=${INSTALL_PLUGINDIR} - -DFOR_SERVER=1 - TEST_COMMAND "" -) - -IF(TARGET zlib) - ADD_DEPENDENCIES(mariadb_connector_c zlib) -ENDIF() - -SET(STATIC_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX}") - -IF(WIN32) - SET(SHARED_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/libmysql${CMAKE_SHARED_LIBRARY_SUFFIX}") -ELSE() - SET(SHARED_LIB_LOCATION "${CONNECTOR_C_INSTALLDIR}/lib/mariadb/libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX}") -ENDIF() -IF(WIN32) - # On Windows, we need to install import library. We also install PDB for debugging - STRING(REPLACE ".dll" ".lib" IMPORT_LIB_LOCATION ${SHARED_LIB_LOCATION}) - STRING(REPLACE ".dll" ".pdb" PDB_LOCATION ${SHARED_LIB_LOCATION}) -ENDIF() - -ADD_LIBRARY(mariadbclient STATIC IMPORTED GLOBAL) -SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_LOCATION ${STATIC_LIB_LOCATION}) -ADD_DEPENDENCIES(mariadbclient mariadb_connector_c GenError) - -ADD_LIBRARY(libmariadb SHARED IMPORTED GLOBAL) -SET_TARGET_PROPERTIES(libmariadb PROPERTIES IMPORTED_LOCATION ${SHARED_LIB_LOCATION}) -ADD_DEPENDENCIES(libmariadb mariadb_connector_c GenError) - -SET(CONNECTOR_C_LIBS ${STATIC_LIB_LOCATION} ${CC_LIBS} ${ZLIB_LIBRARY} PARENT_SCOPE) - - -# INSTALL Connector/C files - -# For multiconfig generators (Visual Studio and Xcode) -# we need to replace CMAKE_CFG_INTDIR in filepath with CMAKE_INSTALL_CONFIG_NAME -# for cpack. -FUNCTION(GET_INSTALL_LOCATION LOC VARNAME) - SET(val ${LOC}) - IF (NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".") - STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}" val ${val}) - ENDIF() - SET(${VARNAME} ${val} PARENT_SCOPE) -ENDFUNCTION() - -GET_INSTALL_LOCATION(${STATIC_LIB_LOCATION} STATIC_LIB_INSTALL_LOCATION) -INSTALL(FILES ${STATIC_LIB_INSTALL_LOCATION} DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) - -IF(UNIX) - STRING(REPLACE "mysqlclient" "mysqlclient_r" - STATIC_LIB_R_INSTALL_LOCATION "${STATIC_LIB_INSTALL_LOCATION}") - INSTALL(FILES ${STATIC_LIB_R_INSTALL_LOCATION} OPTIONAL DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) -ENDIF() - -# Install shared library -IF(WIN32) - # On Windows, we need to install import library. We also install PDB for debugging - SET(SHARED_LIB_FILES ${SHARED_LIB_LOCATION} ${IMPLIB_LOCATION} ${PDB_LOCATION}) -ELSE() - STRING(REPLACE "mysqlclient" "mysqlclient_r" SHARED_LIB_R_LOCATION ${SHARED_LIB_LOCATION}) - STRING(REPLACE "mysqlclient.so" "mysqlclient.so.${SHARED_LIB_MAJOR_VERSION}" - SHARED_LIB_LINK1_LOCATION ${SHARED_LIB_LOCATION}) - STRING(REPLACE "mysqlclient.so" "mysqlclient.so.${SHARED_LIB_MAJOR_VERSION}.0.0" - SHARED_LIB_LINK2_LOCATION ${SHARED_LIB_LOCATION}) - - SET(SHARED_LIB_FILES ${SHARED_LIB_LOCATION} ${SHARED_LIB_R_LOCATION} - ${SHARED_LIB_LINK1_LOCATION} ${SHARED_LIB_LINK2_LOCATION}) - LIST(REMOVE_DUPLICATES SHARED_LIB_FILES) -ENDIF() - -FOREACH(file ${SHARED_LIB_FILES}) - GET_INSTALL_LOCATION(${file} loc) - IF(loc) - INSTALL(FILES ${loc} DESTINATION ${INSTALL_LIBDIR} COMPONENT SharedLibraries OPTIONAL) - ENDIF() -ENDFOREACH() - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 703efd56d55..8e9496ec0ae 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -18,18 +18,20 @@ ADD_DEFINITIONS("-DMYSQL_CLIENT") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/client) -INCLUDE_DIRECTORIES(BEFORE ${CONNECTOR_C_INSTALLDIR}/include/mariadb) +INCLUDE_DIRECTORIES(BEFORE + ${CMAKE_BINARY_DIR}/libmariadb/include + ${CMAKE_SOURCE_DIR}/libmariadb/include) ADD_EXECUTABLE(mysql_client_test mysql_client_test.c) -SET(CLIENT_LIB ${CONNECTOR_C_LIBS} mysys) +SET(CLIENT_LIB mariadbclient mysys) TARGET_LINK_LIBRARIES(mysql_client_test ${CLIENT_LIB}) -ADD_DEPENDENCIES(mysql_client_test GenError mariadb_connector_c) +ADD_DEPENDENCIES(mysql_client_test GenError ${CLIENT_LIB}) IF(WITH_UNIT_TESTS) ADD_EXECUTABLE(bug25714 bug25714.c) TARGET_LINK_LIBRARIES(bug25714 ${CLIENT_LIB}) - ADD_DEPENDENCIES(bug25714 GenError mariadb_connector_c) + ADD_DEPENDENCIES(bug25714 GenError ${CLIENT_LIB}) ENDIF() INSTALL(TARGETS mysql_client_test DESTINATION ${INSTALL_BINDIR} COMPONENT Test) @@ -40,5 +42,5 @@ MARK_AS_ADVANCED(EVENT_LIBRARY) IF(HAVE_EVENT_H AND EVENT_LIBRARY) ADD_EXECUTABLE(async_queries async_queries.c) TARGET_LINK_LIBRARIES(async_queries ${CLIENT_LIB} ${EVENT_LIBRARY}) - ADD_DEPENDENCIES(async_queries GenError mariadb_connector_c) + ADD_DEPENDENCIES(async_queries GenError ${CLIENT_LIB}) ENDIF() |