1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-08 14:02:17 +03:00

C/C integration in MariaDB Server builds

* make is usable as a CMake sub-project
  * put options in a separate namespace
  * but use parent project values when specified
* always specify COMPONENT when INSTALLing
* don't use PROJECT_SOURCE_DIR/PROJECT_BINARY_DIR

Also

* fix out-of-source builds (don't generate files
  in the CMAKE_SOURCE_DIR, always do it in CMAKE_BINARY_DIR)
* make subsequence cmake runs less verbose, use MESSAGE1
  to avoid repeating messages that didn't change
This commit is contained in:
Sergei Golubchik
2016-09-04 13:17:24 +02:00
parent 4fe8d96cc8
commit 7a787b1e3e
22 changed files with 259 additions and 236 deletions

View File

@@ -1,15 +1,6 @@
# CMakeLists.txt # CMakeLists.txt
# This is the LGPL libmariadb project. # This is the LGPL libmariadb project.
PROJECT(mariadb-connector-c C)
SET(PACKAGE_STATUS_SUFFIX "alpha")
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
SET(CPACK_PACKAGE_VERSION_MINOR 1)
SET(CPACK_PACKAGE_VERSION_PATCH 0)
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
@@ -25,48 +16,83 @@ IF(COMMAND CMAKE_POLICY)
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
IF (NOT DEFINED CMAKE_PROJECT_NAME)
# Standalone project
PROJECT(mariadb-connector-c C)
ELSE()
# do not inherit include directories from the parent project
SET_PROPERTY(DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
FOREACH(V WITH_MYSQLCOMPAT WITH_MSI WITH_SIGNCODE WITH_RTC WITH_UNITTEST
WITH_DYNCOL WITH_EXTERNAL_ZLIB WITH_CURL WITH_SQLITE WITH_SSL
INSTALL_LAYOUT WITH_TEST_SRCPKG)
SET(${V} ${${OPT}${V}})
ENDFOREACH()
ENDIF()
SET(MARIADB_CONNECTOR_C_COPYRIGHT "2013-2016 MariaDB Corporation Ab") SET(PACKAGE_STATUS_SUFFIX "alpha")
SET(CC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
SET(CC_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
SET(CPACK_PACKAGE_VERSION_MINOR 1)
SET(CPACK_PACKAGE_VERSION_PATCH 0)
SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
MACRO(ADD_OPTION _name _text _default)
IF(NOT DEFINED ${_name})
SET(${_name} ${_default})
ENDIF()
OPTION(${OPT}${_name} "${_text}" "${${_name}}")
ENDMACRO()
### Options ### ### Options ###
IF(NOT WIN32) IF(NOT WIN32)
OPTION(WITH_MYSQLCOMPAT "creates libmysql* symbolic links" ON) ADD_OPTION(WITH_MYSQLCOMPAT "creates libmysql* symbolic links" ON)
ELSE() ELSE()
OPTION(WITH_MSI "Build MSI installation package" OFF) ADD_OPTION(WITH_MSI "Build MSI installation package" OFF)
OPTION(WITH_SIGNCODE "digitally sign files" OFF) ADD_OPTION(WITH_SIGNCODE "digitally sign files" OFF)
OPTION(WITH_RTC "enables run time checks for debug builds" OFF) ADD_OPTION(WITH_RTC "enables run time checks for debug builds" OFF)
ENDIF() ENDIF()
OPTION(WITH_UNITTEST "build test suite" ON) ADD_OPTION(WITH_UNITTEST "build test suite" ON)
OPTION(WITH_DYNCOL "Enables support of dynamic coluumns" ON) ADD_OPTION(WITH_DYNCOL "Enables support of dynamic coluumns" ON)
OPTION(WITH_EXTERNAL_ZLIB "Enables use of external zlib" OFF) ADD_OPTION(WITH_EXTERNAL_ZLIB "Enables use of external zlib" OFF)
ADD_OPTION(WITH_CURL "Enables use of curl" ON)
ADD_OPTION(WITH_SQLITE "Experimental" OFF)
MARK_AS_ADVANCED(${OPT}WITH_SQLITE)
############### ###############
INCLUDE(${CC_SOURCE_DIR}/cmake/misc.cmake)
IF (WITH_CURL)
INCLUDE(FindCURL)
IF(CURL_FOUND)
ADD_DEFINITIONS(-DHAVE_CURL=1)
ENDIF()
ENDIF()
IF(WITH_SIGNCODE) IF(WITH_SIGNCODE)
IF(WIN32) IF(WIN32 AND NOT SIGN_OPTIONS)
SET(SIGN_OPTIONS /a /t http://timestamp.verisign.com/scripts/timstamp.dll) SET(SIGN_OPTIONS /a /t http://timestamp.verisign.com/scripts/timstamp.dll)
ENDIF() ENDIF()
MARK_AS_ADVANCED(SIGN_OPTIONS) MARK_AS_ADVANCED(SIGN_OPTIONS)
ENDIF() ENDIF()
SET(MARIADB_CONNECTOR_C_COPYRIGHT "2013-2016 MariaDB Corporation Ab")
IF(WITH_RTC) IF(WITH_RTC)
SET(RTC_OPTIONS "/RTC1 /RTCc") SET(RTC_OPTIONS "/RTC1 /RTCc")
ENDIF() ENDIF()
IF(NOT FOR_SERVER)
INCLUDE(FindCURL)
IF(CURL_FOUND)
ADD_DEFINITIONS(-DHAVE_CURL=1)
ENDIF()
ENDIF(NOT FOR_SERVER)
IF(NOT WIN32) IF(NOT WIN32)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/FindGSSAPI.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/FindGSSAPI.cmake)
IF(GSSAPI_FOUND) IF(GSSAPI_FOUND)
INCLUDE_DIRECTORIES(${GSSAPI_INCS}) INCLUDE_DIRECTORIES(${GSSAPI_INCS})
ENDIF() ENDIF()
ENDIF() ENDIF()
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/plugins.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/plugins.cmake)
IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC") IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC")
SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${GSSAPI_LIBS}) SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${GSSAPI_LIBS})
@@ -74,13 +100,13 @@ ENDIF()
IF(WIN32) IF(WIN32)
FILE(REMOVE ${PROJECT_BINARY_DIR}/win/packaging/plugin.conf) FILE(REMOVE ${CC_BINARY_DIR}/win/packaging/plugin.conf)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version_info.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/version_info.cmake)
ENDIF() ENDIF()
IF(MSVC) IF(MSVC)
# Speedup system tests # Speedup system tests
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/WindowsCache.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/WindowsCache.cmake)
IF (MSVC) IF (MSVC)
SET(CONFIG_TYPES "DEBUG" "RELEASE" "RELWITHDEBINFO") SET(CONFIG_TYPES "DEBUG" "RELEASE" "RELWITHDEBINFO")
FOREACH(BUILD_TYPE ${CONFIG_TYPES}) FOREACH(BUILD_TYPE ${CONFIG_TYPES})
@@ -134,7 +160,7 @@ IF(NOT MARIADB_UNIX_ADDR)
SET(MARIADB_UNIX_ADDR "/tmp/mysql.sock") SET(MARIADB_UNIX_ADDR "/tmp/mysql.sock")
ENDIF() ENDIF()
INCLUDE("${PROJECT_SOURCE_DIR}/cmake/install.cmake") INCLUDE("${CC_SOURCE_DIR}/cmake/install.cmake")
IF(NOT PLUGINDIR) IF(NOT PLUGINDIR)
SET(PLUGINDIR "${PREFIX_INSTALL_DIR}/${PLUGIN_INSTALL_DIR}") SET(PLUGINDIR "${PREFIX_INSTALL_DIR}/${PLUGIN_INSTALL_DIR}")
ENDIF() ENDIF()
@@ -143,7 +169,7 @@ ENDIF()
SET(SHAREDIR "share") SET(SHAREDIR "share")
SET(DEFAULT_CHARSET_HOME "${CMAKE_INSTALL_PREFIX}") SET(DEFAULT_CHARSET_HOME "${CMAKE_INSTALL_PREFIX}")
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/SearchLibrary.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/SearchLibrary.cmake)
IF(WITH_EXTERNAL_ZLIB) IF(WITH_EXTERNAL_ZLIB)
FIND_PACKAGE(ZLIB) FIND_PACKAGE(ZLIB)
@@ -165,7 +191,7 @@ IF(UNIX)
${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD}) ${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD})
SET(SYSTEM_LIBS ${LIBNSL} ${LIBBIND} ${LIBICONV} SET(SYSTEM_LIBS ${LIBNSL} ${LIBBIND} ${LIBICONV}
${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD}) ${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD})
MESSAGE(STATUS "SYSTEM_LIBS ${SYSTEM_LIBS}") MESSAGE1(SYSTEM_LIBS "SYSTEM_LIBS ${SYSTEM_LIBS}")
#remove possible dups from required libraries #remove possible dups from required libraries
LIST(LENGTH CMAKE_REQUIRED_LIBRARIES rllength) LIST(LENGTH CMAKE_REQUIRED_LIBRARIES rllength)
IF(${rllength} GREATER 0) IF(${rllength} GREATER 0)
@@ -194,11 +220,11 @@ ELSEIF()
ENDIF() ENDIF()
# check for various include files # check for various include files
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckIncludeFiles.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/CheckIncludeFiles.cmake)
# check for various functions # check for various functions
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckFunctions.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/CheckFunctions.cmake)
# check for various types # check for various types
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckTypes.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/CheckTypes.cmake)
IF(NOT WITH_SSL AND NOT WITH_SSL STREQUAL "OFF") IF(NOT WITH_SSL AND NOT WITH_SSL STREQUAL "OFF")
IF(WIN32) IF(WIN32)
@@ -213,29 +239,29 @@ IF(NOT WITH_SSL STREQUAL "OFF")
FIND_PACKAGE(OpenSSL) FIND_PACKAGE(OpenSSL)
IF(OPENSSL_FOUND) IF(OPENSSL_FOUND)
ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS) ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS)
SET(SSL_SOURCES "${PROJECT_SOURCE_DIR}/libmariadb/secure/openssl.c") SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c")
SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES}) SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES})
INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR})
MESSAGE(STATUS "OpenSSL version: ${OPENSSL_VERSION}") MESSAGE1(OPENSSL_VERSION "OpenSSL version: ${OPENSSL_VERSION}")
ELSE() ELSE()
MESSAGE(WARNING "OpenSSL not found") MESSAGE1(OPENSSL_VERSION "OpenSSL not found")
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(WITH_SSL STREQUAL "GNUTLS") IF(WITH_SSL STREQUAL "GNUTLS")
FIND_PACKAGE(GnuTLS) FIND_PACKAGE(GnuTLS)
IF(GNUTLS_FOUND) IF(GNUTLS_FOUND)
ADD_DEFINITIONS(-DHAVE_GNUTLS -DHAVE_TLS) ADD_DEFINITIONS(-DHAVE_GNUTLS -DHAVE_TLS)
SET(SSL_SOURCES "${PROJECT_SOURCE_DIR}/libmariadb/secure/gnutls.c") SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/gnutls.c")
SET(SSL_LIBRARIES ${GNUTLS_LIBRARY}) SET(SSL_LIBRARIES ${GNUTLS_LIBRARY})
ELSE() ELSE()
MESSAGE(FATAL "GnuTLS not found") MESSAGE(FATAL_ERROR "GnuTLS not found")
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(WIN32) IF(WIN32)
IF(WITH_SSL STREQUAL "SCHANNEL") IF(WITH_SSL STREQUAL "SCHANNEL")
ADD_DEFINITIONS(-DHAVE_SCHANNEL -DHAVE_TLS) ADD_DEFINITIONS(-DHAVE_SCHANNEL -DHAVE_TLS)
SET(SSL_SOURCES "${PROJECT_SOURCE_DIR}/libmariadb/secure/schannel.c" "${PROJECT_SOURCE_DIR}/libmariadb/secure/ma_schannel.c") SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/schannel.c" "${CC_SOURCE_DIR}/libmariadb/secure/ma_schannel.c")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/plugins/pvio/") INCLUDE_DIRECTORIES("${CC_SOURCE_DIR}/plugins/pvio/")
ENDIF() ENDIF()
ENDIF() ENDIF()
@@ -243,15 +269,17 @@ IF(NOT WITH_SSL STREQUAL "OFF")
ENDIF() ENDIF()
IF(NOT WIN32) IF(NOT WIN32)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/FindIconv.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/FindIconv.cmake)
ENDIF() ENDIF()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/ma_config.h.in CONFIGURE_FILE(${CC_SOURCE_DIR}/include/ma_config.h.in
${CMAKE_CURRENT_BINARY_DIR}/include/ma_config.h) ${CC_BINARY_DIR}/include/ma_config.h)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/mariadb_version.h.in CONFIGURE_FILE(${CC_SOURCE_DIR}/include/ma_config.h.in
${CMAKE_CURRENT_SOURCE_DIR}/include/mariadb_version.h) ${CC_BINARY_DIR}/include/config.h)
CONFIGURE_FILE(${CC_SOURCE_DIR}/include/mariadb_version.h.in
${CC_BINARY_DIR}/include/mariadb_version.h)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include) INCLUDE_DIRECTORIES(${CC_BINARY_DIR}/include)
IF(WIN32) IF(WIN32)
SET(SYSTEM_LIBS ws2_32 advapi32 kernel32) SET(SYSTEM_LIBS ws2_32 advapi32 kernel32)
@@ -277,7 +305,7 @@ IF(NOT REMOTEIO_PLUGIN_TYPE MATCHES "OFF")
ENDIF() ENDIF()
IF(NOT WIN32) IF(NOT WIN32)
IF(NOT AUTH_GSSAPI_PLUGIN_TYPE MATCHES "OFF") IF(NOT AUTH_GSSAPI_PLUGIN_TYPE MATCHES "OFF")
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/FindGSSAPI.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/FindGSSAPI.cmake)
IF(GSSAPI_FOUND) IF(GSSAPI_FOUND)
INCLUDE_DIRECTORIES(${GSSAPI_INCS}) INCLUDE_DIRECTORIES(${GSSAPI_INCS})
IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC") IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC")
@@ -293,7 +321,7 @@ IF(NOT WIN32)
ADD_SUBDIRECTORY(mariadb_config) ADD_SUBDIRECTORY(mariadb_config)
ENDIF() ENDIF()
IF(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/unittest) IF(IS_DIRECTORY ${CC_SOURCE_DIR}/unittest)
IF(WITH_UNITTEST STREQUAL "ON") IF(WITH_UNITTEST STREQUAL "ON")
ADD_SUBDIRECTORY(unittest/mytap) ADD_SUBDIRECTORY(unittest/mytap)
ADD_SUBDIRECTORY(unittest/libmariadb) ADD_SUBDIRECTORY(unittest/libmariadb)
@@ -302,7 +330,8 @@ ENDIF()
IF(CLIENT_DOCS) IF(CLIENT_DOCS)
INSTALL(DIRECTORY ${CLIENT_DOCS} INSTALL(DIRECTORY ${CLIENT_DOCS}
DESTINATION ${DOCS_INSTALL_DIR_${INSTALL_LAYOUT}}) DESTINATION ${DOCS_INSTALL_DIR_${INSTALL_LAYOUT}}
COMPONENT SharedLibraries)
ENDIF() ENDIF()
@@ -314,8 +343,8 @@ SET(CPACK_PACKAGE_VENDOR "MariaDB Corporation Ab")
SET(CPACK_PACKAGE_DESCRIPTION "MariaDB Connector/C. A library for connecting to MariaDB and MySQL servers") SET(CPACK_PACKAGE_DESCRIPTION "MariaDB Connector/C. A library for connecting to MariaDB and MySQL servers")
SET(CPACK_PACKAGE_NAME "mariadb_connector_c") SET(CPACK_PACKAGE_NAME "mariadb_connector_c")
STRING(TOLOWER ${CMAKE_SYSTEM_NAME} system_name) STRING(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.LIB") SET(CPACK_RESOURCE_FILE_LICENSE "${CC_SOURCE_DIR}/COPYING.LIB")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CC_SOURCE_DIR}/README")
INCLUDE(cmake/ConnectorName.cmake) INCLUDE(cmake/ConnectorName.cmake)
IF(NOT PACKAGE_STATUS_SUFFIX) IF(NOT PACKAGE_STATUS_SUFFIX)
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "mariadb-connector-c-${CPACK_PACKAGE_VERSION}-src") SET(CPACK_SOURCE_PACKAGE_FILE_NAME "mariadb-connector-c-${CPACK_PACKAGE_VERSION}-src")
@@ -330,7 +359,7 @@ IF(GIT_BUILD_SRCPKG)
EXECUTE_PROCESS(COMMAND git show-branch OUTPUT_VARIABLE git_branch) EXECUTE_PROCESS(COMMAND git show-branch OUTPUT_VARIABLE git_branch)
STRING(REGEX MATCH "\\[([^]]+)\\]" git_branch ${git_branch}) STRING(REGEX MATCH "\\[([^]]+)\\]" git_branch ${git_branch})
STRING(REGEX REPLACE "\\[|\\]" "" GIT_BRANCH ${git_branch}) STRING(REGEX REPLACE "\\[|\\]" "" GIT_BRANCH ${git_branch})
MESSAGE(STATUS "${GIT_BRANCH}") MESSAGE1(GIT_BRANCH "${GIT_BRANCH}")
IF(WIN32) IF(WIN32)
EXECUTE_PROCESS(COMMAND git archive ${GIT_BRANCH} --format=zip --prefix=${CPACK_SOURCE_PACKAGE_FILE_NAME}/ --output=${CPACK_SOURCE_PACKAGE_FILE_NAME}.zip) EXECUTE_PROCESS(COMMAND git archive ${GIT_BRANCH} --format=zip --prefix=${CPACK_SOURCE_PACKAGE_FILE_NAME}/ --output=${CPACK_SOURCE_PACKAGE_FILE_NAME}.zip)
ELSE() ELSE()
@@ -368,7 +397,7 @@ include/my_config\\\\.h$
) )
IF(WITH_TEST_SRCPKG) IF(WITH_TEST_SRCPKG)
SET(PACKAGE_FILE ${PROJECT_SOURCE_DIR}/package.name) SET(PACKAGE_FILE ${CC_SOURCE_DIR}/package.name)
FILE(REMOVE ${PACKAGE_FILE}) FILE(REMOVE ${PACKAGE_FILE})
FILE(WRITE ${PACKAGE_FILE} ${CPACK_SOURCE_PACKAGE_FILE_NAME}) FILE(WRITE ${PACKAGE_FILE} ${CPACK_SOURCE_PACKAGE_FILE_NAME})
ENDIF() ENDIF()
@@ -382,21 +411,20 @@ ELSE()
ENDIF() ENDIF()
INCLUDE(CPack) INCLUDE(CPack)
MESSAGE(STATUS "MariaDB Connector/c configuration:")
MESSAGE(STATUS "CPack generation: ${CPACK_GENERATOR}")
IF(CLIENT_DOCS)
MESSAGE(STATUS "Documentation included from ${CLIENT_DOCS}")
ENDIF()
MESSAGE(STATUS "SSL support: ${WITH_SSL} Libs: ${SSL_LIBRARIES}")
MESSAGE(STATUS "Experimental Sqlite support: ${WITH_SQLITE}")
IF(WITH_EXTERNAL_ZLIB) IF(WITH_EXTERNAL_ZLIB)
MESSAGE(STATUS "Zlib support: ${WITH_EXTERNAL_ZLIB}") SET(zlib_status: ${WITH_EXTERNAL_ZLIB})
ELSE() ELSE()
MESSAGE(STATUS "Zlib support: yes (using bundled zlib)") SET(zlib_status: "yes (using bundled zlib")
ENDIF() ENDIF()
MESSAGE(STATUS "Installation layout: ${INSTALL_LAYOUT}")
MESSAGE(STATUS "Include files will be installed in ${PREFIX_INSTALL_DIR}/${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}")
MESSAGE(STATUS "Libraries will be installed in ${PREFIX_INSTALL_DIR}/${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}")
MESSAGE(STATUS "Binaries will be installed in ${PREFIX_INSTALL_DIR}/${BIN_INSTALL_DIR}")
MESSAGE(STATUS "Required: ${CMAKE_REQUIRED_LIBRARIES}") MESSAGE1(STATUS "MariaDB Connector/c configuration:
-- CPack generation: ${CPACK_GENERATOR}
-- SSL support: ${WITH_SSL} Libs: ${SSL_LIBRARIES}
-- Experimental Sqlite support: ${WITH_SQLITE}
-- Zlib support: ${zlib_status}
-- Installation layout: ${INSTALL_LAYOUT}
-- Include files will be installed in ${PREFIX_INSTALL_DIR}/${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
-- Libraries will be installed in ${PREFIX_INSTALL_DIR}/${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
-- Binaries will be installed in ${PREFIX_INSTALL_DIR}/${BIN_INSTALL_DIR}
-- Documentation included from ${CLIENT_DOCS}
-- Required: ${CMAKE_REQUIRED_LIBRARIES}")

View File

@@ -1,4 +1,4 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
IF(WIN32) IF(WIN32)
SET_VERSION_INFO("TARGET:mariadb_client_plugin_info" SET_VERSION_INFO("TARGET:mariadb_client_plugin_info"
@@ -12,5 +12,6 @@ ADD_EXECUTABLE(mariadb_client_plugin_info ${mariadb_client_plugin_info_RC} ma_pl
TARGET_LINK_LIBRARIES(mariadb_client_plugin_info mariadbclient) TARGET_LINK_LIBRARIES(mariadb_client_plugin_info mariadbclient)
INSTALL(TARGETS mariadb_client_plugin_info INSTALL(TARGETS mariadb_client_plugin_info
DESTINATION "bin") DESTINATION "bin"
COMPONENT SharedLibraries)
SIGN_TARGET(mariadb_client_plugin_info) SIGN_TARGET(mariadb_client_plugin_info)

View File

@@ -46,7 +46,7 @@ ENDIF()
SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM") SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM")
LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no) LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no)
IF(layout_no EQUAL -1) IF(layout_no EQUAL -1)
MESSAGE(FATAL_ERROR "Invalid installation layout. Please specify one of the following layouts: ${VALID_INSTALL_LAYOUTS}") MESSAGE(FATAL_ERROR "Invalid installation layout ${INSTALL_LAYOUT}. Please specify one of the following layouts: ${VALID_INSTALL_LAYOUTS}")
ENDIF() ENDIF()

View File

@@ -9,10 +9,11 @@
MACRO(INSTALL_PLUGIN name binary_dir) MACRO(INSTALL_PLUGIN name binary_dir)
INSTALL(TARGETS ${name} INSTALL(TARGETS ${name}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}" RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}" LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}"
ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}") ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}")
IF(WIN32) IF(WIN32)
FILE(APPEND ${PROJECT_BINARY_DIR}/win/packaging/plugin.conf "<File Id=\"${name}.dll\" Name=\"${name}.dll\" DiskId=\"1\" Source=\"${binary_dir}/${CMAKE_BUILD_TYPE}/${name}.dll\"/>\n") FILE(APPEND ${CC_BINARY_DIR}/win/packaging/plugin.conf "<File Id=\"${name}.dll\" Name=\"${name}.dll\" DiskId=\"1\" Source=\"${binary_dir}/${CMAKE_BUILD_TYPE}/${name}.dll\"/>\n")
ENDIF() ENDIF()
ENDMACRO() ENDMACRO()

13
cmake/misc.cmake Normal file
View File

@@ -0,0 +1,13 @@
IF ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.8.7")
FUNCTION(MESSAGE1 id out)
MESSAGE(STATUS "${out}")
ENDFUNCTION()
ELSE()
FUNCTION(MESSAGE1 id out)
STRING(MD5 hash "${out}")
IF(NOT __msg1_${id} STREQUAL "${hash}")
MESSAGE(STATUS "${out}")
ENDIF()
SET(__msg1_${id} ${hash} CACHE INTERNAL "")
ENDFUNCTION()
ENDIF()

View File

@@ -31,23 +31,23 @@ ENDMACRO()
MARK_AS_ADVANCED(PLUGINS) MARK_AS_ADVANCED(PLUGINS)
# CIO # CIO
REGISTER_PLUGIN("SOCKET" "${PROJECT_SOURCE_DIR}/plugins/pvio/pvio_socket.c" "pvio_socket_plugin" "STATIC" pvio_socket 0) REGISTER_PLUGIN("SOCKET" "${CC_SOURCE_DIR}/plugins/pvio/pvio_socket.c" "pvio_socket_plugin" "STATIC" pvio_socket 0)
IF(WIN32) IF(WIN32)
REGISTER_PLUGIN("NPIPE" "${PROJECT_SOURCE_DIR}/plugins/pvio/pvio_npipe.c" "pvio_npipe_plugin" "STATIC" pvio_npipe 1) REGISTER_PLUGIN("NPIPE" "${CC_SOURCE_DIR}/plugins/pvio/pvio_npipe.c" "pvio_npipe_plugin" "STATIC" pvio_npipe 1)
REGISTER_PLUGIN("SHMEM" "${PROJECT_SOURCE_DIR}/plugins/pvio/pvio_shmem.c" "pvio_shmem_plugin" "STATIC" pvio_shmem 1) REGISTER_PLUGIN("SHMEM" "${CC_SOURCE_DIR}/plugins/pvio/pvio_shmem.c" "pvio_shmem_plugin" "STATIC" pvio_shmem 1)
ENDIF() ENDIF()
# AUTHENTICATION # AUTHENTICATION
REGISTER_PLUGIN("AUTH_NATIVE" "${PROJECT_SOURCE_DIR}/plugins/auth/my_auth.c" "native_password_client_plugin" "STATIC" "" 0) REGISTER_PLUGIN("AUTH_NATIVE" "${CC_SOURCE_DIR}/plugins/auth/my_auth.c" "native_password_client_plugin" "STATIC" "" 0)
REGISTER_PLUGIN("AUTH_OLDPASSWORD" "${PROJECT_SOURCE_DIR}/plugins/auth/old_password.c" "old_password_client_plugin" "STATIC" "" 1) REGISTER_PLUGIN("AUTH_OLDPASSWORD" "${CC_SOURCE_DIR}/plugins/auth/old_password.c" "old_password_client_plugin" "STATIC" "" 1)
REGISTER_PLUGIN("AUTH_DIALOG" "${PROJECT_SOURCE_DIR}/plugins/auth/dialog.c" "auth_dialog_plugin" "DYNAMIC" dialog 1) REGISTER_PLUGIN("AUTH_DIALOG" "${CC_SOURCE_DIR}/plugins/auth/dialog.c" "auth_dialog_plugin" "DYNAMIC" dialog 1)
REGISTER_PLUGIN("AUTH_CLEARTEXT" "${PROJECT_SOURCE_DIR}/plugins/auth/mariadb_clear_text.c" "auth_cleartext_plugin" "DYNAMIC" "mysql_clear_password" 1) REGISTER_PLUGIN("AUTH_CLEARTEXT" "${CC_SOURCE_DIR}/plugins/auth/mariadb_clear_text.c" "auth_cleartext_plugin" "DYNAMIC" "mysql_clear_password" 1)
IF(WIN32) IF(WIN32)
SET(GSSAPI_SOURCES ${PROJECT_SOURCE_DIR}/plugins/auth/auth_gssapi_client.c ${PROJECT_SOURCE_DIR}/plugins/auth/sspi_client.c ${PROJECT_SOURCE_DIR}/plugins/auth/sspi_errmsg.c) SET(GSSAPI_SOURCES ${CC_SOURCE_DIR}/plugins/auth/auth_gssapi_client.c ${CC_SOURCE_DIR}/plugins/auth/sspi_client.c ${CC_SOURCE_DIR}/plugins/auth/sspi_errmsg.c)
REGISTER_PLUGIN("AUTH_GSSAPI" "${GSSAPI_SOURCES}" "auth_gssapi_plugin" "DYNAMIC" "auth_gssapi_client" 1) REGISTER_PLUGIN("AUTH_GSSAPI" "${GSSAPI_SOURCES}" "auth_gssapi_plugin" "DYNAMIC" "auth_gssapi_client" 1)
ELSE() ELSE()
IF(GSSAPI_FOUND) IF(GSSAPI_FOUND)
SET(GSSAPI_SOURCES ${PROJECT_SOURCE_DIR}/plugins/auth/auth_gssapi_client.c ${PROJECT_SOURCE_DIR}/plugins/auth/gssapi_client.c ${PROJECT_SOURCE_DIR}/plugins/auth/gssapi_errmsg.c) SET(GSSAPI_SOURCES ${CC_SOURCE_DIR}/plugins/auth/auth_gssapi_client.c ${CC_SOURCE_DIR}/plugins/auth/gssapi_client.c ${CC_SOURCE_DIR}/plugins/auth/gssapi_errmsg.c)
REGISTER_PLUGIN("AUTH_GSSAPI" "${GSSAPI_SOURCES}" "auth_gssapi_plugin" "DYNAMIC" "auth_gssapi_client" 1) REGISTER_PLUGIN("AUTH_GSSAPI" "${GSSAPI_SOURCES}" "auth_gssapi_plugin" "DYNAMIC" "auth_gssapi_client" 1)
ENDIF() ENDIF()
ENDIF() ENDIF()
@@ -55,18 +55,18 @@ ENDIF()
#Remote_IO #Remote_IO
IF(CURL_FOUND) IF(CURL_FOUND)
IF(WIN32) IF(WIN32)
REGISTER_PLUGIN("REMOTEIO" "${PROJECT_SOURCE_DIR}/plugins/io/remote_io.c" "remote_io_plugin" "DYNAMIC" "remote_io" 1) REGISTER_PLUGIN("REMOTEIO" "${CC_SOURCE_DIR}/plugins/io/remote_io.c" "remote_io_plugin" "DYNAMIC" "remote_io" 1)
ELSE() ELSE()
REGISTER_PLUGIN("REMOTEIO" "${PROJECT_SOURCE_DIR}/plugins/io/remote_io.c" "remote_io_plugin" "DYNAMIC" "remote_io" 1) REGISTER_PLUGIN("REMOTEIO" "${CC_SOURCE_DIR}/plugins/io/remote_io.c" "remote_io_plugin" "DYNAMIC" "remote_io" 1)
ENDIF() ENDIF()
ENDIF() ENDIF()
#Trace #Trace
REGISTER_PLUGIN("TRACE_EXAMPLE" "${PROJECT_SOURCE_DIR}/plugins/trace/trace_example.c" "trace_example_plugin" "DYNAMIC" "trace_example" 1) REGISTER_PLUGIN("TRACE_EXAMPLE" "${CC_SOURCE_DIR}/plugins/trace/trace_example.c" "trace_example_plugin" "DYNAMIC" "trace_example" 1)
#Connection #Connection
REGISTER_PLUGIN("REPLICATION" "${PROJECT_SOURCE_DIR}/plugins/connection/replication.c" "connection_replication_plugin" "DYNAMIC" "replication" 1) REGISTER_PLUGIN("REPLICATION" "${CC_SOURCE_DIR}/plugins/connection/replication.c" "connection_replication_plugin" "DYNAMIC" "replication" 1)
REGISTER_PLUGIN("AURORA" "${PROJECT_SOURCE_DIR}/plugins/connection/aurora.c" "connection_aurora_plugin" "DYNAMIC" "aurora" 1) REGISTER_PLUGIN("AURORA" "${CC_SOURCE_DIR}/plugins/connection/aurora.c" "connection_aurora_plugin" "DYNAMIC" "aurora" 1)
# Allow registration of additional plugins # Allow registration of additional plugins
IF(PLUGIN_CONF_FILE) IF(PLUGIN_CONF_FILE)
@@ -76,20 +76,20 @@ ENDIF()
SET(LIBMARIADB_SOURCES "") SET(LIBMARIADB_SOURCES "")
MESSAGE(STATUS "Plugin configuration:")
FOREACH(PLUGIN ${PLUGINS}) FOREACH(PLUGIN ${PLUGINS})
IF(WITH_${PLUGIN}_PLUGIN AND ${${PLUGIN}_PLUGIN_CHG} GREATER 0) IF(${OPT}WITH_${PLUGIN}_PLUGIN AND ${${PLUGIN}_PLUGIN_CHG} GREATER 0)
SET(${PLUGIN}_PLUGIN_TYPE ${WITH_${PLUGIN}_PLUGIN}) SET(${PLUGIN}_PLUGIN_TYPE ${${OPT}WITH_${PLUGIN}_PLUGIN})
ENDIF() ENDIF()
IF(${PLUGIN}_PLUGIN_TYPE MATCHES "STATIC") IF(${PLUGIN}_PLUGIN_TYPE MATCHES "STATIC")
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${${PLUGIN}_PLUGIN_SOURCE}) SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${${PLUGIN}_PLUGIN_SOURCE})
SET(EXTERNAL_PLUGINS "${EXTERNAL_PLUGINS}extern struct st_mysql_client_plugin ${${PLUGIN}_PLUGIN_STRUCT};\n") SET(EXTERNAL_PLUGINS "${EXTERNAL_PLUGINS}extern struct st_mysql_client_plugin ${${PLUGIN}_PLUGIN_STRUCT};\n")
SET(BUILTIN_PLUGINS "${BUILTIN_PLUGINS}(struct st_mysql_client_plugin *)&${${PLUGIN}_PLUGIN_STRUCT},\n") SET(BUILTIN_PLUGINS "${BUILTIN_PLUGINS}(struct st_mysql_client_plugin *)&${${PLUGIN}_PLUGIN_STRUCT},\n")
ENDIF() ENDIF()
MESSAGE(STATUS "${PLUGIN}: ${${PLUGIN}_PLUGIN_TYPE}") SET(plugin_config "${plugin_config}\n-- ${PLUGIN}: ${${PLUGIN}_PLUGIN_TYPE}")
MARK_AS_ADVANCED(${PLUGIN}_PLUGIN_TYPE) MARK_AS_ADVANCED(${PLUGIN}_PLUGIN_TYPE)
ENDFOREACH() ENDFOREACH()
MESSAGE(STATUS "STATIC PLUGIN SOURCES: ${LIBMARIADB_SOURCES}") MESSAGE1(plugin_config "Plugin configuration:${plugin_config}")
MESSAGE1(LIBMARIADB_SOURCES "STATIC PLUGIN SOURCES: ${LIBMARIADB_SOURCES}")
IF(NOT REMOTEIO_PLUGIN_TYPE MATCHES "NO") IF(NOT REMOTEIO_PLUGIN_TYPE MATCHES "NO")
FIND_PACKAGE(CURL) FIND_PACKAGE(CURL)
@@ -98,7 +98,7 @@ ENDIF()
# since some files contain multiple plugins, remove duplicates from source files # since some files contain multiple plugins, remove duplicates from source files
LIST(REMOVE_DUPLICATES LIBMARIADB_SOURCES) LIST(REMOVE_DUPLICATES LIBMARIADB_SOURCES)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/libmariadb/ma_client_plugin.c.in CONFIGURE_FILE(${CC_SOURCE_DIR}/libmariadb/ma_client_plugin.c.in
${PROJECT_BINARY_DIR}/libmariadb/ma_client_plugin.c) ${CC_BINARY_DIR}/libmariadb/ma_client_plugin.c)
MARK_AS_ADVANCED(LIBMARIADB_SOURCES) MARK_AS_ADVANCED(LIBMARIADB_SOURCES)

