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")
 |