Skip to content

Commit 764c5f9

Browse files
authored
Merge pull request #81 from ardera/develop
fixes
2 parents 45a281f + a06c1be commit 764c5f9

File tree

2 files changed

+41
-27
lines changed

2 files changed

+41
-27
lines changed

CMakeLists.txt

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ project(flutter-pi LANGUAGES C)
3434
message(STATUS "Generator .............. ${CMAKE_GENERATOR}")
3535
message(STATUS "Build Type ............. ${CMAKE_BUILD_TYPE}")
3636

37-
if(NOT FLUTTER_ENGINE_LIBRARY)
37+
if(NOT FLUTTER_EMBEDDER_HEADER)
3838

3939
include(FetchContent)
4040

@@ -67,24 +67,15 @@ if(NOT FLUTTER_ENGINE_LIBRARY)
6767

6868
message(STATUS "Engine SHA1 ............ ${FLUTTER_ENGINE_SHA}")
6969

70-
# Download and setup the Flutter Engine.
70+
set(FLUTTER_EMBEDDER_HEADER ${CMAKE_BINARY_DIR}/flutter_embedder.h)
7171

72-
set(FLUTTER_EMBEDDER_ARTIFACTS_ZIP ${CMAKE_BINARY_DIR}/flutter_embedder_${FLUTTER_ENGINE_SHA}.zip)
73-
set(FLUTTER_BUCKET_BASE "https://storage.googleapis.com/flutter_infra/flutter")
74-
75-
if(NOT EXISTS ${FLUTTER_EMBEDDER_ARTIFACTS_ZIP})
72+
# Download and setup the flutter engine library header.
73+
if(NOT EXISTS ${FLUTTER_EMBEDDER_HEADER})
7674
file(DOWNLOAD
77-
${FLUTTER_BUCKET_BASE}/${FLUTTER_ENGINE_SHA}/linux-x64/linux-x64-embedder
78-
${FLUTTER_EMBEDDER_ARTIFACTS_ZIP}
79-
SHOW_PROGRESS
80-
)
81-
execute_process(
82-
COMMAND ${CMAKE_COMMAND} -E tar xzf ${FLUTTER_EMBEDDER_ARTIFACTS_ZIP}
83-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
75+
https://github.com/flutter/engine/blob/${FLUTTER_ENGINE_SHA}/shell/platform/embedder/embedder.h
76+
${FLUTTER_EMBEDDER_HEADER}
8477
)
8578
endif()
86-
87-
set(FLUTTER_ENGINE_LIBRARY ${CMAKE_BINARY_DIR}/libflutter_engine.so)
8879
else()
8980
message(STATUS "Engine ................. ${FLUTTER_ENGINE_LIBRARY}")
9081
endif()
@@ -95,14 +86,14 @@ set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_PATH})
9586
message(STATUS "PKG_CONFIG_PATH ........ $ENV{PKG_CONFIG_PATH}")
9687

9788
include(FindPkgConfig)
98-
pkg_check_modules(GBM REQUIRED gbm)
9989
pkg_check_modules(DRM REQUIRED libdrm)
100-
pkg_check_modules(GLESV2 REQUIRED glesv2)
90+
pkg_check_modules(GBM REQUIRED gbm)
10191
pkg_check_modules(EGL REQUIRED egl)
92+
pkg_check_modules(GLESV2 REQUIRED glesv2)
10293
pkg_check_modules(LIBSYSTEMD REQUIRED libsystemd)
94+
pkg_check_modules(LIBINPUT libinput)
10395
pkg_check_modules(LIBUDEV libudev)
10496
pkg_check_modules(GPIOD libgpiod)
105-
pkg_check_modules(LIBINPUT libinput)
10697

10798
set(FLUTTER_PI_SRC
10899
src/flutter-pi.c
@@ -137,23 +128,41 @@ endif()
137128
add_executable(flutter-pi ${FLUTTER_PI_SRC})
138129

139130
target_link_libraries(flutter-pi
140-
${GPIOD_LDFLAGS} ${GBM_LDFLAGS}
141-
${DRM_LDFLAGS} ${GLESV2_LDFLAGS} ${EGL_LDFLAGS}
142-
pthread dl
131+
${DRM_LDFLAGS}
132+
${GBM_LDFLAGS}
133+
${EGL_LDFLAGS}
134+
${GLESV2_LDFLAGS}
135+
${LIBSYSTEMD_LDFLAGS}
136+
${LIBINPUT_LDFLAGS}
137+
${LIBUDEV_LDFLAGS}
138+
${GPIOD_LDFLAGS}
139+
pthread dl rt m
143140
)
144141

145142
target_include_directories(flutter-pi PRIVATE
146143
${CMAKE_BINARY_DIR}
147144
${CMAKE_SOURCE_DIR}/include
148145
${CMAKE_SOURCE_DIR}/include/plugins
149-
${GBM_INCLUDE_DIRS} ${DRM_INCLUDE_DIRS}
150-
${GLESV2_INCLUDE_DIRS} ${EGL_INCLUDE_DIRS}
146+
${DRM_INCLUDE_DIRS}
147+
${GBM_INCLUDE_DIRS}
148+
${EGL_INCLUDE_DIRS}
149+
${GLESV2_INCLUDE_DIRS}
150+
${LIBSYSTEMD_INCLUDE_DIRS}
151+
${LIBINPUT_INCLUDE_DIRS}
152+
${LIBUDEV_INCLUDE_DIRS}
153+
${GPIOD_INCLUDE_DIRS}
151154
)
152155

153156
target_compile_options(flutter-pi PRIVATE
154-
${GBM_CFLAGS} ${DRM_CFLAGS}
155-
${GLESV2_CFLAGS} ${EGL_CFLAGS}
156-
${GPIOD_CFLAGS} -ggdb
157+
${DRM_CFLAGS}
158+
${GBM_CFLAGS}
159+
${EGL_CFLAGS}
160+
${GLESV2_CFLAGS}
161+
${LIBSYSTEMD_CFLAGS}
162+
${LIBINPUT_CFLAGS}
163+
${LIBUDEV_CFLAGS}
164+
${GPIOD_CFLAGS}
165+
-ggdb
157166
-DBUILD_TEXT_INPUT_PLUGIN
158167
-DBUILD_SPIDEV_PLUGIN
159168
-DBUILD_TEST_PLUGIN

src/compositor.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,7 @@ static bool on_present_layers(
937937
eglMakeCurrent(flutterpi.egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
938938

939939
drmdev_atomic_req_commit(req, req_flags, NULL);
940+
drmdev_destroy_atomic_req(req);
940941

941942
cpset_unlock(&compositor->cbs);
942943
}
@@ -995,7 +996,11 @@ int compositor_remove_view_callbacks(int64_t view_id) {
995996

996997
cpset_remove_locked(&compositor.cbs, entry);
997998

998-
return cpset_unlock(&compositor.cbs);
999+
free(entry);
1000+
1001+
cpset_unlock(&compositor.cbs);
1002+
1003+
return 0;
9991004
}
10001005

10011006
/// DRM HARDWARE PLANE RESERVATION

0 commit comments

Comments
 (0)