View File

@@ -32,6 +32,8 @@ IF(UNIX)
"\${CMAKE_INSTALL_CONFIG_NAME}" output ${target_path}/${symlink_name}) "\${CMAKE_INSTALL_CONFIG_NAME}" output ${target_path}/${symlink_name})
ENDIF() ENDIF()
INSTALL(FILES ${target_path}/${symlink_name} DESTINATION ${install_path}) # presumably this will be used for libmysql*.so symlinks
INSTALL(FILES ${target_path}/${symlink_name} DESTINATION ${install_path}
COMPONENT SharedLibraries)
ENDIF() ENDIF()
ENDMACRO() ENDMACRO()

View File

@@ -9,8 +9,8 @@ FUNCTION(GET_FILE_VERSION FILE_NAME FILE_VERSION)
# if we build from a git repository, we calculate the file version: # if we build from a git repository, we calculate the file version:
# Patch number is numer of commits for given file # Patch number is numer of commits for given file
IF(EXISTS ${PROJECT_SOURCE_DIR}/.git) IF(EXISTS ${CC_SOURCE_DIR}/.git)
EXECUTE_PROCESS(COMMAND git --git-dir=${PROJECT_SOURCE_DIR}/.git --work-tree=${PROJECT_SOURCE_DIR} rev-list HEAD --count -- ${FILE_NAME} EXECUTE_PROCESS(COMMAND git --git-dir=${CC_SOURCE_DIR}/.git --work-tree=${CC_SOURCE_DIR} rev-list HEAD --count -- ${FILE_NAME}
OUTPUT_VARIABLE FV) OUTPUT_VARIABLE FV)
STRING(REPLACE "\n" "" FV ${FV}) STRING(REPLACE "\n" "" FV ${FV})
SET(${FILE_VERSION} ${FV} PARENT_SCOPE) SET(${FILE_VERSION} ${FV} PARENT_SCOPE)
@@ -35,9 +35,9 @@ MACRO(SET_VERSION_INFO)
STRING(REPLACE "FILE_DESCRIPTION:" "" FILE_DESCRIPTION ${PROPERTY}) STRING(REPLACE "FILE_DESCRIPTION:" "" FILE_DESCRIPTION ${PROPERTY})
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/win/resource.rc.in CONFIGURE_FILE(${CC_SOURCE_DIR}/win/resource.rc.in
${PROJECT_BINARY_DIR}/win/${TARGET}.rc) ${CC_BINARY_DIR}/win/${TARGET}.rc)
SET(${TARGET}_RC ${PROJECT_BINARY_DIR}/win/${TARGET}.rc) SET(${TARGET}_RC ${CC_BINARY_DIR}/win/${TARGET}.rc)
ENDMACRO() ENDMACRO()

