From: Karol Lewandowski Date: Tue, 18 Oct 2022 21:53:37 +0000 (+0200) Subject: Add Dockerfile to make it easy to build host version of upgrade-apply and upgrade... X-Git-Tag: accepted/tizen/unified/20230209.111250~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c3a9ab43614c04a4afc35c652a95ff8ef619af9;p=platform%2Fcore%2Fsystem%2Fupgrade.git Add Dockerfile to make it easy to build host version of upgrade-apply and upgrade-apply-deltafs This is supposed to be used as part of CI. Change-Id: If69c1e75002297773fbfc11434e4ab7162fb2d02 --- diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f6c115f --- /dev/null +++ b/Dockerfile @@ -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 diff --git a/src/upgrade-apply-deltafs/CMakeLists.txt b/src/upgrade-apply-deltafs/CMakeLists.txt index 8d09362..55674f0 100644 --- a/src/upgrade-apply-deltafs/CMakeLists.txt +++ b/src/upgrade-apply-deltafs/CMakeLists.txt @@ -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}) diff --git a/src/upgrade-apply/CMakeLists.txt b/src/upgrade-apply/CMakeLists.txt index 3e269ba..d42afa8 100644 --- a/src/upgrade-apply/CMakeLists.txt +++ b/src/upgrade-apply/CMakeLists.txt @@ -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)