mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-26 09:31:08 +08:00
62 lines
2.3 KiB
CMake
62 lines
2.3 KiB
CMake
#[[
|
|
vcpkg overloads find_package().
|
|
mysql-connector-cpp overloads find_dependency().
|
|
|
|
To force a strict order of desired effects and to prevent undesired effects,
|
|
without heavy patching:
|
|
1. All pristine find_package() must be done here first.
|
|
This is with pristine vcpkg toolchain find_package()/find_dependency().
|
|
2. After that, find_package is overloaded to prevent loading of CMakeFindDependenyMacro.
|
|
3. mysql-connector-cpp installs and uses its custom find_dependency().
|
|
#]]
|
|
|
|
set(THREADS_PREFER_PTHREAD_FLAG 1)
|
|
find_package(Threads)
|
|
|
|
find_package(OpenSSL REQUIRED)
|
|
|
|
find_package(Protobuf CONFIG REQUIRED)
|
|
#add_library(ext::protobuf ALIAS protobuf::libprotobuf)
|
|
add_library(ext::protobuf-lite ALIAS protobuf::libprotobuf-lite)
|
|
if(NOT TARGET ext::protoc)
|
|
add_executable(ext::protoc IMPORTED)
|
|
set_target_properties(ext::protoc PROPERTIES IMPORTED_LOCATION "${WITH_PROTOC}")
|
|
endif()
|
|
|
|
find_package(RapidJSON CONFIG REQUIRED)
|
|
add_library(RapidJSON::rapidjson ALIAS rapidjson)
|
|
|
|
find_package(ZLIB REQUIRED)
|
|
add_library(ext::z ALIAS ZLIB::ZLIB)
|
|
|
|
find_package(lz4 REQUIRED)
|
|
add_library(ext::lz4 ALIAS lz4::lz4)
|
|
|
|
find_package(zstd REQUIRED)
|
|
add_library(ext::zstd ALIAS zstd::libzstd)
|
|
|
|
if(WITH_JDBC)
|
|
find_package(unofficial-libmysql REQUIRED)
|
|
find_path(errmsg_include_dir NAMES errmsg.h PATH_SUFFIXES mysql)
|
|
set_property(TARGET unofficial::libmysql::libmysql APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${errmsg_include_dir}")
|
|
add_library(MySQL::client ALIAS unofficial::libmysql::libmysql)
|
|
|
|
file(READ "${errmsg_include_dir}/mysql_version.h" version_h)
|
|
if(NOT version_h MATCHES "#define +MYSQL_SERVER_VERSION +\"([^\"]+)\"")
|
|
message(FATAL_ERROR "Failed to detect libmysql version")
|
|
endif()
|
|
set(MYSQL_VERSION "${CMAKE_MATCH_1}")
|
|
if(NOT version_h MATCHES "#define +MYSQL_VERSION_ID +([0-9]+)")
|
|
message(FATAL_ERROR "Failed to detect libmysql version ID")
|
|
endif()
|
|
set(MYSQL_NUM_VERSION "${CMAKE_MATCH_1}")
|
|
endif()
|
|
|
|
set(known_packages Threads OpenSSL Protobuf RapidJSON ZLIB lz4 zstd unofficial-libmysql)
|
|
cmake_policy(SET CMP0057 NEW)
|
|
macro(find_package NAME)
|
|
if(NOT "${NAME}" IN_LIST known_packages)
|
|
message(SEND_ERROR "find_package(${NAME}) not handled in ${CMAKE_CURRENT_LIST_FILE}")
|
|
endif()
|
|
endmacro()
|