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
# 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)
@@ -25,48 +16,83 @@ IF(COMMAND CMAKE_POLICY)
ENDFOREACH()
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 ###
IF(NOT WIN32)
OPTION(WITH_MYSQLCOMPAT "creates libmysql* symbolic links" ON)
ADD_OPTION(WITH_MYSQLCOMPAT "creates libmysql* symbolic links" ON)
ELSE()
OPTION(WITH_MSI "Build MSI installation package" OFF)
OPTION(WITH_SIGNCODE "digitally sign files" OFF)
OPTION(WITH_RTC "enables run time checks for debug builds" OFF)
ADD_OPTION(WITH_MSI "Build MSI installation package" OFF)
ADD_OPTION(WITH_SIGNCODE "digitally sign files" OFF)
ADD_OPTION(WITH_RTC "enables run time checks for debug builds" OFF)
ENDIF()
OPTION(WITH_UNITTEST "build test suite" ON)
OPTION(WITH_DYNCOL "Enables support of dynamic coluumns" ON)
OPTION(WITH_EXTERNAL_ZLIB "Enables use of external zlib" OFF)
ADD_OPTION(WITH_UNITTEST "build test suite" ON)
ADD_OPTION(WITH_DYNCOL "Enables support of dynamic coluumns" ON)
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(WIN32)
IF(WIN32 AND NOT SIGN_OPTIONS)
SET(SIGN_OPTIONS /a /t http://timestamp.verisign.com/scripts/timstamp.dll)
ENDIF()
MARK_AS_ADVANCED(SIGN_OPTIONS)
ENDIF()
SET(MARIADB_CONNECTOR_C_COPYRIGHT "2013-2016 MariaDB Corporation Ab")
IF(WITH_RTC)
SET(RTC_OPTIONS "/RTC1 /RTCc")
ENDIF()
IF(NOT FOR_SERVER)
INCLUDE(FindCURL)
IF(CURL_FOUND)
ADD_DEFINITIONS(-DHAVE_CURL=1)
ENDIF()
ENDIF(NOT FOR_SERVER)
IF(NOT WIN32)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/FindGSSAPI.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/FindGSSAPI.cmake)
IF(GSSAPI_FOUND)
INCLUDE_DIRECTORIES(${GSSAPI_INCS})
ENDIF()
ENDIF()
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/plugins.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/plugins.cmake)
IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC")
SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${GSSAPI_LIBS})
@@ -74,13 +100,13 @@ ENDIF()
IF(WIN32)
FILE(REMOVE ${PROJECT_BINARY_DIR}/win/packaging/plugin.conf)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version_info.cmake)
FILE(REMOVE ${CC_BINARY_DIR}/win/packaging/plugin.conf)
INCLUDE(${CC_SOURCE_DIR}/cmake/version_info.cmake)
ENDIF()
IF(MSVC)
# Speedup system tests
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/WindowsCache.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/WindowsCache.cmake)
IF (MSVC)
SET(CONFIG_TYPES "DEBUG" "RELEASE" "RELWITHDEBINFO")
FOREACH(BUILD_TYPE ${CONFIG_TYPES})
@@ -134,7 +160,7 @@ IF(NOT MARIADB_UNIX_ADDR)
SET(MARIADB_UNIX_ADDR "/tmp/mysql.sock")
ENDIF()
INCLUDE("${PROJECT_SOURCE_DIR}/cmake/install.cmake")
INCLUDE("${CC_SOURCE_DIR}/cmake/install.cmake")
IF(NOT PLUGINDIR)
SET(PLUGINDIR "${PREFIX_INSTALL_DIR}/${PLUGIN_INSTALL_DIR}")
ENDIF()
@@ -143,7 +169,7 @@ ENDIF()
SET(SHAREDIR "share")
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)
FIND_PACKAGE(ZLIB)
@@ -165,7 +191,7 @@ IF(UNIX)
${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD})
SET(SYSTEM_LIBS ${LIBNSL} ${LIBBIND} ${LIBICONV}
${LIBSOCKET} ${LIBDL} ${LIBM} ${LIBPTHREAD})
MESSAGE(STATUS "SYSTEM_LIBS ${SYSTEM_LIBS}")
MESSAGE1(SYSTEM_LIBS "SYSTEM_LIBS ${SYSTEM_LIBS}")
#remove possible dups from required libraries
LIST(LENGTH CMAKE_REQUIRED_LIBRARIES rllength)
IF(${rllength} GREATER 0)
@@ -194,11 +220,11 @@ ELSEIF()
ENDIF()
# check for various include files
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckIncludeFiles.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/CheckIncludeFiles.cmake)
# check for various functions
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/CheckFunctions.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/CheckFunctions.cmake)
# 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(WIN32)
@@ -213,29 +239,29 @@ IF(NOT WITH_SSL STREQUAL "OFF")
FIND_PACKAGE(OpenSSL)
IF(OPENSSL_FOUND)
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})
INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR})
MESSAGE(STATUS "OpenSSL version: ${OPENSSL_VERSION}")
MESSAGE1(OPENSSL_VERSION "OpenSSL version: ${OPENSSL_VERSION}")
ELSE()
MESSAGE(WARNING "OpenSSL not found")
MESSAGE1(OPENSSL_VERSION "OpenSSL not found")
ENDIF()
ENDIF()
IF(WITH_SSL STREQUAL "GNUTLS")
FIND_PACKAGE(GnuTLS)
IF(GNUTLS_FOUND)
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})
ELSE()
MESSAGE(FATAL "GnuTLS not found")
MESSAGE(FATAL_ERROR "GnuTLS not found")
ENDIF()
ENDIF()
IF(WIN32)
IF(WITH_SSL STREQUAL "SCHANNEL")
ADD_DEFINITIONS(-DHAVE_SCHANNEL -DHAVE_TLS)
SET(SSL_SOURCES "${PROJECT_SOURCE_DIR}/libmariadb/secure/schannel.c" "${PROJECT_SOURCE_DIR}/libmariadb/secure/ma_schannel.c")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/plugins/pvio/")
SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/schannel.c" "${CC_SOURCE_DIR}/libmariadb/secure/ma_schannel.c")
INCLUDE_DIRECTORIES("${CC_SOURCE_DIR}/plugins/pvio/")
ENDIF()
ENDIF()
@@ -243,15 +269,17 @@ IF(NOT WITH_SSL STREQUAL "OFF")
ENDIF()
IF(NOT WIN32)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/FindIconv.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/FindIconv.cmake)
ENDIF()
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/ma_config.h.in
${CMAKE_CURRENT_BINARY_DIR}/include/ma_config.h)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/mariadb_version.h.in
${CMAKE_CURRENT_SOURCE_DIR}/include/mariadb_version.h)
CONFIGURE_FILE(${CC_SOURCE_DIR}/include/ma_config.h.in
${CC_BINARY_DIR}/include/ma_config.h)
CONFIGURE_FILE(${CC_SOURCE_DIR}/include/ma_config.h.in
${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)
SET(SYSTEM_LIBS ws2_32 advapi32 kernel32)
@@ -277,7 +305,7 @@ IF(NOT REMOTEIO_PLUGIN_TYPE MATCHES "OFF")
ENDIF()
IF(NOT WIN32)
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)
INCLUDE_DIRECTORIES(${GSSAPI_INCS})
IF(AUTH_GSSAPI_PLUGIN_TYPE MATCHES "STATIC")
@@ -293,7 +321,7 @@ IF(NOT WIN32)
ADD_SUBDIRECTORY(mariadb_config)
ENDIF()
IF(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/unittest)
IF(IS_DIRECTORY ${CC_SOURCE_DIR}/unittest)
IF(WITH_UNITTEST STREQUAL "ON")
ADD_SUBDIRECTORY(unittest/mytap)
ADD_SUBDIRECTORY(unittest/libmariadb)
@@ -302,7 +330,8 @@ ENDIF()
IF(CLIENT_DOCS)
INSTALL(DIRECTORY ${CLIENT_DOCS}
DESTINATION ${DOCS_INSTALL_DIR_${INSTALL_LAYOUT}})
DESTINATION ${DOCS_INSTALL_DIR_${INSTALL_LAYOUT}}
COMPONENT SharedLibraries)
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_NAME "mariadb_connector_c")
STRING(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.LIB")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
SET(CPACK_RESOURCE_FILE_LICENSE "${CC_SOURCE_DIR}/COPYING.LIB")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CC_SOURCE_DIR}/README")
INCLUDE(cmake/ConnectorName.cmake)
IF(NOT PACKAGE_STATUS_SUFFIX)
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)
STRING(REGEX MATCH "\\[([^]]+)\\]" git_branch ${git_branch})
STRING(REGEX REPLACE "\\[|\\]" "" GIT_BRANCH ${git_branch})
MESSAGE(STATUS "${GIT_BRANCH}")
MESSAGE1(GIT_BRANCH "${GIT_BRANCH}")
IF(WIN32)
EXECUTE_PROCESS(COMMAND git archive ${GIT_BRANCH} --format=zip --prefix=${CPACK_SOURCE_PACKAGE_FILE_NAME}/ --output=${CPACK_SOURCE_PACKAGE_FILE_NAME}.zip)
ELSE()
@@ -368,7 +397,7 @@ include/my_config\\\\.h$
)
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(WRITE ${PACKAGE_FILE} ${CPACK_SOURCE_PACKAGE_FILE_NAME})
ENDIF()
@@ -382,21 +411,20 @@ ELSE()
ENDIF()
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)
MESSAGE(STATUS "Zlib support: ${WITH_EXTERNAL_ZLIB}")
SET(zlib_status: ${WITH_EXTERNAL_ZLIB})
ELSE()
MESSAGE(STATUS "Zlib support: yes (using bundled zlib)")
SET(zlib_status: "yes (using bundled zlib")
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)
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)
INSTALL(TARGETS mariadb_client_plugin_info
DESTINATION "bin")
DESTINATION "bin"
COMPONENT SharedLibraries)
SIGN_TARGET(mariadb_client_plugin_info)

