From 3fad124b61201bebc146b3b969f287168a40c17e Mon Sep 17 00:00:00 2001 From: Jia Yue Hua <3423893+jiayuehua@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:28:06 +0800 Subject: [PATCH] [eastl] update to 3.21.12 (#34126) --- ...all.patch => 0001-fix-cmake-install.patch} | 153 +++++++++--------- ports/eastl/0002-fix-error-C2338.patch | 14 ++ ports/eastl/fix-error-C2039.diff | 88 ---------- ports/eastl/portfile.cmake | 9 +- ports/eastl/vcpkg.json | 3 +- versions/baseline.json | 4 +- versions/e-/eastl.json | 5 + 7 files changed, 104 insertions(+), 172 deletions(-) rename ports/eastl/{fix_cmake_install.patch => 0001-fix-cmake-install.patch} (85%) create mode 100644 ports/eastl/0002-fix-error-C2338.patch delete mode 100644 ports/eastl/fix-error-C2039.diff diff --git a/ports/eastl/fix_cmake_install.patch b/ports/eastl/0001-fix-cmake-install.patch similarity index 85% rename from ports/eastl/fix_cmake_install.patch rename to ports/eastl/0001-fix-cmake-install.patch index a2dbfd8215..ceace103e5 100644 --- a/ports/eastl/fix_cmake_install.patch +++ b/ports/eastl/0001-fix-cmake-install.patch @@ -1,75 +1,78 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e8700dc..6d3e2f1 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -4,12 +4,17 @@ - cmake_minimum_required(VERSION 3.1) - project(EASTL CXX) - -+include(GNUInstallDirs) -+include(CMakePackageConfigHelpers) -+ - #------------------------------------------------------------------------------------------- - # Options - #------------------------------------------------------------------------------------------- - option(EASTL_BUILD_BENCHMARK "Enable generation of build files for benchmark" OFF) - option(EASTL_BUILD_TESTS "Enable generation of build files for tests" OFF) - -+find_package(EABase CONFIG REQUIRED) -+ - #------------------------------------------------------------------------------------------- - # Compiler Flags - #------------------------------------------------------------------------------------------- -@@ -41,7 +46,10 @@ add_definitions(-DEASTL_OPENSOURCE=1) - #------------------------------------------------------------------------------------------- - # Include dirs - #------------------------------------------------------------------------------------------- --target_include_directories(EASTL PUBLIC include) -+target_include_directories(EASTL PUBLIC -+ $ -+ $ -+ ) - - #------------------------------------------------------------------------------------------- - # Dependencies -@@ -50,5 +58,39 @@ if (NOT TARGET EABase) - add_subdirectory(test/packages/EABase) - endif() - --target_link_libraries(EASTL EABase) -+target_link_libraries(EASTL PUBLIC EABase) -+ -+# create and install an export set for eabase target as EABase::EABase -+set(EASTL_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EASTL") -+ -+configure_package_config_file( -+ EASTLConfig.cmake.in -+ ${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake -+ INSTALL_DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} -+) -+ -+# create and install an export set for Terra target as Terra -+install( -+ TARGETS EASTL EXPORT EASTLTargets -+ DESTINATION ${CMAKE_INSTALL_LIBDIR} -+) -+ -+ -+install(EXPORT EASTLTargets DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION}) -+ -+write_basic_package_version_file( -+ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" -+ VERSION 3.16.05 -+ COMPATIBILITY SameMajorVersion -+) -+ -+install(TARGETS EASTL LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") -+install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") -+ -+install( -+ FILES -+ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake" -+ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" -+ DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} -+) - +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e3eb444..74b4938 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,6 +4,9 @@ + cmake_minimum_required(VERSION 3.1) + project(EASTL CXX) + ++include(GNUInstallDirs) ++include(CMakePackageConfigHelpers) ++ + #------------------------------------------------------------------------------------------- + # Options + #------------------------------------------------------------------------------------------- +@@ -11,6 +14,8 @@ option(EASTL_BUILD_BENCHMARK "Enable generation of build files for benchmark" OF + option(EASTL_BUILD_TESTS "Enable generation of build files for tests" OFF) + option(EASTL_STD_ITERATOR_CATEGORY_ENABLED "Enable compatibility with std:: iterator categories" OFF) + ++find_package(EABase CONFIG REQUIRED) ++ + #------------------------------------------------------------------------------------------- + # Compiler Flags + #------------------------------------------------------------------------------------------- +@@ -54,7 +59,10 @@ endif() + #------------------------------------------------------------------------------------------- + # Include dirs + #------------------------------------------------------------------------------------------- +-target_include_directories(EASTL PUBLIC include) ++target_include_directories(EASTL PUBLIC ++ $ ++ $ ++ ) + + #------------------------------------------------------------------------------------------- + # Dependencies +@@ -63,7 +71,41 @@ if (NOT TARGET EABase) + add_subdirectory(test/packages/EABase) + endif() + +-target_link_libraries(EASTL EABase) ++target_link_libraries(EASTL PUBLIC EABase) ++ ++# create and install an export set for eabase target as EABase::EABase ++set(EASTL_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EASTL") ++ ++configure_package_config_file( ++ EASTLConfig.cmake.in ++ ${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake ++ INSTALL_DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} ++) ++ ++# create and install an export set for Terra target as Terra ++install( ++ TARGETS EASTL EXPORT EASTLTargets ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} ++) ++ ++ ++install(EXPORT EASTLTargets DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION}) ++ ++write_basic_package_version_file( ++ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" ++ VERSION 3.16.05 ++ COMPATIBILITY SameMajorVersion ++) ++ ++install(TARGETS EASTL LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") ++install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") ++ ++install( ++ FILES ++ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake" ++ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" ++ DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} ++) + + #------------------------------------------------------------------------------------------- + # Installation diff --git a/ports/eastl/0002-fix-error-C2338.patch b/ports/eastl/0002-fix-error-C2338.patch new file mode 100644 index 0000000000..61d75dddc6 --- /dev/null +++ b/ports/eastl/0002-fix-error-C2338.patch @@ -0,0 +1,14 @@ +diff --git a/scripts/CMake/CommonCppFlags.cmake b/scripts/CMake/CommonCppFlags.cmake +index 08b6af5..281665e 100644 +--- a/scripts/CMake/CommonCppFlags.cmake ++++ b/scripts/CMake/CommonCppFlags.cmake +@@ -74,6 +74,9 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + endif() + elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++latest /W4 /permissive-") ++ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.31.30911.95") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:static_assert-") ++ endif() + endif() + + diff --git a/ports/eastl/fix-error-C2039.diff b/ports/eastl/fix-error-C2039.diff deleted file mode 100644 index 8b464b6dd6..0000000000 --- a/ports/eastl/fix-error-C2039.diff +++ /dev/null @@ -1,88 +0,0 @@ -diff --git a/include/EASTL/numeric_limits.h b/include/EASTL/numeric_limits.h -index e991e7e9..e933c845 100644 ---- a/include/EASTL/numeric_limits.h -+++ b/include/EASTL/numeric_limits.h -@@ -1435,6 +1435,19 @@ namespace eastl - static value_type round_error() - { return 0.5f; } - -+ #if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L // If using a recent version of MSVC's STL... -+ static value_type infinity() -+ { return __builtin_huge_valf(); } -+ -+ static value_type quiet_NaN() -+ { return __builtin_nanf("0"); } -+ -+ static value_type signaling_NaN() -+ { return __builtin_nansf("1"); } -+ -+ static value_type denorm_min() -+ { return FLT_TRUE_MIN; } -+ #else - static value_type infinity() - { return _CSTD _FInf._Float; } - -@@ -1446,6 +1459,7 @@ namespace eastl - - static value_type denorm_min() - { return _CSTD _FDenorm._Float; } -+ #endif - - #endif - }; -@@ -1553,6 +1567,19 @@ namespace eastl - static value_type round_error() - { return 0.5f; } - -+ #if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L // If using a recent version of MSVC's STL... -+ static value_type infinity() -+ { return __builtin_huge_val(); } -+ -+ static value_type quiet_NaN() -+ { return __builtin_nan("0"); } -+ -+ static value_type signaling_NaN() -+ { return __builtin_nans("1"); } -+ -+ static value_type denorm_min() -+ { return DBL_TRUE_MIN; } -+ #else - static value_type infinity() - { return _CSTD _Inf._Double; } - -@@ -1564,6 +1591,7 @@ namespace eastl - - static value_type denorm_min() - { return _CSTD _Denorm._Double; } -+ #endif - - #endif - }; -@@ -1671,6 +1699,19 @@ namespace eastl - static value_type round_error() - { return 0.5f; } - -+ #if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L // If using a recent version of MSVC's STL... -+ static value_type infinity() -+ { return __builtin_huge_val(); } -+ -+ static value_type quiet_NaN() -+ { return __builtin_nan("0"); } -+ -+ static value_type signaling_NaN() -+ { return __builtin_nans("1"); } -+ -+ static value_type denorm_min() -+ { return LDBL_TRUE_MIN; } -+ #else - static value_type infinity() - { return _CSTD _LInf._Long_double; } - -@@ -1682,6 +1723,7 @@ namespace eastl - - static value_type denorm_min() - { return _CSTD _LDenorm._Long_double; } -+ #endif - - #endif - }; diff --git a/ports/eastl/portfile.cmake b/ports/eastl/portfile.cmake index 1c8185fa8c..b5479e2da8 100644 --- a/ports/eastl/portfile.cmake +++ b/ports/eastl/portfile.cmake @@ -3,13 +3,12 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO electronicarts/EASTL - REF e8bdd5531ed79c30ccef2fd71e070f5ab9f1222a #v3.18.00 - SHA512 3e5d97a77b8610a2efdb9156b47c91e8a8dd5629ff95ea6d2c65016b067ab645df5beddc8c7f93d89c3d1a6f404ff71282efc6db9885a6e6240fa444fe2be79c + REF "${VERSION}" + SHA512 412f894a1d1d0fdcc8f5ae130e977872a8ff243691cf9dfc76a520389f514739511afca63e1aeaaf127132f5dfc3dd482af3e5f80844b5d6d33eae1c68628267 HEAD_REF master PATCHES - fix_cmake_install.patch - Fix-error-C2338.patch - fix-error-C2039.diff + 0001-fix-cmake-install.patch + 0002-fix-error-C2338.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/EASTLConfig.cmake.in" DESTINATION "${SOURCE_PATH}") diff --git a/ports/eastl/vcpkg.json b/ports/eastl/vcpkg.json index 7db58cc90a..66f32b59a5 100644 --- a/ports/eastl/vcpkg.json +++ b/ports/eastl/vcpkg.json @@ -1,7 +1,6 @@ { "name": "eastl", - "version-string": "3.18.00", - "port-version": 3, + "version": "3.21.12", "description": "Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is a fairly extensive and robust implementation of such a library and has an emphasis on high performance above all other considerations.", "homepage": "https://github.com/electronicarts/EASTL", "license": "BSD-3-Clause", diff --git a/versions/baseline.json b/versions/baseline.json index c029108faf..03817af8f8 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2273,8 +2273,8 @@ "port-version": 0 }, "eastl": { - "baseline": "3.18.00", - "port-version": 3 + "baseline": "3.21.12", + "port-version": 0 }, "easycl": { "baseline": "0.3", diff --git a/versions/e-/eastl.json b/versions/e-/eastl.json index e851e47cf8..87e144fbb6 100644 --- a/versions/e-/eastl.json +++ b/versions/e-/eastl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "2c5cde8f3324d5cdc8ee405da863177ca8aa7c52", + "version": "3.21.12", + "port-version": 0 + }, { "git-tree": "1e7b533fac097c3aa75f7b46630ea62f10980f87", "version-string": "3.18.00",