View File

@@ -1,7 +1,7 @@
SET(EXAMPLE_FILES "mysql_affected_rows" SET(EXAMPLE_FILES "mysql_affected_rows"
"mysql_debug") "mysql_debug")
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
ENABLE_TESTING() ENABLE_TESTING()
@@ -13,6 +13,6 @@ FOREACH(EXAMPLE_FILE ${EXAMPLE_FILES})
SET(XML_EXAMPLE_FILES $XML_EXAMPLE_FILES "examples/${EXAMPLE_FILE}.c") SET(XML_EXAMPLE_FILES $XML_EXAMPLE_FILES "examples/${EXAMPLE_FILE}.c")
ADD_EXECUTABLE(${EXAMPLE_FILE} ${EXAMPLE_FILE}.c) ADD_EXECUTABLE(${EXAMPLE_FILE} ${EXAMPLE_FILE}.c)
TARGET_LINK_LIBRARIES(${EXAMPLE_FILE} mariadbclient) TARGET_LINK_LIBRARIES(${EXAMPLE_FILE} mariadbclient)
ADD_TEST(TEST_${EXAMPLE_FILE} ./${EXECUTABLE_OUTPUT_PATH}/test_output ./${EXAMPLE_FILE} ${PROJECT_SOURCE_DIR}/examples/${EXAMPLE_FILE}.out ${PROJECT_SOURCE_DIR}/examples/${EXAMPLE_FILE}.exp) ADD_TEST(TEST_${EXAMPLE_FILE} ./${EXECUTABLE_OUTPUT_PATH}/test_output ./${EXAMPLE_FILE} ${CC_SOURCE_DIR}/examples/${EXAMPLE_FILE}.out ${CC_SOURCE_DIR}/examples/${EXAMPLE_FILE}.exp)
ENDFOREACH(EXAMPLE_FILE ${EXAMPLE_FILES}) ENDFOREACH(EXAMPLE_FILE ${EXAMPLE_FILES})