View File

@@ -46,7 +46,7 @@ ENDIF()
SET(VALID_INSTALL_LAYOUTS "DEFAULT" "RPM")
LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" layout_no)
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()

View File

@@ -9,10 +9,11 @@
MACRO(INSTALL_PLUGIN name binary_dir)
INSTALL(TARGETS ${name}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${PLUGIN_INSTALL_DIR}"
ARCHIVE DESTINATION "${PLUGIN_INSTALL_DIR}")
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()
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)
# 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)
REGISTER_PLUGIN("NPIPE" "${PROJECT_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("NPIPE" "${CC_SOURCE_DIR}/plugins/pvio/pvio_npipe.c" "pvio_npipe_plugin" "STATIC" pvio_npipe 1)
REGISTER_PLUGIN("SHMEM" "${CC_SOURCE_DIR}/plugins/pvio/pvio_shmem.c" "pvio_shmem_plugin" "STATIC" pvio_shmem 1)
ENDIF()
# AUTHENTICATION
REGISTER_PLUGIN("AUTH_NATIVE" "${PROJECT_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_DIALOG" "${PROJECT_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_NATIVE" "${CC_SOURCE_DIR}/plugins/auth/my_auth.c" "native_password_client_plugin" "STATIC" "" 0)
REGISTER_PLUGIN("AUTH_OLDPASSWORD" "${CC_SOURCE_DIR}/plugins/auth/old_password.c" "old_password_client_plugin" "STATIC" "" 1)
REGISTER_PLUGIN("AUTH_DIALOG" "${CC_SOURCE_DIR}/plugins/auth/dialog.c" "auth_dialog_plugin" "DYNAMIC" dialog 1)
REGISTER_PLUGIN("AUTH_CLEARTEXT" "${CC_SOURCE_DIR}/plugins/auth/mariadb_clear_text.c" "auth_cleartext_plugin" "DYNAMIC" "mysql_clear_password" 1)
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)
ELSE()
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)
ENDIF()
ENDIF()
@@ -55,18 +55,18 @@ ENDIF()
#Remote_IO
IF(CURL_FOUND)
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()
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()
#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
REGISTER_PLUGIN("REPLICATION" "${PROJECT_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("REPLICATION" "${CC_SOURCE_DIR}/plugins/connection/replication.c" "connection_replication_plugin" "DYNAMIC" "replication" 1)
REGISTER_PLUGIN("AURORA" "${CC_SOURCE_DIR}/plugins/connection/aurora.c" "connection_aurora_plugin" "DYNAMIC" "aurora" 1)
# Allow registration of additional plugins
IF(PLUGIN_CONF_FILE)
@@ -76,20 +76,20 @@ ENDIF()
SET(LIBMARIADB_SOURCES "")
MESSAGE(STATUS "Plugin configuration:")
FOREACH(PLUGIN ${PLUGINS})
IF(WITH_${PLUGIN}_PLUGIN AND ${${PLUGIN}_PLUGIN_CHG} GREATER 0)
SET(${PLUGIN}_PLUGIN_TYPE ${WITH_${PLUGIN}_PLUGIN})
IF(${OPT}WITH_${PLUGIN}_PLUGIN AND ${${PLUGIN}_PLUGIN_CHG} GREATER 0)
SET(${PLUGIN}_PLUGIN_TYPE ${${OPT}WITH_${PLUGIN}_PLUGIN})
ENDIF()
IF(${PLUGIN}_PLUGIN_TYPE MATCHES "STATIC")
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${${PLUGIN}_PLUGIN_SOURCE})
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")
ENDIF()
MESSAGE(STATUS "${PLUGIN}: ${${PLUGIN}_PLUGIN_TYPE}")
SET(plugin_config "${plugin_config}\n-- ${PLUGIN}: ${${PLUGIN}_PLUGIN_TYPE}")
MARK_AS_ADVANCED(${PLUGIN}_PLUGIN_TYPE)
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")
FIND_PACKAGE(CURL)
@@ -98,7 +98,7 @@ ENDIF()
# since some files contain multiple plugins, remove duplicates from source files
LIST(REMOVE_DUPLICATES LIBMARIADB_SOURCES)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/libmariadb/ma_client_plugin.c.in
${PROJECT_BINARY_DIR}/libmariadb/ma_client_plugin.c)
CONFIGURE_FILE(${CC_SOURCE_DIR}/libmariadb/ma_client_plugin.c.in
${CC_BINARY_DIR}/libmariadb/ma_client_plugin.c)
MARK_AS_ADVANCED(LIBMARIADB_SOURCES)

