diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/eastl | |
Diffstat (limited to 'vcpkg/ports/eastl')
| -rw-r--r-- | vcpkg/ports/eastl/0001-fix-cmake-install.patch | 81 | ||||
| -rw-r--r-- | vcpkg/ports/eastl/0002-fix-error-C2338.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/eastl/EASTLConfig.cmake.in | 9 | ||||
| -rw-r--r-- | vcpkg/ports/eastl/portfile.cmake | 36 | ||||
| -rw-r--r-- | vcpkg/ports/eastl/vcpkg.json | 18 |
5 files changed, 158 insertions, 0 deletions
diff --git a/vcpkg/ports/eastl/0001-fix-cmake-install.patch b/vcpkg/ports/eastl/0001-fix-cmake-install.patch new file mode 100644 index 0000000..263fce3 --- /dev/null +++ b/vcpkg/ports/eastl/0001-fix-cmake-install.patch @@ -0,0 +1,81 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a5870f8..1553513 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,9 @@ cmake_minimum_required(VERSION 3.11) + include(FetchContent) + project(EASTL CXX) + ++include(GNUInstallDirs) ++include(CMakePackageConfigHelpers) ++ + #------------------------------------------------------------------------------------------- + # Options + #------------------------------------------------------------------------------------------- +@@ -17,6 +20,8 @@ option(EASTL_DISABLE_APRIL_2024_DEPRECATIONS "Enable use of API marked for remov + option(EASTL_DISABLE_SEPT_2024_DEPRECATIONS "Enable use of API marked for removal in September 2024." OFF) + option(EASTL_DISABLE_APRIL_2025_DEPRECATIONS "Enable use of API marked for removal in April 2025." OFF) + ++find_package(EABase CONFIG REQUIRED) ++ + #------------------------------------------------------------------------------------------- + # Compiler Flags + #------------------------------------------------------------------------------------------- +@@ -65,21 +70,49 @@ endif() + #------------------------------------------------------------------------------------------- + # Include dirs + #------------------------------------------------------------------------------------------- +-target_include_directories(EASTL PUBLIC include) ++target_include_directories(EASTL PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> ++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ++ ) + + #------------------------------------------------------------------------------------------- + # Dependencies + #------------------------------------------------------------------------------------------- +-FetchContent_Declare( +- EABase +- GIT_REPOSITORY https://github.com/electronicarts/EABase.git +- GIT_TAG 123363eb82e132c0181ac53e43226d8ee76dea12 +- GIT_SUBMODULES "" # This should be temporary until we update the cyclic submodule dependencies in 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} + ) + +-FetchContent_MakeAvailable(EABase) ++# 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}") + +-target_link_libraries(EASTL EABase) ++install( ++ FILES ++ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake" ++ "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" ++ DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} ++) + + #------------------------------------------------------------------------------------------- + # Deprecations diff --git a/vcpkg/ports/eastl/0002-fix-error-C2338.patch b/vcpkg/ports/eastl/0002-fix-error-C2338.patch new file mode 100644 index 0000000..61d75dd --- /dev/null +++ b/vcpkg/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/vcpkg/ports/eastl/EASTLConfig.cmake.in b/vcpkg/ports/eastl/EASTLConfig.cmake.in new file mode 100644 index 0000000..92fb2b1 --- /dev/null +++ b/vcpkg/ports/eastl/EASTLConfig.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(EABase CONFIG REQUIRED) + +# Provide path for scripts +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") + +include(${CMAKE_CURRENT_LIST_DIR}/EASTLTargets.cmake)
\ No newline at end of file diff --git a/vcpkg/ports/eastl/portfile.cmake b/vcpkg/ports/eastl/portfile.cmake new file mode 100644 index 0000000..1d4919f --- /dev/null +++ b/vcpkg/ports/eastl/portfile.cmake @@ -0,0 +1,36 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO electronicarts/EASTL
+ REF "${VERSION}"
+ SHA512 b061660b58aea8944b7b1488bbf344d004a93a06c89fa43881a02cdaf9d0fce5db3db3c5efd9c09e3e000b502c5dc197ab57b298d1bc935fc7603d285f8563db
+ HEAD_REF master
+ PATCHES
+ 0001-fix-cmake-install.patch
+ 0002-fix-error-C2338.patch
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/EASTLConfig.cmake.in" DESTINATION "${SOURCE_PATH}")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DEASTL_BUILD_TESTS=OFF
+ -DEASTL_BUILD_BENCHMARK=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/EASTL)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+file(INSTALL "${SOURCE_PATH}/3RDPARTYLICENSES.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+# CommonCppFlags used by EAThread
+file(INSTALL "${SOURCE_PATH}/scripts/CMake/CommonCppFlags.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
diff --git a/vcpkg/ports/eastl/vcpkg.json b/vcpkg/ports/eastl/vcpkg.json new file mode 100644 index 0000000..2ca0a4a --- /dev/null +++ b/vcpkg/ports/eastl/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "eastl", + "version": "3.21.23", + "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", + "dependencies": [ + "eabase", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |