[rlottie]: add new port (#41890)

This commit is contained in:
Kaoru 2024-11-01 14:25:01 +08:00 committed by GitHub
parent 9e4d758921
commit e3497b6ae5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 160 additions and 0 deletions

View File

@ -0,0 +1,24 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Samsung/rlottie
REF e3026b1e1a516fff3c22d2b1b9f26ec864f89a82
SHA512 3b9985606d9c475e77ecb018cfe65cde1170f10e9d2c3e18b60178d3954a4870e5141aa06bb79e803fcdbcf98742bcf72a359625a3b1409125ec3a4a1b0126c4
PATCHES
vcpkg.patch
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DLIB_INSTALL_DIR=lib
-DLOTTIE_MODULE=OFF
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/rlottie")
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/AUTHORS")

17
ports/rlottie/vcpkg.json Normal file
View File

@ -0,0 +1,17 @@
{
"name": "rlottie",
"version-date": "2024-08-26",
"description": "A platform independent standalone library that plays Lottie Animation.",
"homepage": "https://github.com/Samsung/rlottie",
"dependencies": [
"rapidjson",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

106
ports/rlottie/vcpkg.patch Normal file
View File

@ -0,0 +1,106 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38a9862..eca77d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,6 +16,10 @@ endif()
add_library( rlottie )
set_target_properties( rlottie PROPERTIES DEFINE_SYMBOL RLOTTIE_BUILD )
+#use vcpkg ports
+find_package(RapidJSON CONFIG REQUIRED)
+target_link_libraries(rlottie PRIVATE rapidjson)
+
#declare version of the target
set(player_version_major 0)
set(player_version_minor 2)
@@ -75,8 +79,6 @@ endif()
if (WIN32 AND NOT BUILD_SHARED_LIBS)
target_compile_definitions(rlottie PUBLIC -DRLOTTIE_BUILD=0)
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
endif()
#declare dependancy
@@ -88,13 +90,6 @@ target_link_libraries(rlottie
"${CMAKE_THREAD_LIBS_INIT}"
)
-if (NOT APPLE AND NOT WIN32)
- target_link_libraries(rlottie
- PRIVATE
- "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/rlottie.expmap"
- )
-endif()
-
if (LOTTIE_MODULE)
# for dlopen, dlsym and dlclose dependancy
target_link_libraries(rlottie PRIVATE ${CMAKE_DL_LIBS})
@@ -165,6 +160,7 @@ install( TARGETS rlottie EXPORT rlottie-targets
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
INCLUDES DESTINATION include
+ RUNTIME DESTINATION bin
)
#install config file.
diff --git a/src/lottie/lottieparser.cpp b/src/lottie/lottieparser.cpp
index b33effa..c7bb421 100644
--- a/src/lottie/lottieparser.cpp
+++ b/src/lottie/lottieparser.cpp
@@ -56,7 +56,7 @@
#include <array>
#include "lottiemodel.h"
-#include "rapidjson/document.h"
+#include <rapidjson/document.h>
#include "zip/zip.h"
RAPIDJSON_DIAG_PUSH
diff --git a/src/vector/CMakeLists.txt b/src/vector/CMakeLists.txt
index 3ae96e6..15b86df 100644
--- a/src/vector/CMakeLists.txt
+++ b/src/vector/CMakeLists.txt
@@ -1,5 +1,4 @@
add_subdirectory(freetype)
-add_subdirectory(pixman)
add_subdirectory(stb)
diff --git a/src/vector/vdrawhelper_neon.cpp b/src/vector/vdrawhelper_neon.cpp
index 681eabb..e178012 100644
--- a/src/vector/vdrawhelper_neon.cpp
+++ b/src/vector/vdrawhelper_neon.cpp
@@ -2,28 +2,20 @@
#include "vdrawhelper.h"
-extern "C" void pixman_composite_src_n_8888_asm_neon(int32_t w, int32_t h,
- uint32_t *dst,
- int32_t dst_stride,
- uint32_t src);
-
-extern "C" void pixman_composite_over_n_8888_asm_neon(int32_t w, int32_t h,
- uint32_t *dst,
- int32_t dst_stride,
- uint32_t src);
-
void memfill32(uint32_t *dest, uint32_t value, int length)
{
- pixman_composite_src_n_8888_asm_neon(length, 1, dest, length, value);
+ memset(dest, value, length);
}
static void color_SourceOver(uint32_t *dest, int length,
uint32_t color,
uint32_t const_alpha)
{
+ int ialpha, i;
if (const_alpha != 255) color = BYTE_MUL(color, const_alpha);
- pixman_composite_over_n_8888_asm_neon(length, 1, dest, length, color);
+ ialpha = 255 - vAlpha(color);
+ for (i = 0; i < length; ++i) dest[i] = color + BYTE_MUL(dest[i], ialpha);
}
void RenderFuncTable::neon()

View File

@ -7932,6 +7932,10 @@
"baseline": "1.14.2",
"port-version": 0
},
"rlottie": {
"baseline": "2024-08-26",
"port-version": 0
},
"rmlui": {
"baseline": "6.0",
"port-version": 1

9
versions/r-/rlottie.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "df335ab1c8bf80f06eecb4df7b3a6d57f1a5d8b3",
"version-date": "2024-08-26",
"port-version": 0
}
]
}