View File

@@ -32,6 +32,8 @@ IF(UNIX)
"\${CMAKE_INSTALL_CONFIG_NAME}" output ${target_path}/${symlink_name})
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()
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:
# Patch number is numer of commits for given file
IF(EXISTS ${PROJECT_SOURCE_DIR}/.git)
EXECUTE_PROCESS(COMMAND git --git-dir=${PROJECT_SOURCE_DIR}/.git --work-tree=${PROJECT_SOURCE_DIR} rev-list HEAD --count -- ${FILE_NAME}
IF(EXISTS ${CC_SOURCE_DIR}/.git)
EXECUTE_PROCESS(COMMAND git --git-dir=${CC_SOURCE_DIR}/.git --work-tree=${CC_SOURCE_DIR} rev-list HEAD --count -- ${FILE_NAME}
OUTPUT_VARIABLE FV)
STRING(REPLACE "\n" "" FV ${FV})
SET(${FILE_VERSION} ${FV} PARENT_SCOPE)
@@ -35,9 +35,9 @@ MACRO(SET_VERSION_INFO)
STRING(REPLACE "FILE_DESCRIPTION:" "" FILE_DESCRIPTION ${PROPERTY})
ENDIF()
ENDFOREACH()
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/win/resource.rc.in
${PROJECT_BINARY_DIR}/win/${TARGET}.rc)
SET(${TARGET}_RC ${PROJECT_BINARY_DIR}/win/${TARGET}.rc)
CONFIGURE_FILE(${CC_SOURCE_DIR}/win/resource.rc.in
${CC_BINARY_DIR}/win/${TARGET}.rc)
SET(${TARGET}_RC ${CC_BINARY_DIR}/win/${TARGET}.rc)
ENDMACRO()

