You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-db/mysql-connector-c++/files/mysql-connector-c++-8.0.26-...

322 lines
9.8 KiB

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -467,7 +467,7 @@ set_target_properties(connector PROPERTIES
install(TARGETS connector
- CONFIGURATIONS Release RelWithDebInfo
+ CONFIGURATIONS Release RelWithDebInfo Gentoo
ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT XDevAPIDev
RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll
--- a/cdk/cmake/DepFindProtobuf.cmake
+++ b/cdk/cmake/DepFindProtobuf.cmake
@@ -48,244 +48,7 @@ if(TARGET Protobuf::pb)
return()
endif()
-message(STATUS "Setting up Protobuf.")
-
-set(PB_SOURCE_DIR "${PROJECT_SOURCE_DIR}/protobuf")
-set(PB_BINARY_DIR "${PROJECT_BINARY_DIR}/protobuf")
-set(config_stamp "${PB_BINARY_DIR}/config.stamp")
-set(build_stamp "${PB_BINARY_DIR}/build.stamp")
-
-
-#
-# Pick build configuration for the protobuf build. Normally we build using the
-# same build configuration that is used for building CDK (Release/Debug/etc.).
-# But we also support building CDK under non-standard build configuration
-# named 'Static' (this is a dirty trick we use to simplify building our MSIs).
-# Since protobuf does not know 'Static' build configuration, we build protobuf
-# under 'Release' configuration in that case.
-#
-# We need to handle two cases. For some build systems, like Makefiles,
-# the build configuration is specified at cmake time using CMAKE_BUILD_TYPE
-# variable. In that case we also set it during protobuf build configuration.
-# Another case is a multi-configuration build system like MSVC. In this case
-# we use generator expression to pick correct configuration when the build
-# command is invoked below.
-#
-
-set(build_type)
-if(CMAKE_BUILD_TYPE)
- if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]")
- set(set_build_type -DCMAKE_BUILD_TYPE=Release)
- else()
- set(set_build_type -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
- endif()
-endif()
-
-set(CONFIG_EXPR
- $<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIG>>
-)
-
-set(set_arch)
-if(CMAKE_GENERATOR_PLATFORM)
- set(set_arch -A ${CMAKE_GENERATOR_PLATFORM})
-endif()
-
-set(set_toolset)
-if(CMAKE_GENERATOR_TOOLSET)
- set(set_toolset -T ${CMAKE_GENERATOR_TOOLSET})
-endif()
-
-set(set_system_name)
-if(CMAKE_SYSTEM_NAME)
- set(set_system_name -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME})
- if(CMAKE_SYSTEM_VERSION)
- list(APPEND set_system_name -DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION})
- endif()
-endif()
-
-set(set_system_processor)
-if(CMAKE_SYSTEM_PROCESSOR)
- set(set_system_processor -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR})
-endif()
-
-if(NOT EXISTS "${PB_BINARY_DIR}/exports.cmake")
-
- message("==== Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR} ${set_arch} ${set_toolset} ${set_system_name}")
-
- file(REMOVE "${PB_BINARY_DIR}/CMakeCache.txt")
- file(MAKE_DIRECTORY "${PB_BINARY_DIR}")
-
- # Dirty trick to speed up cmake set up time.
- #file(
- # COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}"
- # DESTINATION "${PB_BINARY_DIR}/CMakeFiles"
- #)
-
- execute_process(
- COMMAND ${CMAKE_COMMAND}
- -G "${CMAKE_GENERATOR}"
- ${set_arch}
- ${set_toolset}
- ${set_build_type}
- ${set_system_name}
- ${set_system_processor}
- -DSTATIC_MSVCRT=${STATIC_MSVCRT}
- -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
- -DCMAKE_CXX_FLAGS_MINSIZEREL=${CMAKE_CXX_FLAGS_MINSIZEREL}
- -DCMAKE_STATIC_LINKER_FLAGS=${CMAKE_STATIC_LINKER_FLAGS}
- ${PB_SOURCE_DIR}
- WORKING_DIRECTORY ${PB_BINARY_DIR}
- RESULT_VARIABLE protobuf_config
- )
-
- if(protobuf_config)
- message(FATAL_ERROR "Could not configure Protobuf build: ${protobuf_config}")
- endif()
-
- message("==== Protobuf build configured.")
-
-endif()
-
-
-include(${PB_BINARY_DIR}/exports.cmake)
-
-#
-# Protobuf library targets imported above (pb_protobuf
-# and pb_protobuf-lite) are local to the directory from which
-# they were imported. This is not good if cdk is used as
-# a sub-project of a parent project, because the parent project
-# must have access to these targets.
-#
-# For that reason below we create global protobuf/protobuf-lite targets
-# and copy their locations from the imported targets.
-#
-# Note: we can't use ALIAS library because it does not work with imported
-# targets
-#
-
-add_library(Protobuf::pb-full STATIC IMPORTED GLOBAL)
-add_library(Protobuf::pb-lite STATIC IMPORTED GLOBAL)
-add_executable(Protobuf::protoc IMPORTED GLOBAL)
-
-set(TGT_libprotobuf Protobuf::pb-full)
-set(TGT_libprotobuf-lite Protobuf::pb-lite)
-set(TGT_protoc Protobuf::protoc)
-
-foreach(tgt libprotobuf libprotobuf-lite protoc)
-
- #message("processing: ${tgt}")
-
- set(loc_list)
-
- foreach(CONF NOCONFIG DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
-
- #message("- CONF: ${CONF}")
-
- get_target_property(LOC pb_${tgt} IMPORTED_LOCATION_${CONF})
-
- if(LOC)
-
- #message("- setting imported location to: ${LOC}")
- list(APPEND loc_list "${LOC}")
-
- set_target_properties(${TGT_${tgt}} PROPERTIES
- IMPORTED_LOCATION_${CONF} "${LOC}"
- )
-
- set_property(TARGET ${TGT_${tgt}} APPEND PROPERTY
- IMPORTED_CONFIGURATIONS ${CONF}
- )
-
- endif()
-
- endforeach(CONF)
-
- #
- # To support 'Static' build configuration the targets imported from the
- # Protobuf project need to have IMPORTED_LOCATION_STATIC defined. We use
- # 'Release' locations as Protobuf is built using 'Release' configuration in
- # that case.
- #
-
- get_target_property(LOC ${TGT_${tgt}} IMPORTED_LOCATION_RELEASE)
- set_property(TARGET ${TGT_${tgt}} PROPERTY IMPORTED_LOCATION_STATIC ${LOC})
-
-endforeach(tgt)
-
-
-#message("Protobuf include path: ${PROTOBUF_INCLUDE_DIR}")
-set(PROTOBUF_INCLUDE_DIR ${PROTOBUF_INCLUDE_DIR} CACHE INTERNAL "")
-
-set_target_properties(Protobuf::pb-lite PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${PROTOBUF_INCLUDE_DIR}"
-)
-
-set_target_properties(Protobuf::pb-full PROPERTIES
- INTERFACE_LINK_LIBRARIES Protobuf::pb-lite
-)
-
-# On UNIX Protobuf uses pthread library
-if(UNIX)
- set_property(TARGET Protobuf::pb-lite APPEND PROPERTY
- INTERFACE_LINK_LIBRARIES pthread
- )
-endif()
-
-#
-# Note: This is needed to correctly compile headers generated by protobuf
-# with sunpro compiler.
-#
-
-if(SUNPRO)
- set_property(TARGET Protobuf::pb-lite APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS SOLARIS_64BIT_ENABLED
- )
-endif()
-
-#
-# Try using parallel builds for protobuf.
-#
-
-include(ProcessorCount)
-ProcessorCount(N)
-
-MESSAGE("Processor Count: ${N}")
-
-set(opt_build)
-set(opt_tool)
-if(NOT N EQUAL 0)
- if(NOT CMAKE_VERSION VERSION_LESS 3.12)
- set(opt_build --parallel ${N})
- elseif(CMAKE_MAKE_PROGRAM MATCHES "make")
- set(opt_tool -j${N})
- endif()
-endif()
-
-add_custom_command(OUTPUT "${build_stamp}"
- COMMAND ${CMAKE_COMMAND} --build . ${opt_build} --config ${CONFIG_EXPR} -- ${opt_tool}
- COMMAND ${CMAKE_COMMAND} -E touch "${build_stamp}"
- WORKING_DIRECTORY "${PB_BINARY_DIR}"
- COMMENT "Building protobuf"
-)
-
-add_custom_target(build_protobuf
- SOURCES "${build_stamp}"
-)
-
-set_target_properties(build_protobuf PROPERTIES FOLDER "Misc")
-
-add_dependencies(Protobuf::pb-full build_protobuf)
-add_dependencies(Protobuf::pb-lite build_protobuf)
-add_dependencies(Protobuf::protoc build_protobuf)
-
-# TODO: Handle lite/full version
-
-
+find_package(Protobuf REQUIRED)
# Standard PROTOBUF_GENERATE_CPP modified to our usage
@@ -314,10 +77,11 @@ function(mysqlx_protobuf_generate_cpp SRCS HDRS)
"${CMAKE_CURRENT_BINARY_DIR}/protobuf/${FIL_WE}.pb.h"
COMMAND ${CMAKE_COMMAND}
-E make_directory "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
- COMMAND Protobuf::protoc
+ COMMAND ${Protobuf_PROTOC_EXECUTABLE}
ARGS --cpp_out "${CMAKE_CURRENT_BINARY_DIR}/protobuf"
-I ${ABS_PATH} ${ABS_FIL}
- DEPENDS ${ABS_FIL} #${PROTOBUF_PROTOC_EXECUTABLE}
+ --proto_path=${Protobuf_INCLUDE_DIR}
+ DEPENDS ${ABS_FIL} #${Protobuf_PROTOC_EXECUTABLE}
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
VERBATIM
)
--- a/cdk/core/CMakeLists.txt
+++ b/cdk/core/CMakeLists.txt
@@ -45,7 +45,7 @@ add_library(cdk STATIC ${cdk_sources} ${HEADERS})
target_link_libraries(cdk
PUBLIC cdk_mysqlx cdk_parser
- PRIVATE Protobuf::pb-lite # required by codecc.cc
+ PRIVATE protobuf # required by codecc.cc
)
add_coverage(cdk)
--- a/cdk/protocol/mysqlx/CMakeLists.txt
+++ b/cdk/protocol/mysqlx/CMakeLists.txt
@@ -127,11 +127,7 @@ target_include_directories(cdk_proto_mysqlx PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
)
-if(use_full_protobuf)
- target_link_libraries(cdk_proto_mysqlx PRIVATE Protobuf::pb-full)
-else()
- target_link_libraries(cdk_proto_mysqlx PRIVATE Protobuf::pb-lite)
-endif()
+target_link_libraries(cdk_proto_mysqlx PRIVATE protobuf)
target_link_libraries(cdk_proto_mysqlx PRIVATE cdk_foundation zlib lz4 zstd)
--- a/jdbc.cmake
+++ b/jdbc.cmake
@@ -66,7 +66,7 @@ if(MYSQL_CONFIG_EXECUTABLE)
list(APPEND jdbc_cmake_opts -DMYSQL_CONFIG_EXECUTABLE=${MYSQL_CONFIG_EXECUTABLE})
endif()
-list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON)
+list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=OFF)
if(CMAKE_BUILD_TYPE)
if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]")
--- a/jdbc/CMakeLists.txt
+++ b/jdbc/CMakeLists.txt
@@ -299,7 +299,7 @@ endif()
install(TARGETS connector-jdbc
- CONFIGURATIONS Release RelWithDebInfo
+ CONFIGURATIONS Release RelWithDebInfo Gentoo
ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT JDBCDev
RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll