diff options
Diffstat (limited to 'vcpkg/ports/angelscript')
| -rw-r--r-- | vcpkg/ports/angelscript/fix-dependency.patch | 9 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/fix-ndk-arm.patch | 49 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/fix-osx-x64.patch | 29 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/fix-win-arm64.patch | 38 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/mark-threads-private.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/portfile.cmake | 53 | ||||
| -rw-r--r-- | vcpkg/ports/angelscript/vcpkg.json | 22 |
7 files changed, 213 insertions, 0 deletions
diff --git a/vcpkg/ports/angelscript/fix-dependency.patch b/vcpkg/ports/angelscript/fix-dependency.patch new file mode 100644 index 0000000..be5213f --- /dev/null +++ b/vcpkg/ports/angelscript/fix-dependency.patch @@ -0,0 +1,9 @@ +diff --git a/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake b/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake
+index 4d1ef0f..ec14fe9 100644
+--- a/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake
++++ b/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake
+@@ -1,2 +1,4 @@
+ include("${CMAKE_CURRENT_LIST_DIR}/AngelscriptTargets.cmake")
++include(CMakeFindDependencyMacro)
++find_dependency(Threads REQUIRED)
+
diff --git a/vcpkg/ports/angelscript/fix-ndk-arm.patch b/vcpkg/ports/angelscript/fix-ndk-arm.patch new file mode 100644 index 0000000..091dcad --- /dev/null +++ b/vcpkg/ports/angelscript/fix-ndk-arm.patch @@ -0,0 +1,49 @@ +diff --git a/angelscript/source/as_callfunc_arm_gcc.S b/angelscript/source/as_callfunc_arm_gcc.S
+index 994fcb0..62a9602 100644
+--- a/angelscript/source/as_callfunc_arm_gcc.S
++++ b/angelscript/source/as_callfunc_arm_gcc.S
+@@ -53,6 +53,12 @@
+ .global armFuncObjLast
+ .global armFuncR0ObjLast
+
++.type armFunc, %function
++.type armFuncR0, %function
++.type armFuncR0R1, %function
++.type armFuncObjLast, %function
++.type armFuncR0ObjLast, %function
++
+ /* --------------------------------------------------------------------------------------------*/
+ armFunc:
+ stmdb sp!, {r4-r8, lr}
+@@ -315,6 +321,7 @@ nomoreargsarmFuncR0R1:
+ .arm /* Use ARM instructions instead of Thumb.*/
+ #endif
+ .globl armFunc /* Make the function globally accessible.*/
++ .type armFunc, %function
+ armFunc:
+ push {r4-r8, r10, r11, lr} /* sp must be 8-byte alignment for ABI compliance, so the pushed registers must be even */
+
+@@ -474,6 +482,7 @@ nomoreargsarmFuncObjLast:
+ .arm /* Use ARM instructions instead of Thumb.*/
+ #endif
+ .globl armFuncR0ObjLast /* Make the function globally accessible.*/
++ .type armFuncR0ObjLast, %function
+ armFuncR0ObjLast:
+ push {r4-r8, r10, r11, lr}
+
+@@ -568,6 +577,7 @@ nomoreargsarmFuncR0ObjLast:
+ .arm /* Use ARM instructions instead of Thumb.*/
+ #endif
+ .globl armFuncR0 /* Make the function globally accessible.*/
++ .type armFuncR0, %function
+ armFuncR0:
+ push {r4-r8, r10, r11, lr}
+
+@@ -644,6 +654,7 @@ nomoreargsarmFuncR0:
+ .arm /* Use ARM instructions instead of Thumb.*/
+ #endif
+ .globl armFuncR0R1 /* Make the function globally accessible.*/
++ .type armFuncR0R1, %function
+ armFuncR0R1:
+ push {r4-r8, r10, r11, lr}
+
diff --git a/vcpkg/ports/angelscript/fix-osx-x64.patch b/vcpkg/ports/angelscript/fix-osx-x64.patch new file mode 100644 index 0000000..ee74b23 --- /dev/null +++ b/vcpkg/ports/angelscript/fix-osx-x64.patch @@ -0,0 +1,29 @@ +diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt +index 6f9d540..1adea0b 100644 +--- a/angelscript/projects/cmake/CMakeLists.txt ++++ b/angelscript/projects/cmake/CMakeLists.txt +@@ -74,11 +74,7 @@ set(ANGELSCRIPT_SOURCE + ../../source/as_builder.cpp + ../../source/as_bytecode.cpp + ../../source/as_callfunc.cpp +- ../../source/as_callfunc_mips.cpp +- ../../source/as_callfunc_x86.cpp + ../../source/as_callfunc_x64_gcc.cpp +- ../../source/as_callfunc_x64_msvc.cpp +- ../../source/as_callfunc_x64_mingw.cpp + ../../source/as_compiler.cpp + ../../source/as_configgroup.cpp + ../../source/as_context.cpp +diff --git a/angelscript/source/as_callfunc_x64_gcc.cpp b/angelscript/source/as_callfunc_x64_gcc.cpp +index 1111148..d15c4e9 100644 +--- a/angelscript/source/as_callfunc_x64_gcc.cpp ++++ b/angelscript/source/as_callfunc_x64_gcc.cpp +@@ -141,7 +141,7 @@ static asQWORD __attribute__((noinline)) + + // Restore stack pointer + " mov %%r15, %%rsp \n" +-#if defined(__clang__) && defined(__OPTIMIZE__) ++#if defined(__clang__) && defined(__OPTIMIZE__) && !(defined(__APPLE__) && defined(__x86_64__)) + // Inform the stack unwind logic that the stack pointer has been restored + // This should only be done if any optimization is done. If no optimization (-O0) is used, + // then the compiler already backups the rsp before entering the inline assembler code diff --git a/vcpkg/ports/angelscript/fix-win-arm64.patch b/vcpkg/ports/angelscript/fix-win-arm64.patch new file mode 100644 index 0000000..5b13448 --- /dev/null +++ b/vcpkg/ports/angelscript/fix-win-arm64.patch @@ -0,0 +1,38 @@ +diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt +index 6f9d540..6eae090 100644 +--- a/angelscript/projects/cmake/CMakeLists.txt ++++ b/angelscript/projects/cmake/CMakeLists.txt +@@ -77,7 +77,7 @@ set(ANGELSCRIPT_SOURCE + ../../source/as_callfunc_mips.cpp + ../../source/as_callfunc_x86.cpp + ../../source/as_callfunc_x64_gcc.cpp +- ../../source/as_callfunc_x64_msvc.cpp ++ ../../source/as_callfunc_arm64.cpp + ../../source/as_callfunc_x64_mingw.cpp + ../../source/as_compiler.cpp + ../../source/as_configgroup.cpp +@@ -106,9 +106,9 @@ set(ANGELSCRIPT_SOURCE + ) + + if(MSVC AND CMAKE_CL_64) +- enable_language(ASM_MASM) ++ enable_language(ASM_MARMASM) + if(CMAKE_ASM_MASM_COMPILER_WORKS) +- set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} ../../source/as_callfunc_x64_msvc_asm.asm) ++ set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} ../../source/as_callfunc_arm64_msvc.asm) + else() + message(FATAL ERROR "MSVC x86_64 target requires a working assembler") + endif() +diff --git a/angelscript/source/as_config.h b/angelscript/source/as_config.h +index 9a99faf..293cc2e 100644 +--- a/angelscript/source/as_config.h ++++ b/angelscript/source/as_config.h +@@ -532,7 +532,7 @@ + #endif + #endif + +- #if defined(_M_ARM64) ++ #if defined(_M_ARM) + #define AS_ARM64 + + // TODO: MORE HERE diff --git a/vcpkg/ports/angelscript/mark-threads-private.patch b/vcpkg/ports/angelscript/mark-threads-private.patch new file mode 100644 index 0000000..eea3774 --- /dev/null +++ b/vcpkg/ports/angelscript/mark-threads-private.patch @@ -0,0 +1,13 @@ +diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt
+index 6f9d540..5d39f9b 100644
+--- a/angelscript/projects/cmake/CMakeLists.txt
++++ b/angelscript/projects/cmake/CMakeLists.txt
+@@ -192,7 +192,7 @@ endif()
+
+ # Don't override the default library output path to avoid conflicts when building for multiple target platforms
+ #set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib)
+-target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} Threads::Threads)
++target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} PRIVATE Threads::Threads)
+
+ set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
+
diff --git a/vcpkg/ports/angelscript/portfile.cmake b/vcpkg/ports/angelscript/portfile.cmake new file mode 100644 index 0000000..28453e0 --- /dev/null +++ b/vcpkg/ports/angelscript/portfile.cmake @@ -0,0 +1,53 @@ +vcpkg_download_distfile(ARCHIVE + URLS "https://angelcode.com/angelscript/sdk/files/angelscript_${VERSION}.zip" + FILENAME "angelscript_${VERSION}.zip" + SHA512 87c94042932f15d07fe6ede4c3671b1f73ac757b68ab360187591497eeabc56a4ddb7901e4567108e44886a2011a29c2884d4b7389557826f36a6c384f4a9c69 +) + +set(PATCHES + "mark-threads-private.patch" + "fix-dependency.patch" +) + +if (VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + list(APPEND PATCHES "fix-osx-x64.patch") +endif() + +if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + list(APPEND PATCHES "fix-win-arm64.patch") +endif() + +if (VCPKG_TARGET_IS_ANDROID AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + list(APPEND PATCHES "fix-ndk-arm.patch") +endif() + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + ${PATCHES} +) + +if (VCPKG_TARGET_IS_ANDROID AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + vcpkg_replace_string("${SOURCE_PATH}/angelscript/source/as_callfunc_arm_gcc.S" +[[.globl armFuncObjLast /* Make the function globally accessible.*/]] +[[.globl armFuncObjLast /* Make the function globally accessible.*/ +.type armFuncObjLast, %function]]) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/angelscript/projects/cmake" +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Angelscript") + +# Copy the addon files +if("addons" IN_LIST FEATURES) + file(INSTALL "${SOURCE_PATH}/add_on/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/angelscript" FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp") +endif() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/manual/doc_license.html") diff --git a/vcpkg/ports/angelscript/vcpkg.json b/vcpkg/ports/angelscript/vcpkg.json new file mode 100644 index 0000000..8c15516 --- /dev/null +++ b/vcpkg/ports/angelscript/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "angelscript", + "version": "2.38.0", + "description": "The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.", + "homepage": "https://angelcode.com/angelscript", + "license": "Zlib", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "addons": { + "description": "Installs all addons for use in compiling scripts addons" + } + } +} |