aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/eastl
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/eastl')
-rw-r--r--vcpkg/ports/eastl/0001-fix-cmake-install.patch81
-rw-r--r--vcpkg/ports/eastl/0002-fix-error-C2338.patch14
-rw-r--r--vcpkg/ports/eastl/EASTLConfig.cmake.in9
-rw-r--r--vcpkg/ports/eastl/portfile.cmake36
-rw-r--r--vcpkg/ports/eastl/vcpkg.json18
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
+ }
+ ]
+}