--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -666,7 +666,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 @@ -737,6 +737,12 @@ TARGET_LINK_LIBRARIES(try connector) SET_INTERFACE_OPTIONS(try devapi) # ADD_GCOV(try) +IF(WITH_SSL STREQUAL "system") + find_package(OpenSSL REQUIRED) + TARGET_LINK_LIBRARIES(try ${OPENSSL_LIBRARIES}) +ENDIF() + + if(WITH_JDBC) add_executable(try_jdbc EXCLUDE_FROM_ALL try_jdbc.cc) --- a/cdk/cmake/install_macros.cmake +++ b/cdk/cmake/install_macros.cmake @@ -327,7 +327,7 @@ FUNCTION(INSTALL_DEBUG_TARGET target) DESTINATION ${ARG_DESTINATION} ${RENAME_PARAM} ${PERMISSIONS_${target_type}} - CONFIGURATIONS Release RelWithDebInfo + CONFIGURATIONS Release RelWithDebInfo Gentoo COMPONENT ${ARG_COMPONENT} OPTIONAL) @@ -346,7 +346,7 @@ FUNCTION(INSTALL_DEBUG_TARGET target) INSTALL(FILES ${debug_pdb_target_location} DESTINATION ${ARG_PDB_DESTINATION} ${PDB_RENAME_PARAM} - CONFIGURATIONS Release RelWithDebInfo + CONFIGURATIONS Release RelWithDebInfo Gentoo COMPONENT ${ARG_COMPONENT} OPTIONAL) ENDIF() --- a/cdk/cmake/libutils.cmake +++ b/cdk/cmake/libutils.cmake @@ -282,14 +282,7 @@ function(add_library_ex TARGET) endforeach() if(libs) - - if(${type} STREQUAL "STATIC") - merge_static_libraries(${TARGET} ${libs}) - add_dependencies(${TARGET} ${libs}) - else() target_link_libraries(${TARGET} PRIVATE ${libs}) - endif() - endif() # --- a/cdk/cmake/protobuf.cmake +++ b/cdk/cmake/protobuf.cmake @@ -26,201 +26,8 @@ # along with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -# Usage: -# -# INCLUDE(protobuf) -# [USE_FULL_PROTOBUF()] -# -# MYSQLX_PROTOBUF_GENERATE_CPP(SRCS HDRS ) -# ADD_LIBRARY(target ... ${SRCS}) -# - -if(DEFINED WITH_PROTOBUF) - - # - # If WITH_PROTOBUF is defined, it should point at external location where - # protobuf libraries were built using our CMakeLists.txt (so that - # exports.cmake was produced). - # - - if (NOT EXISTS "${WITH_PROTOBUF}/exports.cmake") - message(FATAL_ERROR - "Valid protobuf build not found at the given location" - " (could not find exports.cmake): ${WITH_PROTOBUF}" - ) - endif() - - message("Using protobuf build at: ${WITH_PROTOBUF}") - -else(DEFINED WITH_PROTOBUF) - - # - # If external WITH_PROTOBUF location is not given, then we arrange for - # building of protbuf from bundled sources in ${PROJECT_BINARY_DIR}/protobuf. - # - - message("Configuring Protobuf build using cmake generator: ${CMAKE_GENERATOR}") - file(REMOVE "${PROJECT_BINARY_DIR}/protobuf/CMakeCache.txt") - file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/protobuf") - - # - # 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. - # - - 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 - $<$:Release>$<$>:$> - ) - - execute_process( - COMMAND ${CMAKE_COMMAND} - -G "${CMAKE_GENERATOR}" - ${set_build_type} - -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} - ${PROJECT_SOURCE_DIR}/protobuf - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/protobuf - RESULT_VARIABLE protobuf_config - ) - - if(protobuf_config) - message(FATAL_ERROR "Could not configure Protobuf build: ${protobuf_config}") - endif() - - set(WITH_PROTOBUF "${PROJECT_BINARY_DIR}/protobuf") - -endif(DEFINED WITH_PROTOBUF) - -# Import targets exported by protobuf - -include(${WITH_PROTOBUF}/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 STATIC IMPORTED GLOBAL) -add_library(protobuf-lite STATIC IMPORTED GLOBAL) - -foreach(lib protobuf protobuf-lite) - #message("processing: ${lib}") - - foreach(CONF NOCONFIG DEBUG RELEASE MINSIZEREL RELWITHDEBINFO) - #message("- CONF: ${CONF}") - - get_target_property(LOC pb_${lib} IMPORTED_LOCATION_${CONF}) - if(LOC) - #message("- setting imported location to: ${LOC}") - set_target_properties(${lib} PROPERTIES - IMPORTED_LOCATION_${CONF} "${LOC}" - ) - set_property(TARGET ${lib} APPEND PROPERTY - IMPORTED_CONFIGURATIONS ${CONF} - ) - endif() - - endforeach(CONF) - -endforeach(lib) - -# -# 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. -# - -foreach(tgt protobuf protobuf-lite pb_protoc) - - get_target_property(LOC ${tgt} IMPORTED_LOCATION_RELEASE) - set_property(TARGET ${tgt} PROPERTY IMPORTED_LOCATION_STATIC ${LOC}) - -endforeach(tgt) - - -# protobuf depends on protobuf-lite - -set_target_properties(protobuf PROPERTIES - INTERFACE_LINK_LIBRARIES "protobuf-lite" -) - - -message("Protobuf include path: ${PROTOBUF_INCLUDE_DIR}") - -set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIR} - CACHE INTERNAL "Protobuf include path" FORCE) -set(PROTOBUF_PROTOC_EXECUTABLE pb_protoc - CACHE INTERNAL "Protobuf compiler" FORCE) - -# -# Custom target build_protobuf ensures that Protobuf project is built. -# -# Note: this depends on Protobuf project generating the stamp file -# - -if(NOT DEFINED PROTOBUF_BUILD_STAMP) - message(FATAL_ERROR "Protobuf build stamp file not defined") -endif() - - -if(CMAKE_VERSION VERSION_LESS 3.0) - add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} - COMMAND ${CMAKE_COMMAND} --build . --config $ - WORKING_DIRECTORY ${WITH_PROTOBUF} - COMMENT "Building protobuf using configuration: $(Configuration)" - ) -else() - add_custom_command(OUTPUT ${PROTOBUF_BUILD_STAMP} - COMMAND ${CMAKE_COMMAND} --build . --config ${CONFIG_EXPR} - WORKING_DIRECTORY ${WITH_PROTOBUF} - COMMENT "Building protobuf using configuration: $(Configuration)" - ) -endif() - -add_custom_target(build_protobuf - DEPENDS ${PROTOBUF_BUILD_STAMP} -) - -add_dependencies(protobuf build_protobuf) -add_dependencies(protobuf-lite build_protobuf) -add_dependencies(pb_protoc build_protobuf) +#SET(Protobuf_USE_STATIC_LIBS ON) +find_package(Protobuf REQUIRED) # # Choice between full and lite version of the library. --- a/cdk/protocol/mysqlx/crud.cc +++ b/cdk/protocol/mysqlx/crud.cc @@ -295,7 +295,7 @@ public: class Placeholder_conv_imp : public Args_conv { - map m_map; + std::map m_map; public: @@ -303,7 +303,7 @@ public: unsigned conv_placeholder(const string &name) { - map::const_iterator it = m_map.find(name); + std::map::const_iterator it = m_map.find(name); if (it == m_map.end()) throw_error("Placeholder converter: Placeholder was not defined on args"); //throw Generic_error((boost::format("Placeholder %s was not defined on args.") @@ -314,7 +314,7 @@ public: void add_placeholder(const string &name) { - map::const_iterator it = m_map.find(name); + std::map::const_iterator it = m_map.find(name); if (it != m_map.end()) throw_error("Placeholder converter: Redefined placeholder"); //throw Generic_error((boost::format("Redifined placeholder %s.") --- 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]")