View File

@@ -1,7 +1,7 @@
SET(EXAMPLE_FILES "mysql_affected_rows"
"mysql_debug")
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
ENABLE_TESTING()
@@ -13,6 +13,6 @@ FOREACH(EXAMPLE_FILE ${EXAMPLE_FILES})
SET(XML_EXAMPLE_FILES $XML_EXAMPLE_FILES "examples/${EXAMPLE_FILE}.c")
ADD_EXECUTABLE(${EXAMPLE_FILE} ${EXAMPLE_FILE}.c)
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})

View File

@@ -1,31 +1,31 @@
SET(MARIADB_CLIENT_INCLUDES ${PROJECT_SOURCE_DIR}/include/mariadb_com.h
${PROJECT_SOURCE_DIR}/include/mysql.h
${PROJECT_SOURCE_DIR}/include/mariadb_stmt.h
${PROJECT_SOURCE_DIR}/include/ma_pvio.h
${PROJECT_SOURCE_DIR}/include/ma_tls.h
${PROJECT_SOURCE_DIR}/include/mariadb_version.h
${PROJECT_SOURCE_DIR}/include/ma_list.h
${PROJECT_SOURCE_DIR}/include/ma_errmsg.h
${PROJECT_SOURCE_DIR}/include/mariadb_dyncol.h
${PROJECT_SOURCE_DIR}/include/mariadb_ctype.h)
SET(MARIADB_CLIENT_INCLUDES ${CC_SOURCE_DIR}/include/mariadb_com.h
${CC_SOURCE_DIR}/include/mysql.h
${CC_SOURCE_DIR}/include/mariadb_stmt.h
${CC_SOURCE_DIR}/include/ma_pvio.h
${CC_SOURCE_DIR}/include/ma_tls.h
${CC_SOURCE_DIR}/include/mariadb_version.h
${CC_SOURCE_DIR}/include/ma_list.h
${CC_SOURCE_DIR}/include/ma_errmsg.h
${CC_SOURCE_DIR}/include/mariadb_dyncol.h
${CC_SOURCE_DIR}/include/mariadb_ctype.h)
SET(MYSQL_ADDITIONAL_INCLUDES
${PROJECT_SOURCE_DIR}/include/mysql/client_plugin.h
${PROJECT_SOURCE_DIR}/include/mysql/plugin_auth_common.h
${PROJECT_SOURCE_DIR}/include/mysql/plugin_auth.h)
${CC_SOURCE_DIR}/include/mysql/client_plugin.h
${CC_SOURCE_DIR}/include/mysql/plugin_auth_common.h
${CC_SOURCE_DIR}/include/mysql/plugin_auth.h)
SET(MARIADB_ADDITIONAL_INCLUDES
${PROJECT_SOURCE_DIR}/include/mariadb/ma_io.h)
${CC_SOURCE_DIR}/include/mariadb/ma_io.h)
INSTALL(FILES
${MARIADB_CLIENT_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}
COMPONENT ALL)
COMPONENT Development)
INSTALL(FILES
${MYSQL_ADDITIONAL_INCLUDES}
DESTINATION ${INCLUDE_INSTALL_DIR}/${SUFFIX_INSTALL_DIR}/mysql
COMPONENT ALL)
COMPONENT Development)
INSTALL(FILES
${MARIADB_ADDITIONAL_INCLUDES}
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}
${PROJECT_SOURCE_DIR}/libmariadb)
${CC_SOURCE_DIR}/libmariadb)
ADD_DEFINITIONS(-D ENABLED_LOCAL_INFILE)
ADD_DEFINITIONS(-D HAVE_COMPRESS)
ADD_DEFINITIONS(-D LIBMARIADB)
ADD_DEFINITIONS(-D THREAD)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
SET(MARIADB_LIB_SYMBOLS
mariadb_cancel
@@ -272,16 +272,16 @@ ma_loaddata.c
ma_stmt_codec.c
ma_string.c
ma_dtoa.c
${PROJECT_BINARY_DIR}/libmariadb/ma_client_plugin.c
${CC_BINARY_DIR}/libmariadb/ma_client_plugin.c
ma_io.c
${SSL_SOURCES}
)
IF(WIN32)
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}
${PROJECT_SOURCE_DIR}/win-iconv/win_iconv.c)
${CC_SOURCE_DIR}/win-iconv/win_iconv.c)
ELSE()
IF(ICONV_INCLUDE_DIR)
INCLUDE_DIRECTORIES(BEFORE ${ICONV_INCLUDE_DIR})
@@ -311,11 +311,11 @@ ELSE()
../zlib/zutil.c
)
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${ZLIB_SOURCES})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/zlib)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/zlib)
ENDIF()
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(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_dyncol.c)
ENDIF()
@@ -323,7 +323,7 @@ ENDIF()
SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} mariadb_async.c ma_context.c)
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
${CMAKE_CURRENT_BINARY_DIR}
"${MARIADB_LIB_SYMBOLS}")
@@ -343,8 +343,8 @@ ENDIF()
# Xcode doesn't support targets that have only object files,
# so let's add an empty file to keep Xcode happy
IF(CMAKE_GENERATOR MATCHES Xcode)
FILE(WRITE ${PROJECT_SOURCE_DIR}/libmariadb/empty.c "")
SET(EMPTY_FILE ${PROJECT_SOURCE_DIR}/libmariadb/empty.c)
FILE(WRITE ${CC_SOURCE_DIR}/libmariadb/empty.c "")
SET(EMPTY_FILE ${CC_SOURCE_DIR}/libmariadb/empty.c)
ENDIF()
IF(WIN32)
@@ -359,14 +359,6 @@ ADD_LIBRARY(mariadbclient STATIC ${mariadbclient_RC} ${MARIADB_OBJECTS} ${EMPTY_
TARGET_LINK_LIBRARIES(mariadbclient ${SYSTEM_LIBS})
ADD_LIBRARY(libmariadb SHARED ${libmariadb_RC} ${MARIADB_OBJECTS} ${EMPTY_FILE} mariadbclient.def)
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)
SET_TARGET_PROPERTIES(libmariadb PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
@@ -379,7 +371,7 @@ ENDIF()
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
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()
SET_TARGET_PROPERTIES(mariadbclient PROPERTIES IMPORTED_INTERFACE_LINK_LIBRARIES "${SYSTEM_LIBS}")
@@ -390,7 +382,7 @@ SET_TARGET_PROPERTIES(libmariadb PROPERTIES PREFIX "")
#
# 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
@@ -398,32 +390,17 @@ INCLUDE(${PROJECT_SOURCE_DIR}/cmake/symlink.cmake)
# use mariadb client library we provide libmysql symlinks
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}
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)
create_symlink(libmysqlclient${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH})
create_symlink(libmysqlclient_r${CMAKE_SHARED_LIBRARY_SUFFIX} libmariadb ${INSTALL_PATH})
create_symlink(libmysqlclient${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH})
create_symlink(libmysqlclient_r${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_PATH})
ENDIF()
INSTALL(TARGETS
libmariadb mariadbclient
INSTALL(TARGETS mariadbclient
COMPONENT Development
RUNTIME DESTINATION "${INSTALL_PATH}"
LIBRARY DESTINATION "${INSTALL_PATH}"
ARCHIVE DESTINATION "${INSTALL_PATH}")
INSTALL(TARGETS libmariadb
COMPONENT SharedLibraries
RUNTIME DESTINATION "${INSTALL_PATH}"
LIBRARY DESTINATION "${INSTALL_PATH}"
ARCHIVE DESTINATION "${INSTALL_PATH}")
@@ -436,5 +413,6 @@ IF(WIN32)
STRING(REPLACE "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}"
pdb_location ${pdb_location})
ENDIF()
INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_PATH}")
INSTALL(FILES ${pdb_location} DESTINATION "${INSTALL_PATH}"
COMPONENT Development)
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
@@ -41,4 +41,5 @@ TARGET_LINK_LIBRARIES(mariadb_config)
# Installation
#
INSTALL(TARGETS mariadb_config
DESTINATION "bin")
DESTINATION "bin"
COMPONENT Development)

