mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
95 lines
3.4 KiB
CMake
95 lines
3.4 KiB
CMake
vcpkg_from_git(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
URL https://chromium.googlesource.com/libyuv/libyuv
|
|
REF a37e6bc81b52d39cdcfd0f1428f5d6c2b2bc9861 # 1896 Fixes build error on macOS Homebrew LLVM 19
|
|
# Check https://chromium.googlesource.com/libyuv/libyuv/+/refs/heads/main/include/libyuv/version.h for a version!
|
|
PATCHES
|
|
cmake.diff
|
|
)
|
|
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
|
FEATURES
|
|
tools BUILD_TOOLS
|
|
)
|
|
|
|
# BEGIN CLANG-CL HACK FOR MSVC
|
|
vcpkg_cmake_get_vars(cmake_vars_file)
|
|
include("${cmake_vars_file}")
|
|
if (VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND NOT VCPKG_TARGET_IS_UWP)
|
|
# Most of libyuv accelerated features need to be compiled by clang/gcc, so force use clang-cl, otherwise the performance is too poor.
|
|
# Manually build the port with clang-cl when using MSVC as compiler
|
|
|
|
message(STATUS "Set compiler to clang-cl when using MSVC")
|
|
|
|
# https://github.com/microsoft/vcpkg/pull/10398
|
|
set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled)
|
|
|
|
vcpkg_find_acquire_program(CLANG)
|
|
if (CLANG MATCHES "-NOTFOUND")
|
|
message(FATAL_ERROR "Clang is required.")
|
|
endif ()
|
|
get_filename_component(CLANG "${CLANG}" DIRECTORY)
|
|
|
|
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
|
|
set(CLANG_TARGET "arm")
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
|
set(CLANG_TARGET "aarch64")
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
|
set(CLANG_TARGET "i686")
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
|
set(CLANG_TARGET "x86_64")
|
|
else()
|
|
message(FATAL_ERROR "Unsupported target architecture")
|
|
endif()
|
|
|
|
set(CLANG_TARGET "${CLANG_TARGET}-pc-windows-msvc")
|
|
|
|
message(STATUS "Using clang target ${CLANG_TARGET}")
|
|
string(APPEND VCPKG_DETECTED_CMAKE_CXX_FLAGS --target=${CLANG_TARGET})
|
|
string(APPEND VCPKG_DETECTED_CMAKE_C_FLAGS --target=${CLANG_TARGET})
|
|
|
|
set(BUILD_OPTIONS
|
|
-DCMAKE_CXX_COMPILER=${CLANG}/clang-cl.exe
|
|
-DCMAKE_C_COMPILER=${CLANG}/clang-cl.exe
|
|
-DCMAKE_CXX_FLAGS=${VCPKG_DETECTED_CMAKE_CXX_FLAGS}
|
|
-DCMAKE_C_FLAGS=${VCPKG_DETECTED_CMAKE_C_FLAGS})
|
|
endif ()
|
|
# END CLANG-CL HACK FOR MSVC
|
|
|
|
vcpkg_cmake_configure(
|
|
SOURCE_PATH "${SOURCE_PATH}"
|
|
OPTIONS
|
|
${FEATURE_OPTIONS}
|
|
OPTIONS_DEBUG
|
|
-DBUILD_TOOLS=OFF
|
|
)
|
|
|
|
vcpkg_cmake_install()
|
|
vcpkg_cmake_config_fixup()
|
|
if("tools" IN_LIST FEATURES)
|
|
vcpkg_copy_tools(TOOL_NAMES yuvconvert yuvconstants AUTO_CLEAN)
|
|
endif()
|
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libyuv/basic_types.h" "defined(LIBYUV_USING_SHARED_LIBRARY)" "1")
|
|
endif()
|
|
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
|
|
|
file(COPY "${CMAKE_CURRENT_LIST_DIR}/libyuv-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
|
file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
|
|
|
#vcpkg_cmake_get_vars(cmake_vars_file)
|
|
#include("${cmake_vars_file}")
|
|
#if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|
# file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" [[
|
|
#
|
|
#Attention:
|
|
#You are using MSVC to compile libyuv. This build won't compile any
|
|
#of the acceleration codes, which results in a very slow library.
|
|
#See workarounds: https://github.com/microsoft/vcpkg/issues/28446
|
|
#]])
|
|
#endif()
|
|
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|