1From 18083a559734d297838e4cf34a856a4770062319 Mon Sep 17 00:00:00 2001
2From: tvanfossen <vanfosst@gmail.com>
3Date: Tue, 23 Aug 2022 10:06:53 -0400
4Subject: [PATCH] changes to compile with esp-idf
5
6---
7 CMakeLists.txt              | 11 ++++++-----
8 src/vector/vimageloader.cpp | 23 +++++++++++++----------
9 2 files changed, 19 insertions(+), 15 deletions(-)
10
11diff --git a/CMakeLists.txt b/CMakeLists.txt
12index 38a9862..ee6d2cd 100644
13--- a/CMakeLists.txt
14+++ b/CMakeLists.txt
15@@ -95,10 +95,11 @@ if (NOT APPLE AND NOT WIN32)
16                           )
17 endif()
18
19-if (LOTTIE_MODULE)
20-    # for dlopen, dlsym and dlclose dependency
21-    target_link_libraries(rlottie PRIVATE ${CMAKE_DL_LIBS})
22-endif()
23+# No Sym links in ESP-IDF
24+# if (LOTTIE_MODULE)
25+#     # for dlopen, dlsym and dlclose dependency
26+#     target_link_libraries(rlottie PRIVATE ${CMAKE_DL_LIBS})
27+# endif()
28
29 if (NOT LOTTIE_ASAN)
30     if(APPLE)
31@@ -137,7 +138,7 @@ endif (NOT LIB_INSTALL_DIR)
32 #declare source and include files
33 add_subdirectory(inc)
34 add_subdirectory(src)
35-add_subdirectory(example)
36+# add_subdirectory(example) // We dont need example dir in ESP-IDF
37
38 if (LOTTIE_TEST)
39     enable_testing()
40diff --git a/src/vector/vimageloader.cpp b/src/vector/vimageloader.cpp
41index c2446be..3df4c6a 100644
42--- a/src/vector/vimageloader.cpp
43+++ b/src/vector/vimageloader.cpp
44@@ -6,7 +6,7 @@
45 #ifdef _WIN32
46 # include <windows.h>
47 #else
48-# include <dlfcn.h>
49+// # include <dlfcn.h> //Does not work on ESP-IDF
50 #endif  // _WIN32
51
52 using lottie_image_load_f = unsigned char *(*)(const char *filename, int *x,
53@@ -61,22 +61,25 @@ struct VImageLoader::Impl {
54     void *dl_handle{nullptr};
55     void  init()
56     {
57-        imageLoad = reinterpret_cast<lottie_image_load_f>(
58-                    dlsym(dl_handle, "lottie_image_load"));
59-        imageFree = reinterpret_cast<lottie_image_free_f>(
60-                    dlsym(dl_handle, "lottie_image_free"));
61-        imageFromData = reinterpret_cast<lottie_image_load_data_f>(
62-                    dlsym(dl_handle, "lottie_image_load_from_data"));
63+        // No sym links in ESP-iDF
64+        // imageLoad = reinterpret_cast<lottie_image_load_f>(
65+        //             dlsym(dl_handle, "lottie_image_load"));
66+        // imageFree = reinterpret_cast<lottie_image_free_f>(
67+        //             dlsym(dl_handle, "lottie_image_free"));
68+        // imageFromData = reinterpret_cast<lottie_image_load_data_f>(
69+        //             dlsym(dl_handle, "lottie_image_load_from_data"));
70     }
71
72     void moduleFree()
73     {
74-        if (dl_handle) dlclose(dl_handle);
75+        // if (dl_handle) dlclose(dl_handle); // No sym links in ESP-iDF
76     }
77     bool moduleLoad()
78     {
79-        dl_handle = dlopen(LOTTIE_IMAGE_MODULE_PLUGIN, RTLD_LAZY);
80-        return (dl_handle == nullptr);
81+        // No sym links in ESP idf
82+        // dl_handle = dlopen(LOTTIE_IMAGE_MODULE_PLUGIN, RTLD_LAZY);
83+        // return (dl_handle == nullptr);
84+        return true
85     }
86 # endif  // _WIN32
87 #else  // LOTTIE_IMAGE_MODULE_SUPPORT
88--
892.34.1
90
91