View File

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

View File

@@ -1,9 +1,9 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/plugins/auth)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
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)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF()
# Dialog plugin
@@ -16,13 +16,13 @@ IF(AUTH_DIALOG_PLUGIN_TYPE MATCHES "DYNAMIC")
"ORIGINAL_FILE_NAME:dialog.dll"
"FILE_DESCRIPTION:Authentication plugin")
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)
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${PROJECT_SOURCE_DIR}/plugins/plugin.def)
SET(DIALOG_SOURCES ${DIALOG_SOURCES} ${CC_SOURCE_DIR}/plugins/plugin.def)
ENDIF()
ADD_LIBRARY(dialog MODULE ${DIALOG_SOURCES})
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)
ENDIF()
@@ -38,11 +38,11 @@ IF(AUTH_OLDPASSWORD_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF()
SET(OLDPASSWORD_SOURCES ${old_password_RC} old_password.c)
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()
ADD_LIBRARY(mysql_old_password MODULE ${OLDPASSWORD_SOURCES})
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)
ENDIF()
@@ -58,11 +58,11 @@ IF(AUTH_CLEARTEXT_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF()
SET(CTEXT_SOURCES mariadb_cleartext.c)
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()
ADD_LIBRARY(mysql_clear_password MODULE ${CTEXT_SOURCES})
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)
ENDIF()
@@ -71,7 +71,7 @@ IF(WIN32)
SET(USE_SSPI 1)
ENDIF()
MESSAGE(STATUS "GSSAPI: ${AUTH_GSSAPI_PLUGIN_TYPE}")
MESSAGE1(GSSAPI "GSSAPI: ${AUTH_GSSAPI_PLUGIN_TYPE}")
IF(${AUTH_GSSAPI_PLUGIN_TYPE} MATCHES "DYNAMIC")
IF(WIN32)
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"
"FILE_DESCRIPTION:Authentication plugin")
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()
IF(GSSAPI_FOUND)
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})
ENDIF()
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)
ENDIF()
ENDIF()

