aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libmysql/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libmysql/portfile.cmake')
-rw-r--r--vcpkg/ports/libmysql/portfile.cmake155
1 files changed, 155 insertions, 0 deletions
diff --git a/vcpkg/ports/libmysql/portfile.cmake b/vcpkg/ports/libmysql/portfile.cmake
new file mode 100644
index 0000000..f25c1e0
--- /dev/null
+++ b/vcpkg/ports/libmysql/portfile.cmake
@@ -0,0 +1,155 @@
+if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h")
+ message(FATAL_ERROR "FATAL ERROR: ${PORT} and libmariadb are incompatible.")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mysql/mysql-server
+ REF "mysql-${VERSION}"
+ SHA512 f0591d263de557877a618b04871d332dc227e26c7e9b61994093dc9af29971ea6332761de5391bb8da955bd58b3b98da90722bafdbf86f36764995a70f94ae62
+ HEAD_REF master
+ PATCHES
+ dependencies.patch
+ install-exports.patch
+ fix_dup_symbols.patch
+ cross-build.patch
+ fix-pdb-install-path.patch
+)
+
+file(GLOB third_party "${SOURCE_PATH}/extra/*" "${SOURCE_PATH}/include/boost_1_*")
+list(REMOVE_ITEM third_party "${SOURCE_PATH}/extra/libedit")
+if (third_party)
+ file(REMOVE_RECURSE ${third_party})
+endif()
+
+#Skip the version check for Visual Studio
+set(FORCE_UNSUPPORTED_COMPILER "")
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(FORCE_UNSUPPORTED_COMPILER 1)
+endif()
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT_LINKAGE)
+
+set(cross_options "")
+if(VCPKG_CROSSCOMPILING)
+ list(APPEND cross_options
+ -DCMAKE_CROSSCOMPILING=1
+ -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET}
+ # required, skip try_run
+ -DHAVE_RAPIDJSON_WITH_STD_REGEX=1
+ )
+ if(NOT VCPKG_TARGET_IS_WINDOWS)
+ list(APPEND cross_options
+ # optimistic, skip try_run
+ -DHAVE_CLOCK_GETTIME=1
+ -DHAVE_CLOCK_REALTIME=1
+ # pessimistic, skip try_run
+ -DHAVE_C_FLOATING_POINT_FUSED_MADD=1
+ -DHAVE_CXX_FLOATING_POINT_FUSED_MADD=1
+ -DHAVE_SETNS=0
+ )
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${cross_options}
+ -DINSTALL_INCLUDEDIR=include/mysql
+ -DINSTALL_DOCDIR=share/${PORT}/doc
+ -DINSTALL_MANDIR=share/${PORT}/doc
+ -DINSTALL_INFODIR=share/${PORT}/doc
+ -DINSTALL_DOCREADMEDIR=share/${PORT}
+ -DINSTALL_SHAREDIR=share
+ -DINSTALL_MYSQLSHAREDIR=share/${PORT}
+ -DWITHOUT_SERVER=ON
+ -DWITH_BUILD_ID=OFF
+ -DWITH_UNIT_TESTS=OFF
+ -DENABLED_PROFILING=OFF
+ -DWIX_DIR=OFF
+ -DIGNORE_BOOST_VERSION=ON
+ -DWITH_TEST_TRACE_PLUGIN=OFF
+ -DMYSQL_MAINTAINER_MODE=OFF
+ -DBUNDLE_RUNTIME_LIBRARIES=OFF
+ -DDOWNLOAD_BOOST=OFF
+ -DWITH_AUTHENTICATION_KERBEROS=OFF
+ -DWITH_AUTHENTICATION_LDAP_DEFAULT=OFF
+ -DWITH_CURL=none
+ -DWITH_EDITLINE=bundled # not in vcpkg
+ -DWITH_LZ4=system
+ -DWITH_RAPIDJSON=system
+ -DWITH_SSL=system
+ -DWITH_SYSTEMD=OFF
+ -DWITH_ZLIB=system
+ -DWITH_ZSTD=system
+ -DFORCE_UNSUPPORTED_COMPILER=${FORCE_UNSUPPORTED_COMPILER}
+ -DINSTALL_STATIC_LIBRARIES=${BUILD_STATIC_LIBS}
+ -DLINK_STATIC_RUNTIME_LIBRARIES=${STATIC_CRT_LINKAGE}
+ MAYBE_UNUSED_VARIABLES
+ BUNDLE_RUNTIME_LIBRARIES # only on windows
+ LINK_STATIC_RUNTIME_LIBRARIES # only on windows
+ WIX_DIR # only on windows
+ WITH_BUILD_ID # only on windows
+)
+
+vcpkg_cmake_install(ADD_BIN_TO_PATH)
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libmysql)
+vcpkg_fixup_pkgconfig()
+
+set(MYSQL_TOOLS
+ my_print_defaults
+ mysql
+ mysql_config_editor
+ mysql_migrate_keyring
+ mysql_secure_installation
+ mysql_ssl_rsa_setup
+ mysqladmin
+ mysqlbinlog
+ mysqlcheck
+ mysqldump
+ mysqlimport
+ mysqlpump
+ mysqlshow
+ mysqlslap
+ mysqltest
+ perror
+ zlib_decompress
+)
+if (NOT VCPKG_CROSSCOMPILING)
+ list(APPEND MYSQL_TOOLS
+ comp_err
+ )
+endif()
+if (VCPKG_TARGET_IS_WINDOWS)
+ list(APPEND MYSQL_TOOLS
+ echo
+ )
+else()
+ list(APPEND MYSQL_TOOLS
+ mysql_config
+ )
+endif()
+
+vcpkg_copy_tools(TOOL_NAMES ${MYSQL_TOOLS} AUTO_CLEAN)
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/lib/debug"
+)
+
+if (NOT VCPKG_TARGET_IS_WINDOWS)
+ set(MYSQL_CONFIG_FILE "${CURRENT_PACKAGES_DIR}/tools/libmysql/mysql_config")
+ vcpkg_replace_string("${MYSQL_CONFIG_FILE}" "/bin/mysql_.*config" "/tools/libmysql/mysql_.*config")
+ vcpkg_replace_string("${MYSQL_CONFIG_FILE}" "'${CURRENT_PACKAGES_DIR}" "\"\$basedir\"\'")
+endif()
+
+file(INSTALL "${CURRENT_PORT_DIR}/libmysql-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+set(libedit_copying "${SOURCE_PATH}/COPYING for libedit")
+file(GLOB libedit_copying_infile "${SOURCE_PATH}/extra/libedit/libedit-*/COPYING")
+file(COPY_FILE "${libedit_copying_infile}" "${libedit_copying}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${libedit_copying}")