aboutsummaryrefslogtreecommitdiff
path: root/ports/eabase
diff options
context:
space:
mode:
Diffstat (limited to 'ports/eabase')
-rw-r--r--ports/eabase/CONTROL4
-rw-r--r--ports/eabase/EABaseConfig.cmake.in6
-rw-r--r--ports/eabase/fix_cmake_install.patch75
-rw-r--r--ports/eabase/portfile.cmake30
4 files changed, 115 insertions, 0 deletions
diff --git a/ports/eabase/CONTROL b/ports/eabase/CONTROL
new file mode 100644
index 000000000..95c76477e
--- /dev/null
+++ b/ports/eabase/CONTROL
@@ -0,0 +1,4 @@
+Source: eabase
+Version: 2.09.10
+Homepage: https://github.com/electronicarts/EABase
+Description: Electronic Arts Base. EABase is a small set of header files that define platform-independent data types and macros.
diff --git a/ports/eabase/EABaseConfig.cmake.in b/ports/eabase/EABaseConfig.cmake.in
new file mode 100644
index 000000000..afc9b104a
--- /dev/null
+++ b/ports/eabase/EABaseConfig.cmake.in
@@ -0,0 +1,6 @@
+@PACKAGE_INIT@
+
+# Provide path for scripts
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+
+include(${CMAKE_CURRENT_LIST_DIR}/EABaseTargets.cmake) \ No newline at end of file
diff --git a/ports/eabase/fix_cmake_install.patch b/ports/eabase/fix_cmake_install.patch
new file mode 100644
index 000000000..2cd22690b
--- /dev/null
+++ b/ports/eabase/fix_cmake_install.patch
@@ -0,0 +1,75 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 89c6703..ab8e553 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,6 +4,9 @@
+ cmake_minimum_required(VERSION 3.1)
+ project(EABase CXX)
+
++include(GNUInstallDirs)
++include(CMakePackageConfigHelpers)
++
+ #-------------------------------------------------------------------------------------------
+ # Options
+ #-------------------------------------------------------------------------------------------
+@@ -22,13 +25,51 @@ endif()
+ add_definitions(-D_CHAR16T)
+
+ if (NOT EABASE_BUILD_TESTS)
+- #-------------------------------------------------------------------------------------------
+- # Header only library
+- #-------------------------------------------------------------------------------------------
+- add_library(EABase INTERFACE)
+-
+- #-------------------------------------------------------------------------------------------
+- # Include dirs
+- #-------------------------------------------------------------------------------------------
+- target_include_directories(EABase INTERFACE include/Common)
++ #-------------------------------------------------------------------------------------------
++ # Header only library
++ #-------------------------------------------------------------------------------------------
++ add_library(EABase INTERFACE)
++ add_library(EABase::EABase ALIAS EABase)
++
++ #-------------------------------------------------------------------------------------------
++ # Include dirs
++ #-------------------------------------------------------------------------------------------
++ target_include_directories(EABase INTERFACE
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include/Common>
++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/Common>
++ )
++
++ # create and install an export set for eabase target as EABase::EABase
++ set(EABase_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EABase")
++
++ configure_package_config_file(
++ EABaseConfig.cmake.in
++ ${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake
++ INSTALL_DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION}
++ )
++
++ # create and install an export set for Terra target as Terra
++ install(
++ TARGETS EABase EXPORT EABaseTargets
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ )
++
++
++ install(EXPORT EABaseTargets DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION})
++
++ write_basic_package_version_file(
++ "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake"
++ VERSION 2.09.10
++ COMPATIBILITY SameMajorVersion
++ )
++
++ install(TARGETS EABase LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
++ install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
++
++ install(
++ FILES
++ "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake"
++ "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake"
++ DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION}
++ )
+ endif()
diff --git a/ports/eabase/portfile.cmake b/ports/eabase/portfile.cmake
new file mode 100644
index 000000000..1a70ad267
--- /dev/null
+++ b/ports/eabase/portfile.cmake
@@ -0,0 +1,30 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO electronicarts/EABase
+ REF edbafca82e4c4e73302e0b5144c5d1f4710db9fa
+ SHA512 fb9bd07602fb308864506737813212e47385a164708cd9064fdd4d1893294b228718a2964a0b16d04483f4f4c8a156f7199b60f227e4fc9ac88352f7dcd59672
+ HEAD_REF master
+ PATCHES
+ fix_cmake_install.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/EABaseConfig.cmake.in DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DEABASE_BUILD_TESTS:BOOL=OFF
+)
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/EABase)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
+
+vcpkg_copy_pdbs()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)