View File

@@ -3,7 +3,7 @@ IF(WIN32)
ENDIF()
SET(CMAKE_SHARED_LIBRARY_PREFIX "")
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
IF(REPLICATION_PLUGIN_TYPE MATCHES "DYNAMIC")
IF(WIN32)
@@ -41,6 +41,7 @@ ENDIF()
IF(INSTALL_LIBS)
INSTALL(TARGETS
${INSTALL_LIBS}
COMPONENT ClientPlugins
RUNTIME DESTINATION "${PLUGIN_INSTALL_DIR}"
LIBRARY 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)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF()
IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC")
@@ -18,10 +18,10 @@ IF(REMOTEIO_PLUGIN_TYPE MATCHES "DYNAMIC")
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
SET(REMOTE_IO_SOURCES ${remote_io_RC} remote_io.c)
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})
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)
ENDIF()
ENDIF()

View File

@@ -2,12 +2,12 @@ IF(WIN32)
SET(EXPORT_FILE "pvio_plugin.def")
ENDIF()
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
SET(CMAKE_SHARED_LIBRARY_PREFIX "")
@@ -21,7 +21,7 @@ IF(SOCKET_PLUGIN_TYPE MATCHES "DYNAMIC")
ENDIF()
ADD_DEFINITIONS(-DHAVE_SOCKET_DYNAMIC=1)
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)
ENDIF()
@@ -36,7 +36,7 @@ IF(WIN32)
ENDIF()
ADD_DEFINITIONS(-DHAVE_NPIPE_DYNAMIC=1)
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)
ENDIF()
IF(SHMEM_PLUGIN_TYPE MATCHES "DYNAMIC")
@@ -49,7 +49,7 @@ IF(WIN32)
"FILE_DESCRIPTION:VIO plugin for shared memory communication")
ENDIF()
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)
ENDIF()
ENDIF()