View File

@@ -1,31 +1,31 @@
SET(MARIADB_CLIENT_INCLUDES ${PROJECT_SOURCE_DIR}/include/mariadb_com.h SET(MARIADB_CLIENT_INCLUDES ${CC_SOURCE_DIR}/include/mariadb_com.h
${PROJECT_SOURCE_DIR}/include/mysql.h ${CC_SOURCE_DIR}/include/mysql.h
${PROJECT_SOURCE_DIR}/include/mariadb_stmt.h ${CC_SOURCE_DIR}/include/mariadb_stmt.h
${PROJECT_SOURCE_DIR}/include/ma_pvio.h ${CC_SOURCE_DIR}/include/ma_pvio.h
${PROJECT_SOURCE_DIR}/include/ma_tls.h ${CC_SOURCE_DIR}/include/ma_tls.h
${PROJECT_SOURCE_DIR}/include/mariadb_version.h ${CC_SOURCE_DIR}/include/mariadb_version.h
${PROJECT_SOURCE_DIR}/include/ma_list.h ${CC_SOURCE_DIR}/include/ma_list.h
${PROJECT_SOURCE_DIR}/include/ma_errmsg.h ${CC_SOURCE_DIR}/include/ma_errmsg.h
${PROJECT_SOURCE_DIR}/include/mariadb_dyncol.h ${CC_SOURCE_DIR}/include/mariadb_dyncol.h
${PROJECT_SOURCE_DIR}/include/mariadb_ctype.h) ${CC_SOURCE_DIR}/include/mariadb_ctype.h)
SET(MYSQL_ADDITIONAL_INCLUDES SET(MYSQL_ADDITIONAL_INCLUDES
${PROJECT_SOURCE_DIR}/include/mysql/client_plugin.h ${CC_SOURCE_DIR}/include/mysql/client_plugin.h
${PROJECT_SOURCE_DIR}/include/mysql/plugin_auth_common.h ${CC_SOURCE_DIR}/include/mysql/plugin_auth_common.h
${PROJECT_SOURCE_DIR}/include/mysql/plugin_auth.h) ${CC_SOURCE_DIR}/include/mysql/plugin_auth.h)
SET(MARIADB_ADDITIONAL_INCLUDES SET(MARIADB_ADDITIONAL_INCLUDES
${PROJECT_SOURCE_DIR}/include/mariadb/ma_io.h) ${CC_SOURCE_DIR}/include/mariadb/ma_io.h)
INSTALL(FILES INSTALL(FILES
${MARIADB_CLIENT_INCLUDES} ${MARIADB_CLIENT_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR} DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
COMPONENT ALL) COMPONENT Development)
INSTALL(FILES INSTALL(FILES
${MYSQL_ADDITIONAL_INCLUDES} ${MYSQL_ADDITIONAL_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mysql DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mysql
COMPONENT ALL) COMPONENT Development)
INSTALL(FILES INSTALL(FILES
${MARIADB_ADDITIONAL_INCLUDES} ${MARIADB_ADDITIONAL_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mariadb DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mariadb
COMPONENT ALL) COMPONENT Development)

View File

@@ -1,13 +1,13 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include
${ZLIB_INC} ${ZLIB_INC}
${PROJECT_SOURCE_DIR}/libmariadb) ${CC_SOURCE_DIR}/libmariadb)
ADD_DEFINITIONS(-D ENABLED_LOCAL_INFILE) ADD_DEFINITIONS(-D ENABLED_LOCAL_INFILE)
ADD_DEFINITIONS(-D HAVE_COMPRESS) ADD_DEFINITIONS(-D HAVE_COMPRESS)
ADD_DEFINITIONS(-D LIBMARIADB) ADD_DEFINITIONS(-D LIBMARIADB)
ADD_DEFINITIONS(-D THREAD) ADD_DEFINITIONS(-D THREAD)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
SET(MARIADB_LIB_SYMBOLS SET(MARIADB_LIB_SYMBOLS
mariadb_cancel mariadb_cancel
@@ -272,16 +272,16 @@ ma_loaddata.c
ma_stmt_codec.c ma_stmt_codec.c
ma_string.c ma_string.c
ma_dtoa.c ma_dtoa.c
${PROJECT_BINARY_DIR}/libmariadb/ma_client_plugin.c ${CC_BINARY_DIR}/libmariadb/ma_client_plugin.c
ma_io.c ma_io.c
${SSL_SOURCES} ${SSL_SOURCES}
) )
IF(WIN32) IF(WIN32)
ADD_DEFINITIONS(-DSIZEOF_CHARP=${CMAKE_SIZEOF_VOID_P}) ADD_DEFINITIONS(-DSIZEOF_CHARP=${CMAKE_SIZEOF_VOID_P})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win-iconv) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/win-iconv)
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES}
${PROJECT_SOURCE_DIR}/win-iconv/win_iconv.c) ${CC_SOURCE_DIR}/win-iconv/win_iconv.c)
ELSE() ELSE()
IF(ICONV_INCLUDE_DIR) IF(ICONV_INCLUDE_DIR)
INCLUDE_DIRECTORIES(BEFORE ${ICONV_INCLUDE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${ICONV_INCLUDE_DIR})
@@ -311,11 +311,11 @@ ELSE()
../zlib/zutil.c ../zlib/zutil.c
) )
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${ZLIB_SOURCES}) SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${ZLIB_SOURCES})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/zlib) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/zlib)
ENDIF() ENDIF()
IF(WITH_DYNCOL) IF(WITH_DYNCOL)
MESSAGE(STATUS "Dynamic column API support=ON") MESSAGE1(WITH_DYNCOL "Dynamic column API support: ON")
SET(MARIADB_LIB_SYMBOLS ${MARIADB_LIB_SYMBOLS} ${MARIADB_DYNCOL_SYMBOLS}) SET(MARIADB_LIB_SYMBOLS ${MARIADB_LIB_SYMBOLS} ${MARIADB_DYNCOL_SYMBOLS})
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_dyncol.c) SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_dyncol.c)
ENDIF() ENDIF()
@@ -323,7 +323,7 @@ ENDIF()
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_async.c ma_context.c) SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_async.c ma_context.c)
SET(MARIADB_LIB_SYMBOLS ${MARIADB_LIB_SYMBOLS} ${MARIADB_NONBLOCK_SYMBOLS}) SET(MARIADB_LIB_SYMBOLS ${MARIADB_LIB_SYMBOLS} ${MARIADB_NONBLOCK_SYMBOLS})
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/export.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/export.cmake)
CREATE_EXPORT_FILE(mariadbclient CREATE_EXPORT_FILE(mariadbclient
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
"${MARIADB_LIB_SYMBOLS}") "${MARIADB_LIB_SYMBOLS}")
@@ -343,8 +343,8 @@ ENDIF()
# Xcode doesn't support targets that have only object files, # Xcode doesn't support targets that have only object files,
# so let's add an empty file to keep Xcode happy # so let's add an empty file to keep Xcode happy
IF(CMAKE_GENERATOR MATCHES Xcode) IF(CMAKE_GENERATOR MATCHES Xcode)
FILE(WRITE ${PROJECT_SOURCE_DIR}/libmariadb/empty.c "") FILE(WRITE ${CC_SOURCE_DIR}/libmariadb/empty.c "")
SET(EMPTY_FILE ${PROJECT_SOURCE_DIR}/libmariadb/empty.c) SET(EMPTY_FILE ${CC_SOURCE_DIR}/libmariadb/empty.c)
ENDIF() ENDIF()
IF(WIN32) IF(WIN32)
@@ -359,14 +359,6 @@ ADD_LIBRARY(mariadbclient STATIC ${mariadbclient_RC} ${MARIADB_OBJECTS} ${EMPTY_
TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS}) TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS})
ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE} mariadbclient.def) ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE} mariadbclient.def)
TARGET_LINK_LIBRARIES(libmariadb ${SYSTEM_LIBS}) TARGET_LINK_LIBRARIES(libmariadb ${SYSTEM_LIBS})
IF(FOR_SERVER)
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES OUTPUT_NAME mysqlclient)
IF(WIN32)
SET_TARGET_PROPERTIES(libmariadb PROPERTIES OUTPUT_NAME libmysql)
ELSE()
SET_TARGET_PROPERTIES(libmariadb PROPERTIES OUTPUT_NAME libmysqlclient)
ENDIF()
ENDIF()
IF(UNIX) IF(UNIX)
SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}") SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
@@ -379,7 +371,7 @@ ENDIF()
IF(CMAKE_SYSTEM_NAME MATCHES "Linux") IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined") TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined")
TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${PROJECT_BINARY_DIR}/libmariadb/mariadbclient.def") TARGET_LINK_LIBRARIES (libmariadb "-Wl,--version-script=${CC_BINARY_DIR}/libmariadb/mariadbclient.def")
ENDIF() ENDIF()
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}") SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
@@ -390,7 +382,7 @@ SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "")
# #
# Installation # Installation
# #
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/symlink.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/symlink.cmake)
# There are still several projects which don't make use # There are still several projects which don't make use
@@ -398,32 +390,17 @@ INCLUDE(${PROJECT_SOURCE_DIR}/cmake/symlink.cmake)
# use mariadb client library we provide libmysql symlinks # use mariadb client library we provide libmysql symlinks
SET(INSTALL_PATH ${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}) SET(INSTALL_PATH ${LIB_INSTALL_DIR}/${SUFFIX_INSTALL_DIR})
IF(NOT FOR_SERVER) SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION
${CPACK_PACKAGE_VERSION_MAJOR} ${CPACK_PACKAGE_VERSION_MAJOR}
SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
ELSE()
SET(SHARED_LIB_MAJOR_VERSION 18 CACHE STRING "")
SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0" CACHE STRING "")
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
SET_TARGET_PROPERTIES(libmariadb PROPERTIES
VERSION ${SHARED_LIB_MAJOR_VERSION}
SOVERSION ${OS_SHARED_LIB_VERSION})
ENDIF()
create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH})
create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH})
ENDIF()
IF(NOT WIN32 AND WITH_MYSQLCOMPAT AND NOT FOR_SERVER) INSTALL(TARGETS mariadbclient
create_symlink(libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH}) COMPONENT Development
create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH}) RUNTIME DESTINATION "${INSTALL_PATH}"
create_symlink(libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH}) LIBRARY DESTINATION "${INSTALL_PATH}"
create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH}) ARCHIVE DESTINATION "${INSTALL_PATH}")
ENDIF() INSTALL(TARGETS libmariadb
COMPONENT SharedLibraries
INSTALL(TARGETS
libmariadb mariadbclient
RUNTIME DESTINATION "${INSTALL_PATH}" RUNTIME DESTINATION "${INSTALL_PATH}"
LIBRARY DESTINATION "${INSTALL_PATH}" LIBRARY DESTINATION "${INSTALL_PATH}"
ARCHIVE DESTINATION "${INSTALL_PATH}") ARCHIVE DESTINATION "${INSTALL_PATH}")
@@ -436,5 +413,6 @@ IF(WIN32)
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}" STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}"
pdb_location ${pdb_location}) pdb_location ${pdb_location})
ENDIF() ENDIF()
INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_PATH}") INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_PATH}"
COMPONENT Development)
ENDIF() ENDIF()

