Add Dockerfile to make it easy to build host version of upgrade-apply and upgrade... 39/283139/4
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Tue, 18 Oct 2022 21:53:37 +0000 (23:53 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 2 Feb 2023 11:16:37 +0000 (12:16 +0100)
This is supposed to be used as part of CI.

Change-Id: If69c1e75002297773fbfc11434e4ab7162fb2d02

Dockerfile [new file with mode: 0644]
src/upgrade-apply-deltafs/CMakeLists.txt
src/upgrade-apply/CMakeLists.txt

diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..f6c115f
--- /dev/null
@@ -0,0 +1,14 @@
+# Dockerfile for running upgrade-apply-deltafs in CI
+#
+FROM ubuntu:20.04 AS BUILD
+
+ENV DEBIAN_FRONTEND=noninteractive
+# Note: no need to clean apt lib/cache as this container is discarded
+RUN apt-get update && apt-get -y --no-install-recommends install libbrotli-dev zlib1g-dev libtar-dev cmake build-essential pkg-config
+ADD . /build
+RUN cd /build && cmake -DDEFINE_HOST_BUILD=1 . && make install
+
+FROM ubuntu:20.04
+RUN mkdir /app
+COPY --from=BUILD /usr/bin/upgrade-apply-deltafs /usr/bin/upgrade-apply /app/
+WORKDIR /app
index 8d09362..55674f0 100644 (file)
@@ -22,11 +22,13 @@ INCLUDE_DIRECTORIES(../upgrade-apply/patch)
 INCLUDE(FindPkgConfig)
 
 IF(DEFINE_HOST_BUILD)
-pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED libbrotlienc zlib)
+SET(ADD_LIBS libbrotlidec.a libbrotlicommon.a)
 ELSE()
-pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED libbrotlienc zlib hal-api-device)
+SET(ADD_PKGS hal-api-device)
+SET(ADD_LIBS libbrotlidec-static.a libbrotlicommon-static.a)
 ENDIF()
 
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED libbrotlienc zlib ${ADD_PKGS})
 
 FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
@@ -39,5 +41,5 @@ SET(EXECNAME "upgrade-apply-deltafs")
 ADD_EXECUTABLE(${EXECNAME} ${SRCS})
 
 TARGET_LINK_LIBRARIES(${EXECNAME} PRIVATE ${${PROJECT_NAME}_pkgs_LDFLAGS} "-g" "-pthread")
-TARGET_LINK_LIBRARIES(${EXECNAME} PRIVATE libtar.a libbrotlidec-static.a libbrotlicommon-static.a)
+TARGET_LINK_LIBRARIES(${EXECNAME} PRIVATE libtar.a ${ADD_LIBS})
 INSTALL(TARGETS ${EXECNAME})
index 3e269ba..d42afa8 100644 (file)
@@ -22,5 +22,12 @@ target_link_libraries(upgrade-apply PRIVATE PkgConfig::DEPS)
 # Also, note that zlib has been used in the normal way (i.e. with dynamic linking).
 # That's because the current setup does have libz.so in the execution environment.
 # Though in the future, it might be good to make it consistent (TODO).
-target_link_libraries(upgrade-apply PRIVATE libbrotlidec-static.a libbrotlicommon-static.a libtar.a)
+
+if(DEFINE_HOST_BUILD)
+set(ADD_LIBS libbrotlidec.a libbrotlicommon.a)
+else()
+set(ADD_LIBS libbrotlidec-static.a libbrotlicommon-static.a)
+endif()
+
+target_link_libraries(upgrade-apply PRIVATE libtar.a ${ADD_LIBS})
 install(TARGETS upgrade-apply)