mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-06-07 18:32:47 +08:00
[ezfoundation] Add new port (#25604)
* Add new port ezfoundation * Update version registry for ezfoundation * Skip unsupported Linux and OSX build for ezfoundation * Add license field for ezfoundation * Update version registry for ezfoundation * Add supports spec in manifest * Update version registry Co-authored-by: Mark Keinz <makei@microsoft.com>
This commit is contained in:
parent
88b3aedb3b
commit
538234bd53
185
ports/ezfoundation/ezFoundation_vcpkg.patch
Normal file
185
ports/ezfoundation/ezFoundation_vcpkg.patch
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index a04be90..f853a0c 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -1,5 +1,9 @@
|
||||||
|
cmake_minimum_required(VERSION 3.19)
|
||||||
|
|
||||||
|
+if(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||||
|
+ set(CMAKE_BUILD_TYPE "Shipping" CACHE STRING "Release overridden with Shipping" FORCE)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||||
|
message(FATAL_ERROR "In-source builds are not supported. Please choose a different binary directory.")
|
||||||
|
return()
|
||||||
|
diff --git a/Code/Engine/CMakeLists.txt b/Code/Engine/CMakeLists.txt
|
||||||
|
index fb4bef4..ccda93d 100644
|
||||||
|
--- a/Code/Engine/CMakeLists.txt
|
||||||
|
+++ b/Code/Engine/CMakeLists.txt
|
||||||
|
@@ -20,5 +20,3 @@ execute_process(
|
||||||
|
OUTPUT_VARIABLE EZ_GIT_BRANCH_NAME
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
-
|
||||||
|
-configure_file("${CMAKE_CURRENT_LIST_DIR}/ezBuildInfo.h.in" "${CMAKE_CURRENT_LIST_DIR}/ezBuildInfo.h" NEWLINE_STYLE LF)
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/Code/Engine/Foundation/Basics/Assert.cpp b/Code/Engine/Foundation/Basics/Assert.cpp
|
||||||
|
index 7a55afc..778fadd 100644
|
||||||
|
--- a/Code/Engine/Foundation/Basics/Assert.cpp
|
||||||
|
+++ b/Code/Engine/Foundation/Basics/Assert.cpp
|
||||||
|
@@ -66,16 +66,6 @@ bool ezDefaultAssertHandler(const char* szSourceFile, ezUInt32 uiLine, const cha
|
||||||
|
|
||||||
|
#if EZ_ENABLED(EZ_PLATFORM_WINDOWS)
|
||||||
|
|
||||||
|
- // make sure the cursor is definitely shown, since the user must be able to click buttons
|
||||||
|
-# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_UWP)
|
||||||
|
- // Todo: Use modern Windows API to show cursor in current window.
|
||||||
|
- // http://stackoverflow.com/questions/37956628/change-mouse-pointer-in-uwp-app
|
||||||
|
-# else
|
||||||
|
- ezInt32 iHideCursor = 1;
|
||||||
|
- while (ShowCursor(true) < 0)
|
||||||
|
- ++iHideCursor;
|
||||||
|
-# endif
|
||||||
|
-
|
||||||
|
# if EZ_ENABLED(EZ_COMPILE_FOR_DEBUG)
|
||||||
|
|
||||||
|
ezInt32 iRes = _CrtDbgReport(_CRT_ASSERT, szSourceFile, uiLine, nullptr, "'%s'\nFunction: %s\nMessage: %s", szExpression, szFunction, szAssertMsg);
|
||||||
|
@@ -83,24 +73,9 @@ bool ezDefaultAssertHandler(const char* szSourceFile, ezUInt32 uiLine, const cha
|
||||||
|
// currently we will ALWAYS trigger the breakpoint / crash (except for when the user presses 'ignore')
|
||||||
|
if (iRes == 0)
|
||||||
|
{
|
||||||
|
- // when the user ignores the assert, restore the cursor show/hide state to the previous count
|
||||||
|
-# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_UWP)
|
||||||
|
- // Todo: Use modern Windows API to restore cursor.
|
||||||
|
-# else
|
||||||
|
- for (ezInt32 i = 0; i < iHideCursor; ++i)
|
||||||
|
- ShowCursor(false);
|
||||||
|
-# endif
|
||||||
|
-
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
-# else
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_DESKTOP)
|
||||||
|
- MessageBoxA(nullptr, szTemp, "Assertion", MB_ICONERROR);
|
||||||
|
-# endif
|
||||||
|
-
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
diff --git a/Code/Engine/Foundation/Logging/Implementation/Log.cpp b/Code/Engine/Foundation/Logging/Implementation/Log.cpp
|
||||||
|
index 1a0d2ed..afcde54 100644
|
||||||
|
--- a/Code/Engine/Foundation/Logging/Implementation/Log.cpp
|
||||||
|
+++ b/Code/Engine/Foundation/Logging/Implementation/Log.cpp
|
||||||
|
@@ -260,12 +260,7 @@ void ezLog::OsMessageBox(const ezFormatString& text)
|
||||||
|
title = ezApplication::GetApplicationInstance()->GetApplicationName();
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if EZ_ENABLED(EZ_PLATFORM_WINDOWS_DESKTOP)
|
||||||
|
- MessageBoxW(nullptr, ezStringWChar(display).GetData(), ezStringWChar(title), MB_OK);
|
||||||
|
-#else
|
||||||
|
ezLog::Print(display);
|
||||||
|
- EZ_ASSERT_NOT_IMPLEMENTED;
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void ezLog::GenerateFormattedTimestamp(TimestampMode mode, ezStringBuilder& sTimestampOut)
|
||||||
|
diff --git a/Code/Engine/Foundation/Math/Implementation/Math_inl.h b/Code/Engine/Foundation/Math/Implementation/Math_inl.h
|
||||||
|
index 1a2962e..9b31f01 100644
|
||||||
|
--- a/Code/Engine/Foundation/Math/Implementation/Math_inl.h
|
||||||
|
+++ b/Code/Engine/Foundation/Math/Implementation/Math_inl.h
|
||||||
|
@@ -80,6 +80,7 @@ namespace ezMath
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if EZ_ENABLED(EZ_PLATFORM_64BIT)
|
||||||
|
EZ_ALWAYS_INLINE ezUInt32 FirstBitLow(ezUInt64 value)
|
||||||
|
{
|
||||||
|
EZ_ASSERT_DEBUG(value != 0, "FirstBitLow is undefined for 0");
|
||||||
|
@@ -95,6 +96,7 @@ namespace ezMath
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
EZ_ALWAYS_INLINE ezUInt32 FirstBitHigh(ezUInt32 value)
|
||||||
|
{
|
||||||
|
@@ -112,6 +114,7 @@ namespace ezMath
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if EZ_ENABLED(EZ_PLATFORM_64BIT)
|
||||||
|
EZ_ALWAYS_INLINE ezUInt32 FirstBitHigh(ezUInt64 value)
|
||||||
|
{
|
||||||
|
EZ_ASSERT_DEBUG(value != 0, "FirstBitHigh is undefined for 0");
|
||||||
|
@@ -127,6 +130,7 @@ namespace ezMath
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
EZ_ALWAYS_INLINE ezUInt32 CountTrailingZeros(ezUInt32 bitmask) { return (bitmask == 0) ? 32 : FirstBitLow(bitmask); }
|
||||||
|
|
||||||
|
diff --git a/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h b/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h
|
||||||
|
index fb839b3..21e2ec1 100644
|
||||||
|
--- a/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h
|
||||||
|
+++ b/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h
|
||||||
|
@@ -60,7 +60,11 @@ namespace ezInternal
|
||||||
|
template <typename T>
|
||||||
|
EZ_FORCE_INLINE T* CreateRawBuffer(ezAllocatorBase* pAllocator, size_t uiCount)
|
||||||
|
{
|
||||||
|
+#if EZ_ENABLED(EZ_PLATFORM_64BIT)
|
||||||
|
ezUInt64 safeAllocationSize = ezMath::SafeMultiply64(uiCount, sizeof(T));
|
||||||
|
+#else
|
||||||
|
+ ezUInt32 safeAllocationSize = ezMath::SafeMultiply32(uiCount, sizeof(T));
|
||||||
|
+#endif
|
||||||
|
return static_cast<T*>(pAllocator->Allocate(safeAllocationSize, EZ_ALIGNMENT_OF(T)));
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h b/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h
|
||||||
|
index 54939fb..15f928a 100644
|
||||||
|
--- a/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h
|
||||||
|
+++ b/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h
|
||||||
|
@@ -229,11 +229,23 @@ ezUInt32 ezStackTracer::GetStackTrace(ezArrayPtr<void*>& trace, void* pContext)
|
||||||
|
frame.AddrFrame.Offset = context.Rbp;
|
||||||
|
frame.AddrStack.Offset = context.Rsp;
|
||||||
|
machine_type = IMAGE_FILE_MACHINE_AMD64;
|
||||||
|
-#else
|
||||||
|
+#elif defined(_M_IX86)
|
||||||
|
frame.AddrPC.Offset = context.Eip;
|
||||||
|
frame.AddrFrame.Offset = context.Ebp;
|
||||||
|
frame.AddrStack.Offset = context.Esp;
|
||||||
|
machine_type = IMAGE_FILE_MACHINE_I386;
|
||||||
|
+#elif defined(_M_ARM64)
|
||||||
|
+ frame.AddrPC.Offset = context.Pc;
|
||||||
|
+ frame.AddrFrame.Offset = context.Fp;
|
||||||
|
+ frame.AddrStack.Offset = context.Sp;
|
||||||
|
+ machine_type = IMAGE_FILE_MACHINE_ARM64;
|
||||||
|
+#elif defined(_M_ARM)
|
||||||
|
+ frame.AddrPC.Offset = context.Pc;
|
||||||
|
+ frame.AddrFrame.Offset = context.R11;
|
||||||
|
+ frame.AddrStack.Offset = context.Sp;
|
||||||
|
+ machine_type = IMAGE_FILE_MACHINE_ARM;
|
||||||
|
+#else
|
||||||
|
+ #error Unknown architecture
|
||||||
|
#endif
|
||||||
|
for (ezInt32 i = 0; i < (ezInt32)trace.GetCount(); i++)
|
||||||
|
{
|
||||||
|
diff --git b/Code/Engine/ezBuildInfo.h b/Code/Engine/ezBuildInfo.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..763271c
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/Code/Engine/ezBuildInfo.h
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+//
|
||||||
|
+// This file is auto-generated by CMake.
|
||||||
|
+//
|
||||||
|
+
|
||||||
|
+#pragma once
|
||||||
|
+
|
||||||
|
+#define EZ_GIT_COMMIT_HASH_SHORT
|
||||||
|
+#define EZ_GIT_COMMIT_HASH_LONG
|
||||||
|
+#define EZ_GIT_BRANCH_NAME ""
|
||||||
|
+
|
62
ports/ezfoundation/portfile.cmake
Normal file
62
ports/ezfoundation/portfile.cmake
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO ezEngine/ezEngine
|
||||||
|
REF 1448308ab99bae0d8d2a292ad345ff3a757f3124 #21.10
|
||||||
|
SHA512 20da87772366d1612795f534b31600123c0d04beba252d27d895c3c3cff7dae65952bd890629d79a7a691c2f3444601552c4b4eca99e8f8a99dc935ce2ebd284
|
||||||
|
PATCHES
|
||||||
|
ezFoundation_vcpkg.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_cmake_configure(
|
||||||
|
SOURCE_PATH "${SOURCE_PATH}"
|
||||||
|
OPTIONS
|
||||||
|
-DEZ_3RDPARTY_ENET_SUPPORT=OFF
|
||||||
|
-DEZ_3RDPARTY_ZSTD_SUPPORT=OFF
|
||||||
|
-DEZ_3RDPARTY_ZLIB_SUPPORT=OFF
|
||||||
|
-DEZ_BUILD_FILTER=FoundationOnly
|
||||||
|
-DEZ_BUILD_UNITTESTS=OFF
|
||||||
|
-DEZ_ENABLE_FOLDER_UNITY_FILES=OFF
|
||||||
|
-DEZ_ENABLE_QT_SUPPORT=OFF
|
||||||
|
-DEZ_USE_PCH=OFF
|
||||||
|
OPTIONS_DEBUG
|
||||||
|
-DEZ_OUTPUT_DIRECTORY_LIB=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Lib
|
||||||
|
-DEZ_OUTPUT_DIRECTORY_DLL=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Bin
|
||||||
|
OPTIONS_RELEASE
|
||||||
|
-DEZ_OUTPUT_DIRECTORY_LIB=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Lib
|
||||||
|
-DEZ_OUTPUT_DIRECTORY_DLL=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Bin
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_cmake_build(TARGET Foundation)
|
||||||
|
|
||||||
|
# EzEngine does not support CMake-based install; copy headers and libraries manually.
|
||||||
|
file(GLOB_RECURSE FOUNDATION_INCLUDE_FILES RELATIVE "${SOURCE_PATH}/Code/Engine/Foundation" "${SOURCE_PATH}/Code/Engine/Foundation/*.h")
|
||||||
|
foreach(SOURCE_FILE ${FOUNDATION_INCLUDE_FILES})
|
||||||
|
get_filename_component(SOURCE_FILE_DIR "${SOURCE_FILE}" DIRECTORY)
|
||||||
|
if(SOURCE_FILE_DIR STREQUAL "")
|
||||||
|
set(TARGET_DIR "${CURRENT_PACKAGES_DIR}/include/Foundation")
|
||||||
|
else()
|
||||||
|
set(TARGET_DIR "${CURRENT_PACKAGES_DIR}/include/Foundation/${SOURCE_FILE_DIR}")
|
||||||
|
endif()
|
||||||
|
file(COPY "${SOURCE_PATH}/Code/Engine/Foundation/${SOURCE_FILE}" DESTINATION "${TARGET_DIR}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug)
|
||||||
|
set(LIB_SOURCE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Lib")
|
||||||
|
set(LIB_TARGET_DIR "${CURRENT_PACKAGES_DIR}/debug/lib")
|
||||||
|
file(GLOB_RECURSE LIB_FILES "${LIB_SOURCE_DIR}/*.lib")
|
||||||
|
foreach(LIB_FILE ${LIB_FILES})
|
||||||
|
file(COPY "${LIB_FILE}" DESTINATION "${LIB_TARGET_DIR}")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release)
|
||||||
|
set(LIB_SOURCE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Lib")
|
||||||
|
set(LIB_TARGET_DIR "${CURRENT_PACKAGES_DIR}/lib")
|
||||||
|
file(GLOB_RECURSE LIB_FILES "${LIB_SOURCE_DIR}/*.lib")
|
||||||
|
foreach(LIB_FILE ${LIB_FILES})
|
||||||
|
file(COPY "${LIB_FILE}" DESTINATION "${LIB_TARGET_DIR}")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
18
ports/ezfoundation/vcpkg.json
Normal file
18
ports/ezfoundation/vcpkg.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "ezfoundation",
|
||||||
|
"version": "21.10",
|
||||||
|
"description": "Foundation library out of ezEngine",
|
||||||
|
"homepage": "https://ezengine.net/",
|
||||||
|
"license": "MIT",
|
||||||
|
"supports": "windows | uwp",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake",
|
||||||
|
"host": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vcpkg-cmake-config",
|
||||||
|
"host": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -2152,6 +2152,10 @@
|
|||||||
"baseline": "1.4.7",
|
"baseline": "1.4.7",
|
||||||
"port-version": 0
|
"port-version": 0
|
||||||
},
|
},
|
||||||
|
"ezfoundation": {
|
||||||
|
"baseline": "21.10",
|
||||||
|
"port-version": 0
|
||||||
|
},
|
||||||
"faad2": {
|
"faad2": {
|
||||||
"baseline": "2.9.1",
|
"baseline": "2.9.1",
|
||||||
"port-version": 5
|
"port-version": 5
|
||||||
|
9
versions/e-/ezfoundation.json
Normal file
9
versions/e-/ezfoundation.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"versions": [
|
||||||
|
{
|
||||||
|
"git-tree": "9db831cf3166d08f581365fccce852ae9aeb8b69",
|
||||||
|
"version": "21.10",
|
||||||
|
"port-version": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user