View File

@@ -1,7 +1,7 @@
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/install_plugins.cmake)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include)
INCLUDE(${CC_SOURCE_DIR}/cmake/install_plugins.cmake)
IF(WITH_SIGNCODE)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/sign.cmake)
INCLUDE(${CC_SOURCE_DIR}/cmake/sign.cmake)
ENDIF()
# Trace example plugin
@@ -16,10 +16,10 @@ IF(TRACE_EXAMPLE_PLUGIN_TYPE MATCHES "DYNAMIC")
ADD_DEFINITIONS(-DHAVE_TRACE_EXAMPLE_PLUGIN_DYNAMIC=1)
SET(TRACE_EXAMPLE_SOURCES ${trace_example_RC} trace_example.c)
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()
ADD_LIBRARY(trace_example MODULE ${TRACE_EXAMPLE_SOURCES})
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)
ENDIF()

View File

@@ -20,9 +20,10 @@ ENDIF()
ENABLE_TESTING()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include
${PROJECT_BINARY_DIR}/include
${PROJECT_SOURCE_DIR}/unittest/mytap)
INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include
${CC_BINARY_DIR}/include
${CC_SOURCE_DIR}/unittest/mytap
${CC_SOURCE_DIR}/unittest/libmariadb)
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"
@@ -37,47 +38,50 @@ SET(API_TESTS ${API_TESTS} "async")
SET(MANUAL_TESTS "t_aurora" "t_conc173")
# Get finger print from server certificate
IF(WITH_SSL)
IF(OPENSSL_FOUND)
IF(OPENSSL_FOUND AND EXISTS "${CC_SOURCE_DIR}/unittest/libmariadb/certs")
#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")
ELSE()
MESSAGE(STATUS "creating certificates")
IF(WIN32)
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)
ELSE()
EXECUTE_PROCESS(COMMAND ./create_certs.sh
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/unittest/libmariadb/certs)
WORKING_DIRECTORY ${CC_SOURCE_DIR}/unittest/libmariadb/certs)
ENDIF()
ENDIF()
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)
STRING(REPLACE "SHA1 Fingerprint=" "" FINGER_PRINT "${FINGER_PRINT}")
STRING(REPLACE "\n" "" FINGER_PRINT "${FINGER_PRINT}")
STRING(REPLACE ":" "" SSL_CERT_FINGER_PRINT "${FINGER_PRINT}")
ENDIF()
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/unittest/libmariadb/ssl.c.in
${PROJECT_SOURCE_DIR}/unittest/libmariadb/ssl.c)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/unittest/libmariadb/fingerprint.list.in
${PROJECT_SOURCE_DIR}/unittest/libmariadb/fingerprint.list)
CONFIGURE_FILE(${CC_SOURCE_DIR}/unittest/libmariadb/ssl.c.in
${CC_BINARY_DIR}/unittest/libmariadb/ssl.c)
CONFIGURE_FILE(${CC_SOURCE_DIR}/unittest/libmariadb/fingerprint.list.in
${CC_BINARY_DIR}/unittest/libmariadb/fingerprint.list)
SET(API_TESTS ${API_TESTS} "ssl")
ADD_EXECUTABLE(ssl ${CC_BINARY_DIR}/unittest/libmariadb/ssl.c)
ENDIF()
ADD_LIBRARY(ma_getopt ma_getopt.c)
FOREACH(API_TEST ${API_TESTS})
IF (NOT TARGET ${API_TEST})
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})
SET_TESTS_PROPERTIES(${API_TEST} PROPERTIES TIMEOUT 120)
ENDFOREACH(API_TEST)
FOREACH(API_TEST ${MANUAL_TESTS})
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()