View File

@@ -1,4 +1,4 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
# Figure out additional libraries for use with # Figure out additional libraries for use with
@@ -41,4 +41,5 @@ TARGET_LINK_LIBRARIES(mariadb_config)
# Installation # Installation
# #
INSTALL(TARGETS mariadb_config INSTALL(TARGETS mariadb_config
DESTINATION "bin") DESTINATION "bin"
COMPONENT Development)

View File

@@ -1,7 +1,4 @@
IF(FOR_SERVER) FILE(GLOB plugin_dirs ${CC_SOURCE_DIR}/plugins/*)
RETURN()
ENDIF()
FILE(GLOB plugin_dirs ${PROJECT_SOURCE_DIR}/plugins/*)
FOREACH(dir ${plugin_dirs}) FOREACH(dir ${plugin_dirs})
IF (EXISTS ${dir}/CMakeLists.txt) IF (EXISTS ${dir}/CMakeLists.txt)
ADD_SUBDIRECTORY(${dir}) ADD_SUBDIRECTORY(${dir})

View File

@@ -1,9 +1,9 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/plugins/auth) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/plugins/auth)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE) IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF() ENDIF()
# Dialog plugin # Dialog plugin
@@ -16,13 +16,13 @@ IF(AUTH_DIALOG_PLUGIN_TYPE MATCHES "DYNAMIC")
"ORIGINAL_FILE_NAME:dialog.dll" "ORIGINAL_FILE_NAME:dialog.dll"
"FILE_DESCRIPTION:Authentication plugin") "FILE_DESCRIPTION:Authentication plugin")
ENDIF() ENDIF()
SET(DIALOG_SOURCES ${ialog_RC} dialog.c ${PROJECT_SOURCE_DIR}/libmariadb/get_password.c) SET(DIALOG_SOURCES ${ialog_RC} dialog.c ${CC_SOURCE_DIR}/libmariadb/get_password.c)
IF(WIN32) IF(WIN32)
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${PROJECT_SOURCE_DIR}/plugins/plugin.def) SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${CC_SOURCE_DIR}/plugins/plugin.def)
ENDIF() ENDIF()
ADD_LIBRARY(dialog MODULE ${DIALOG_SOURCES}) ADD_LIBRARY(dialog MODULE ${DIALOG_SOURCES})
SET_TARGET_PROPERTIES(dialog PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(dialog PROPERTIES PREFIX "")
INSTALL_PLUGIN(dialog ${PROJECT_BINARY_DIR}/plugins/auth) INSTALL_PLUGIN(dialog ${CC_BINARY_DIR}/plugins/auth)
SIGN_TARGET(dialog) SIGN_TARGET(dialog)
ENDIF() ENDIF()
@@ -38,11 +38,11 @@ IF(AUTH_OLDPASSWORD_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF() ENDIF()
SET(OLDPASSWORD_SOURCES ${old_password_RC} old_password.c) SET(OLDPASSWORD_SOURCES ${old_password_RC} old_password.c)
IF(WIN32) IF(WIN32)
SET(OLDPASSWORD_SOURCES ${DIALOG_SOURCES} ${PROJECT_SOURCE_DIR}/plugins/plugin.def) SET(OLDPASSWORD_SOURCES ${DIALOG_SOURCES} ${CC_SOURCE_DIR}/plugins/plugin.def)
ENDIF() ENDIF()
ADD_LIBRARY(mysql_old_password MODULE ${OLDPASSWORD_SOURCES}) ADD_LIBRARY(mysql_old_password MODULE ${OLDPASSWORD_SOURCES})
SET_TARGET_PROPERTIES(mysql_old_password PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(mysql_old_password PROPERTIES PREFIX "")
INSTALL_PLUGIN(mysql_old_password ${PROJECT_BINARY_DIR}/plugins/auth) INSTALL_PLUGIN(mysql_old_password ${CC_BINARY_DIR}/plugins/auth)
SIGN_TARGET(mysql_old_password) SIGN_TARGET(mysql_old_password)
ENDIF() ENDIF()
@@ -58,11 +58,11 @@ IF(AUTH_CLEARTEXT_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF() ENDIF()
SET(CTEXT_SOURCES mariadb_cleartext.c) SET(CTEXT_SOURCES mariadb_cleartext.c)
IF(WIN32) IF(WIN32)
SET(CTEXT_SOURCES ${CTEXT_SOURCES} ${mysql_clear_password_RC} ${PROJECT_SOURCE_DIR}/plugins/plugin.def) SET(CTEXT_SOURCES ${CTEXT_SOURCES} ${mysql_clear_password_RC} ${CC_SOURCE_DIR}/plugins/plugin.def)
ENDIF() ENDIF()
ADD_LIBRARY(mysql_clear_password MODULE ${CTEXT_SOURCES}) ADD_LIBRARY(mysql_clear_password MODULE ${CTEXT_SOURCES})
SET_TARGET_PROPERTIES(mysql_clear_password PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(mysql_clear_password PROPERTIES PREFIX "")
INSTALL_PLUGIN(mysql_clear_password ${PROJECT_BINARY_DIR}/plugins/auth) INSTALL_PLUGIN(mysql_clear_password ${CC_BINARY_DIR}/plugins/auth)
SIGN_TARGET(mysql_clear_password) SIGN_TARGET(mysql_clear_password)
ENDIF() ENDIF()
@@ -71,7 +71,7 @@ IF(WIN32)
SET(USE_SSPI 1) SET(USE_SSPI 1)
ENDIF() ENDIF()
MESSAGE(STATUS "GSSAPI: ${AUTH_GSSAPI_PLUGIN_TYPE}") MESSAGE1(GSSAPI "GSSAPI: ${AUTH_GSSAPI_PLUGIN_TYPE}")
IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC") IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC")
IF(WIN32) IF(WIN32)
SET_VERSION_INFO("TARGET:auth_gssapi_client" SET_VERSION_INFO("TARGET:auth_gssapi_client"
@@ -80,7 +80,7 @@ IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC")
"ORIGINAL_FILE_NAME:auth_gssapi_client.dll" "ORIGINAL_FILE_NAME:auth_gssapi_client.dll"
"FILE_DESCRIPTION:Authentication plugin") "FILE_DESCRIPTION:Authentication plugin")
ADD_DEFINITIONS(-DHAVE_AUTH_GSSAPI_DYNAMIC=1) ADD_DEFINITIONS(-DHAVE_AUTH_GSSAPI_DYNAMIC=1)
SET(GSSAPI_SOURCES auth_gssapi_client.c sspi_client.c sspi_errmsg.c ${PROJECT_SOURCE_DIR}/plugins/plugin.def ${gssapi_RC}) SET(GSSAPI_SOURCES auth_gssapi_client.c sspi_client.c sspi_errmsg.c ${CC_SOURCE_DIR}/plugins/plugin.def ${gssapi_RC})
ELSE() ELSE()
IF(GSSAPI_FOUND) IF(GSSAPI_FOUND)
SET(GSSAPI_SOURCES auth_gssapi_client.c gssapi_client.c gssapi_errmsg.c) SET(GSSAPI_SOURCES auth_gssapi_client.c gssapi_client.c gssapi_errmsg.c)
@@ -94,7 +94,7 @@ IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC")
TARGET_LINK_LIBRARIES(auth_gssapi_client ${GSSAPI_LIBS}) TARGET_LINK_LIBRARIES(auth_gssapi_client ${GSSAPI_LIBS})
ENDIF() ENDIF()
SET_TARGET_PROPERTIES(auth_gssapi_client PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(auth_gssapi_client PROPERTIES PREFIX "")
INSTALL_PLUGIN(auth_gssapi_client ${PROJECT_BINARY_DIR}/plugins/auth) INSTALL_PLUGIN(auth_gssapi_client ${CC_BINARY_DIR}/plugins/auth)
SIGN_TARGET(auth_gssapi_client) SIGN_TARGET(auth_gssapi_client)
ENDIF() ENDIF()
ENDIF() ENDIF()

View File

@@ -3,7 +3,7 @@ IF(WIN32)
ENDIF() ENDIF()
SET(CMAKE_SHARED_LIBRARY_PREFIX "") SET(CMAKE_SHARED_LIBRARY_PREFIX "")
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
IF(REPLICATION_PLUGIN_TYPE MATCHES "DYNAMIC") IF(REPLICATION_PLUGIN_TYPE MATCHES "DYNAMIC")
IF(WIN32) IF(WIN32)
@@ -41,6 +41,7 @@ ENDIF()
IF(INSTALL_LIBS) IF(INSTALL_LIBS)
INSTALL(TARGETS INSTALL(TARGETS
${INSTALL_LIBS} ${INSTALL_LIBS}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}" RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}" LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}"
ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}") ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}")

View File

@@ -1,8 +1,8 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE) IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF() ENDIF()
IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC") IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC")
@@ -18,10 +18,10 @@ IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC")
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
SET(REMOTE_IO_SOURCES ${remote_io_RC} remote_io.c) SET(REMOTE_IO_SOURCES ${remote_io_RC} remote_io.c)
ADD_DEFINITIONS(-DHAVE_REMOTEIO_DYNAMIC=1) ADD_DEFINITIONS(-DHAVE_REMOTEIO_DYNAMIC=1)
ADD_LIBRARY(remote_io MODULE ${REMOTE_IO_SOURCES} ${PROJECT_SOURCE_DIR}/plugins/plugin.def) ADD_LIBRARY(remote_io MODULE ${REMOTE_IO_SOURCES} ${CC_SOURCE_DIR}/plugins/plugin.def)
TARGET_LINK_LIBRARIES(remote_io ${CURL_LIBRARIES}) TARGET_LINK_LIBRARIES(remote_io ${CURL_LIBRARIES})
SET_TARGET_PROPERTIES(remote_io PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(remote_io PROPERTIES PREFIX "")
INSTALL_PLUGIN(remote_io ${PROJECT_BINARY_DIR}/plugins/io) INSTALL_PLUGIN(remote_io ${CC_BINARY_DIR}/plugins/io)
SIGN_TARGET(remote_io) SIGN_TARGET(remote_io)
ENDIF() ENDIF()
ENDIF() ENDIF()

View File

@@ -2,12 +2,12 @@ IF(WIN32)
SET(EXPORT_FILE "pvio_plugin.def") SET(EXPORT_FILE "pvio_plugin.def")
ENDIF() ENDIF()
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE) IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF() ENDIF()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
SET(CMAKE_SHARED_LIBRARY_PREFIX "") SET(CMAKE_SHARED_LIBRARY_PREFIX "")
@@ -21,7 +21,7 @@ IF(SOCKET_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF() ENDIF()
ADD_DEFINITIONS(-DHAVE_SOCKET_DYNAMIC=1) ADD_DEFINITIONS(-DHAVE_SOCKET_DYNAMIC=1)
ADD_LIBRARY(pvio_socket MODULE ${pvio_socket_RC} pvio_socket.c ${EXPORT_FILE}) ADD_LIBRARY(pvio_socket MODULE ${pvio_socket_RC} pvio_socket.c ${EXPORT_FILE})
INSTALL_PLUGIN(pvio_socket ${PROJECT_BINARY_DIR}/plugins/pvio) INSTALL_PLUGIN(pvio_socket ${CC_BINARY_DIR}/plugins/pvio)
SIGN_TARGET(pvio_socket) SIGN_TARGET(pvio_socket)
ENDIF() ENDIF()
@@ -36,7 +36,7 @@ IF(WIN32)
ENDIF() ENDIF()
ADD_DEFINITIONS(-DHAVE_NPIPE_DYNAMIC=1) ADD_DEFINITIONS(-DHAVE_NPIPE_DYNAMIC=1)
ADD_LIBRARY(pvio_npipe MODULE ${pvio_npipe_RC} pvio_npipe.c ${EXPORT_FILE}) ADD_LIBRARY(pvio_npipe MODULE ${pvio_npipe_RC} pvio_npipe.c ${EXPORT_FILE})
INSTALL_PLUGIN(pvio_npipe ${PROJECT_BINARY_DIR}/plugins/pvio) INSTALL_PLUGIN(pvio_npipe ${CC_BINARY_DIR}/plugins/pvio)
SIGN_TARGET(pvio_npipe) SIGN_TARGET(pvio_npipe)
ENDIF() ENDIF()
IF(SHMEM_PLUGIN_TYPE MATCHES "DYNAMIC") IF(SHMEM_PLUGIN_TYPE MATCHES "DYNAMIC")
@@ -49,7 +49,7 @@ IF(WIN32)
"FILE_DESCRIPTION:VIO plugin for shared memory communication") "FILE_DESCRIPTION:VIO plugin for shared memory communication")
ENDIF() ENDIF()
ADD_LIBRARY(pvio_shmem MODULE ${pvio_shmem_RC} pvio_shmem.c ${EXPORT_FILE}) ADD_LIBRARY(pvio_shmem MODULE ${pvio_shmem_RC} pvio_shmem.c ${EXPORT_FILE})
INSTALL_PLUGIN(pvio_shmem ${PROJECT_BINARY_DIR}/plugins/pvio) INSTALL_PLUGIN(pvio_shmem ${CC_BINARY_DIR}/plugins/pvio)
SIGN_TARGET(pvio_shmem) SIGN_TARGET(pvio_shmem)
ENDIF() ENDIF()
ENDIF() ENDIF()

View File

@@ -1,7 +1,7 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE) IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake) INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF() ENDIF()
# Trace example plugin # Trace example plugin
@@ -16,10 +16,10 @@ IF(TRACE_EXAMPLE_PLUGIN_TYPE MATCHES "DYNAMIC")
ADD_DEFINITIONS(-DHAVE_TRACE_EXAMPLE_PLUGIN_DYNAMIC=1) ADD_DEFINITIONS(-DHAVE_TRACE_EXAMPLE_PLUGIN_DYNAMIC=1)
SET(TRACE_EXAMPLE_SOURCES ${trace_example_RC} trace_example.c) SET(TRACE_EXAMPLE_SOURCES ${trace_example_RC} trace_example.c)
IF(WIN32) IF(WIN32)
SET(TRACE_EXAMPLE_SOURCES ${TRACE_EXAMPLE_SOURCES} ${PROJECT_SOURCE_DIR}/plugins/plugin.def) SET(TRACE_EXAMPLE_SOURCES ${TRACE_EXAMPLE_SOURCES} ${CC_SOURCE_DIR}/plugins/plugin.def)
ENDIF() ENDIF()
ADD_LIBRARY(trace_example MODULE ${TRACE_EXAMPLE_SOURCES}) ADD_LIBRARY(trace_example MODULE ${TRACE_EXAMPLE_SOURCES})
SET_TARGET_PROPERTIES(trace_example PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(trace_example PROPERTIES PREFIX "")
INSTALL_PLUGIN(trace_example ${PROJECT_BINARY_DIR}/plugins/trace) INSTALL_PLUGIN(trace_example ${CC_BINARY_DIR}/plugins/trace)
SIGN_TARGET(trace_example) SIGN_TARGET(trace_example)
ENDIF() ENDIF()

View File

@@ -20,9 +20,10 @@ ENDIF()
ENABLE_TESTING() ENABLE_TESTING()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include
${PROJECT_BINARY_DIR}/include ${CC_BINARY_DIR}/include
${PROJECT_SOURCE_DIR}/unittest/mytap) ${CC_SOURCE_DIR}/unittest/mytap
${CC_SOURCE_DIR}/unittest/libmariadb)
ADD_DEFINITIONS(-DLIBMARIADB) ADD_DEFINITIONS(-DLIBMARIADB)
SET(API_TESTS "performance" "basic-t" "fetch" "charset" "logs" "cursor" "errors" "view" "ps" "ps_bugs" "sp" "result" "connection" "misc" "ps_new" "sqlite3" "thread" "features-10_2" SET(API_TESTS "performance" "basic-t" "fetch" "charset" "logs" "cursor" "errors" "view" "ps" "ps_bugs" "sp" "result" "connection" "misc" "ps_new" "sqlite3" "thread" "features-10_2"
@@ -37,47 +38,50 @@ SET(API_TESTS ${API_TESTS} "async")
SET(MANUAL_TESTS "t_aurora" "t_conc173") SET(MANUAL_TESTS "t_aurora" "t_conc173")
# Get finger print from server certificate # Get finger print from server certificate
IF(WITH_SSL) IF(WITH_SSL)
IF(OPENSSL_FOUND) IF(OPENSSL_FOUND AND EXISTS "${CC_SOURCE_DIR}/unittest/libmariadb/certs")
#create certificates #create certificates
IF(EXISTS "${PROJECT_SOURCE_DIR}/unittest/libmariadb/certs/server-cert.pem") IF(EXISTS "${CC_SOURCE_DIR}/unittest/libmariadb/certs/server-cert.pem")
MESSAGE(STATUS "certificates already exist") MESSAGE(STATUS "certificates already exist")
ELSE() ELSE()
MESSAGE(STATUS "creating certificates") MESSAGE(STATUS "creating certificates")
IF(WIN32) IF(WIN32)
EXECUTE_PROCESS(COMMAND create_certs.bat EXECUTE_PROCESS(COMMAND create_certs.bat
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/unittest/libmariadb/certs WORKING_DIRECTORY ${CC_SOURCE_DIR}/unittest/libmariadb/certs
OUTPUT_FILE x.1 ERROR_FILE x.2) OUTPUT_FILE x.1 ERROR_FILE x.2)
ELSE() ELSE()
EXECUTE_PROCESS(COMMAND ./create_certs.sh EXECUTE_PROCESS(COMMAND ./create_certs.sh
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/unittest/libmariadb/certs) WORKING_DIRECTORY ${CC_SOURCE_DIR}/unittest/libmariadb/certs)
ENDIF() ENDIF()
ENDIF() ENDIF()
EXECUTE_PROCESS(COMMAND openssl x509 -in server-cert.pem -sha1 -fingerprint -noout EXECUTE_PROCESS(COMMAND openssl x509 -in server-cert.pem -sha1 -fingerprint -noout
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/unittest/libmariadb/certs WORKING_DIRECTORY ${CC_SOURCE_DIR}/unittest/libmariadb/certs
OUTPUT_VARIABLE FINGER_PRINT) OUTPUT_VARIABLE FINGER_PRINT)
STRING(REPLACE "SHA1 Fingerprint=" "" FINGER_PRINT "${FINGER_PRINT}") STRING(REPLACE "SHA1 Fingerprint=" "" FINGER_PRINT "${FINGER_PRINT}")
STRING(REPLACE "\n" "" FINGER_PRINT "${FINGER_PRINT}") STRING(REPLACE "\n" "" FINGER_PRINT "${FINGER_PRINT}")
STRING(REPLACE ":" "" SSL_CERT_FINGER_PRINT "${FINGER_PRINT}") STRING(REPLACE ":" "" SSL_CERT_FINGER_PRINT "${FINGER_PRINT}")
ENDIF() ENDIF()
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/unittest/libmariadb/ssl.c.in CONFIGURE_FILE(${CC_SOURCE_DIR}/unittest/libmariadb/ssl.c.in
${PROJECT_SOURCE_DIR}/unittest/libmariadb/ssl.c) ${CC_BINARY_DIR}/unittest/libmariadb/ssl.c)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/unittest/libmariadb/fingerprint.list.in CONFIGURE_FILE(${CC_SOURCE_DIR}/unittest/libmariadb/fingerprint.list.in
${PROJECT_SOURCE_DIR}/unittest/libmariadb/fingerprint.list) ${CC_BINARY_DIR}/unittest/libmariadb/fingerprint.list)
SET(API_TESTS ${API_TESTS} "ssl") SET(API_TESTS ${API_TESTS} "ssl")
ADD_EXECUTABLE(ssl ${CC_BINARY_DIR}/unittest/libmariadb/ssl.c)
ENDIF() ENDIF()
ADD_LIBRARY(ma_getopt ma_getopt.c) ADD_LIBRARY(ma_getopt ma_getopt.c)
FOREACH(API_TEST ${API_TESTS}) FOREACH(API_TEST ${API_TESTS})
IF (NOT TARGET ${API_TEST})
ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c) ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c)
TARGET_LINK_LIBRARIES(${API_TEST} mytap ma_getopt mariadbclient) ENDIF()
TARGET_LINK_LIBRARIES(${API_TEST} cctap ma_getopt mariadbclient)
ADD_TEST(${API_TEST} ${EXECUTABLE_OUTPUT_PATH}/${API_TEST}) ADD_TEST(${API_TEST} ${EXECUTABLE_OUTPUT_PATH}/${API_TEST})
SET_TESTS_PROPERTIES(${API_TEST} PROPERTIES TIMEOUT 120) SET_TESTS_PROPERTIES(${API_TEST} PROPERTIES TIMEOUT 120)
ENDFOREACH(API_TEST) ENDFOREACH(API_TEST)
FOREACH(API_TEST ${MANUAL_TESTS}) FOREACH(API_TEST ${MANUAL_TESTS})
ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c) ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c)
TARGET_LINK_LIBRARIES(${API_TEST} mytap ma_getopt mariadbclient) TARGET_LINK_LIBRARIES(${API_TEST} cctap ma_getopt mariadbclient)
ENDFOREACH() ENDFOREACH()

View File

@@ -14,9 +14,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/zlib INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include ${CC_SOURCE_DIR}/zlib
${PROJECT_SOURCE_DIR}/sql ${CC_BINARY_DIR}/include)
${PROJECT_BINARY_DIR}/include ADD_LIBRARY(cctap tap.c)
${PROJECT_SOURCE_DIR}/regex
${PROJECT_SOURCE_DIR}/extra/yassl/include)
ADD_LIBRARY(mytap tap.c)

View File

@@ -1,7 +1,7 @@
SET(CLIENT_LIB_DIR ${PROJECT_BINARY_DIR}/libmariadb/${CMAKE_BUILD_TYPE}) SET(CLIENT_LIB_DIR ${CC_BINARY_DIR}/libmariadb/${CMAKE_BUILD_TYPE})
SET(CLIENT_BIN_DIR ${PROJECT_BINARY_DIR}/client/${CMAKE_BUILD_TYPE}) SET(CLIENT_BIN_DIR ${CC_BINARY_DIR}/client/${CMAKE_BUILD_TYPE})
SET(CLIENT_DBG_DIR ${PROJECT_BINARY_DIR}/libmariadb/Debug) SET(CLIENT_DBG_DIR ${CC_BINARY_DIR}/libmariadb/Debug)
SET(CLIENT_INC_DIR ${PROJECT_SOURCE_DIR}/include) SET(CLIENT_INC_DIR ${CC_SOURCE_DIR}/include)
SET(PRODUCT_NAME "MariaDB Connector C") SET(PRODUCT_NAME "MariaDB Connector C")
SET(PRODUCT_INSTALL_DIR "MariaDB") SET(PRODUCT_INSTALL_DIR "MariaDB")
@@ -41,14 +41,14 @@ ENDFOREACH()
SET(ALL_INCLUDES ${MARIADB_CLIENT_INCLUDES} ${MARIADB_ADDITIONAL_INCLUDES}) SET(ALL_INCLUDES ${MARIADB_CLIENT_INCLUDES} ${MARIADB_ADDITIONAL_INCLUDES})
FOREACH(src ${ALL_INCLUDES}) FOREACH(src ${ALL_INCLUDES})
STRING(REPLACE "${PROJECT_SOURCE_DIR}/include/" "" src ${src}) STRING(REPLACE "${CC_SOURCE_DIR}/include/" "" src ${src})
STRING(REPLACE "-" "_" src_id ${src}) STRING(REPLACE "-" "_" src_id ${src})
STRING(REPLACE "mysql/" "" src_id ${src_id}) STRING(REPLACE "mysql/" "" src_id ${src_id})
STRING(REPLACE "mysql/" "" src_name ${src}) STRING(REPLACE "mysql/" "" src_name ${src})
IF(${src} MATCHES "mysql/") IF(${src} MATCHES "mysql/")
SET(MARIADB_INCLUDEMYSQL_FILES "${MARIADB_INCLUDEMYSQL_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${PROJECT_SOURCE_DIR}/include/${src}\"/>\n") SET(MARIADB_INCLUDEMYSQL_FILES "${MARIADB_INCLUDEMYSQL_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${CC_SOURCE_DIR}/include/${src}\"/>\n")
ELSE() ELSE()
SET(MARIADB_INCLUDE_FILES "${MARIADB_INCLUDE_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${PROJECT_SOURCE_DIR}/include/${src}\"/>\n") SET(MARIADB_INCLUDE_FILES "${MARIADB_INCLUDE_FILES} <File Id=\"${src_id}\" Name=\"${src_name}\" DiskId=\"1\" Source=\"${CC_SOURCE_DIR}/include/${src}\"/>\n")
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
@@ -92,5 +92,5 @@ SET_TARGET_PROPERTIES(${WIXOBJ} PROPERTIES EXCLUDE_FROM_ALL OFF)
ADD_DEPENDENCIES(${MSI_PACKAGE} WIXOBJ) ADD_DEPENDENCIES(${MSI_PACKAGE} WIXOBJ)
ADD_DEPENDENCIES(WIXOBJ libmariadb mariadbclient ${DYNAMIC_TARGETS}) ADD_DEPENDENCIES(WIXOBJ libmariadb mariadbclient ${DYNAMIC_TARGETS})
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/win/packaging/mariadb-connector-c.xml.in CONFIGURE_FILE(${CC_SOURCE_DIR}/win/packaging/mariadb-connector-c.xml.in
${PROJECT_BINARY_DIR}/win/packaging/mariadb-connector-c.xml) ${CC_BINARY_DIR}/win/packaging/mariadb-connector-c.xml)

View File

@@ -1,4 +1,4 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/zlib) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/zlib)
SET(SOURCE_FILES adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c minigzip.c trees.c uncompr.c zutil.c) SET(SOURCE_FILES adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c minigzip.c trees.c uncompr.c zutil.c)