View File

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

View File

@@ -1,7 +1,7 @@
SET(CLIENT_LIB_DIR ${PROJECT_BINARY_DIR}/libmariadb/${CMAKE_BUILD_TYPE})
SET(CLIENT_BIN_DIR ${PROJECT_BINARY_DIR}/client/${CMAKE_BUILD_TYPE})
SET(CLIENT_DBG_DIR ${PROJECT_BINARY_DIR}/libmariadb/Debug)
SET(CLIENT_INC_DIR ${PROJECT_SOURCE_DIR}/include)
SET(CLIENT_LIB_DIR ${CC_BINARY_DIR}/libmariadb/${CMAKE_BUILD_TYPE})
SET(CLIENT_BIN_DIR ${CC_BINARY_DIR}/client/${CMAKE_BUILD_TYPE})
SET(CLIENT_DBG_DIR ${CC_BINARY_DIR}/libmariadb/Debug)
SET(CLIENT_INC_DIR ${CC_SOURCE_DIR}/include)
SET(PRODUCT_NAME "MariaDB Connector C")
SET(PRODUCT_INSTALL_DIR "MariaDB")
@@ -41,14 +41,14 @@ ENDFOREACH()
SET(ALL_INCLUDES ${MARIADB_CLIENT_INCLUDES} ${MARIADB_ADDITIONAL_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 "mysql/" "" src_id ${src_id})
STRING(REPLACE "mysql/" "" src_name ${src})
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()
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()
ENDFOREACH()
@@ -92,5 +92,5 @@ SET_TARGET_PROPERTIES(${WIXOBJ} PROPERTIES EXCLUDE_FROM_ALL OFF)
ADD_DEPENDENCIES(${MSI_PACKAGE} WIXOBJ)
ADD_DEPENDENCIES(WIXOBJ libmariadb mariadbclient ${DYNAMIC_TARGETS})
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/win/packaging/mariadb-connector-c.xml.in
${PROJECT_BINARY_DIR}/win/packaging/mariadb-connector-c.xml)
CONFIGURE_FILE(${CC_SOURCE_DIR}/win/packaging/mariadb-connector-c.xml.in
${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)