Skip to content

Commit

Permalink
Add Ubuntu support to HyperHDR and Github Pages APT repository (#522)
Browse files Browse the repository at this point in the history
  • Loading branch information
awawa-dev authored Jun 27, 2023
1 parent c2d3c78 commit 7df7fcf
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 43 deletions.
14 changes: 10 additions & 4 deletions .ci/ci_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,16 @@ else
CI_NAME="$(uname -s | tr '[:upper:]' '[:lower:]')"
fi

if [[ "$BUILD_ARCHIVES" == '0' ]]; then
IS_ARCHIVE_SKIPPED=" -DDO_NOT_BUILD_ARCHIVES=ON"
else
IS_ARCHIVE_SKIPPED=" -DDO_NOT_BUILD_ARCHIVES=OFF"
fi

# set environment variables if not exists (debug)
[ -z "${BUILD_TYPE}" ] && BUILD_TYPE="Release"

echo "Platform: ${PLATFORM}, build type: ${BUILD_TYPE}, CI_NAME: $CI_NAME, docker image: ${DOCKER_IMAGE}, docker type: ${DOCKER_TAG}"
echo "Platform: ${PLATFORM}, build type: ${BUILD_TYPE}, CI_NAME: $CI_NAME, docker image: ${DOCKER_IMAGE}, docker type: ${DOCKER_TAG}, is archive enabled: ${IS_ARCHIVE_SKIPPED}"

# Build the package on osx or linux
if [[ "$CI_NAME" == 'osx' || "$CI_NAME" == 'darwin' ]]; then
Expand All @@ -38,7 +44,7 @@ if [[ "$CI_NAME" == 'osx' || "$CI_NAME" == 'darwin' ]]; then

CCACHE_PATH=$PWD
cd ..
cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache ${IS_ARCHIVE_SKIPPED}"
export CCACHE_DIR=${CCACHE_PATH} && export CCACHE_COMPRESS=true && export CCACHE_COMPRESSLEVEL=1 && export CCACHE_MAXSIZE=400M
echo "CCache parameters: ${cachecommand}"
ls -a .ccache
Expand Down Expand Up @@ -67,7 +73,7 @@ elif [[ $CI_NAME == *"mingw64_nt"* || "$CI_NAME" == 'windows_nt' ]]; then
echo "Number of Cores $NUMBER_OF_PROCESSORS"
mkdir build || exit 1
cd build
cmake -G "Visual Studio 17 2022" -A x64 -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_GITHUB_ACTION=1 ../ || exit 2
cmake -G "Visual Studio 17 2022" -A x64 -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_GITHUB_ACTION=1 ${IS_ARCHIVE_SKIPPED} ../ || exit 2
cmake --build . --target package --config Release -- -nologo -v:m -maxcpucount || exit 3
exit 0;
exit 1 || { echo "---> Hyperhdr compilation failed! Abort"; exit 5; }
Expand All @@ -94,7 +100,7 @@ elif [[ "$CI_NAME" == 'linux' ]]; then

mkdir -p .ccache

cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache ${IS_ARCHIVE_SKIPPED}"

if [[ "$RESET_CACHE" == '1' ]]; then
echo "Clearing ccache"
Expand Down
23 changes: 13 additions & 10 deletions .github/workflows/push-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ env:
USE_CACHE: "1"
RESET_CACHE: "0"
USE_CODEQL: "0"
BUILD_ARCHIVES: ${{ startsWith(github.event.ref, 'refs/tags') && 1 || 0 }}

jobs:

Expand All @@ -21,23 +22,23 @@ jobs:
strategy:
matrix:
linuxVersion: [ bullseye ]
dockerImage: [ x86_64, rpi012-armv6l, rpi34-armv7l, arm-aarch64 ]
dockerImage: [ x86_64, arm-32bit-armv6l, arm-64bit-aarch64 ]
include:
- dockerImage: x86_64
linuxVersion: bullseye
dockerName: Debian Bullseye (x86_64)
platform: linux
- dockerImage: rpi012-armv6l
linuxVersion: bullseye
dockerName: Debian Bullseye (Raspberry Pi ZERO, 1 & 2)
platform: rpi
- dockerImage: rpi34-armv7l
- dockerImage: x86_64
linuxVersion: jammy
dockerName: Ubuntu 22.04 LTS (x86_64)
platform: linux
- dockerImage: arm-32bit-armv6l
linuxVersion: bullseye
dockerName: Debian Bullseye (Raspberry Pi 3 & 4)
dockerName: Debian Bullseye (ARM 32-bit Raspberry Pi OS)
platform: rpi
- dockerImage: arm-aarch64
- dockerImage: arm-64bit-aarch64
linuxVersion: bullseye
dockerName: Debian Bullseye (ARM aarch64)
dockerName: Debian Bullseye (ARM 64-bit Raspberry Pi OS)
platform: rpi
- dockerImage: x86_64
linuxVersion: ArchLinux
Expand Down Expand Up @@ -76,7 +77,8 @@ jobs:
USE_CCACHE: ${{ env.USE_CACHE }}
RESET_CACHE: ${{ env.RESET_CACHE }}
shell: bash
run: ./.ci/ci_build.sh
run: |
./.ci/ci_build.sh
# Upload artifacts (only on tagged commit)
- name: Upload artifacts
Expand Down Expand Up @@ -203,6 +205,7 @@ jobs:
env:
PLATFORM: windows
CMAKE_PREFIX_PATH: "${{ runner.workspace }}/Qt/${{ env.QT_VERSION }}/msvc2019_64/lib/cmake/"
USE_CCACHE: ${{ env.USE_CACHE }}
shell: bash
run: |
./.ci/ci_build.sh
Expand Down
26 changes: 19 additions & 7 deletions .github/workflows/upload-to-github-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,45 @@ jobs:
###### Upload to HyperHDR repo #######
######################################
Linux:
name: Debian ${{ matrix.linuxVersion }} (${{ matrix.arch }})
name: ${{ matrix.niceName }} ${{ matrix.linuxVersion }} (${{ matrix.arch }})
runs-on: ubuntu-22.04

strategy:
matrix:
niceName: [ Debian ]
linuxVersion: [ bullseye, bookworm ]
dockerImage: [ x86_64, rpi012-armv6l, arm-aarch64 ]
dockerImage: [ x86_64, arm-32bit-armv6l, arm-64bit-aarch64 ]
include:
- dockerImage: x86_64
dockerName: Debian (amd64)
arch: amd64
platform: linux
- dockerImage: rpi012-armv6l
- dockerImage: arm-32bit-armv6l
dockerName: Debian (armhf)
arch: armhf
platform: rpi
- dockerImage: arm-aarch64
- dockerImage: arm-64bit-aarch64
dockerName: Debian (arm64)
arch: arm64
platform: rpi
- dockerImage: x86_64
linuxVersion: ArchLinux
dockerName: Arch Linux (x86_64)
arch: amd64
platform: linux
niceName: ""
- dockerImage: x86_64
linuxVersion: jammy
dockerName: Ubuntu 22.04 LTS (x86_64)
arch: amd64
platform: linux
niceName: Ubuntu 22.04 LTS
- dockerImage: x86_64
linuxVersion: lunar
dockerName: Ubuntu 23.04 (x86_64)
arch: amd64
platform: linux
niceName: Ubuntu 23.04

steps:
# checkout
Expand Down Expand Up @@ -73,9 +88,6 @@ jobs:
RESET_CACHE: ${{ env.RESET_CACHE }}
shell: bash
run: |
if [ "${{ matrix.arch }}" == "amd64" ] && [ "${{ matrix.linuxVersion }}" == "bullseye" ]; then
sed -i 's/#SET(HYPERHDR_REPO_RPM_BUILD ON)/SET(HYPERHDR_REPO_RPM_BUILD ON)/' ./cmake/packages.cmake
fi
sed -i 's/#SET(HYPERHDR_REPO_BUILD ON)/SET(HYPERHDR_REPO_BUILD ON)/' ./cmake/packages.cmake
./.ci/ci_build.sh
Expand Down
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,10 @@ SET ( FLATBUFFERS_INSTALL_LIB_DIR ${CMAKE_BINARY_DIR}/flatbuf )

find_package(GitVersion)

if(ENABLE_XZ)
find_package(LibLZMA)
endif()

# configure a header file to pass some of the CMake settings
# to the source code
configure_file("${PROJECT_SOURCE_DIR}/HyperhdrConfig.h.in" "${PROJECT_BINARY_DIR}/HyperhdrConfig.h")
Expand Down
36 changes: 21 additions & 15 deletions cmake/packages.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# cmake file for generating distribution packages
#SET(HYPERHDR_REPO_RPM_BUILD ON)
#SET(HYPERHDR_REPO_BUILD ON)

# - Check glibc version
Expand Down Expand Up @@ -27,23 +26,27 @@ MACRO (CHECK_GLIBC_VERSION)
ENDMACRO (CHECK_GLIBC_VERSION)

# default packages to build
IF (APPLE)
SET ( CPACK_GENERATOR "TGZ")
ELSEIF (UNIX)
SET ( CPACK_GENERATOR "TGZ")
ELSEIF (WIN32)
SET ( CPACK_GENERATOR "ZIP" "NSIS")
if(NOT DO_NOT_BUILD_ARCHIVES)
IF (APPLE)
SET ( CPACK_GENERATOR "TGZ")
ELSEIF (UNIX)
SET ( CPACK_GENERATOR "TGZ")
ELSEIF (WIN32)
SET ( CPACK_GENERATOR "ZIP" "NSIS")
ENDIF()
ELSE()
IF (WIN32)
SET ( CPACK_GENERATOR "NSIS")
ENDIF()
ENDIF()

# Determine packages by found generator executables

# Github Action enables it for packages
if(HYPERHDR_REPO_RPM_BUILD)
find_package(RpmBuilder)
IF(RPM_BUILDER_FOUND)
message(STATUS "CPACK: Found RPM builder")
SET ( CPACK_GENERATOR "RPM")
ENDIF()
find_package(RpmBuilder)
IF(RPM_BUILDER_FOUND)
message(STATUS "CPACK: Found RPM builder")
SET ( CPACK_GENERATOR "RPM")
ENDIF()

find_package(DebBuilder)
Expand Down Expand Up @@ -131,7 +134,6 @@ if ( ENABLE_CEC )
endif()
SET ( CPACK_DEBIAN_PACKAGE_SUGGESTS "libx11-6" )
SET ( CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous" )
SET ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )

# .rpm for rpm
# https://cmake.org/cmake/help/v3.5/module/CPackRPM.html
Expand All @@ -142,7 +144,11 @@ SET ( CPACK_RPM_PACKAGE_REQUIRES "xz-utils" )
SET ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/preinst" )
SET ( CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/postinst" )
SET ( CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/prerm" )
SET ( CPACK_RPM_COMPRESSION_TYPE "xz" )

if(NOT DO_NOT_BUILD_ARCHIVES)
SET ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )
SET ( CPACK_RPM_COMPRESSION_TYPE "xz" )
endif()

# OSX dmg generator
if ( APPLE )
Expand Down
13 changes: 9 additions & 4 deletions dependencies/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ else ()

set(CMAKE_POLICY_DEFAULT_CMP0071 NEW)

file(READ "${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers/CMakeLists.txt" FILE_CONTENTS_FLAT)
string(REPLACE "-Werror " "-Wno-stringop-overflow " FILE_CONTENTS_FLAT "${FILE_CONTENTS_FLAT}")
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers/CMakeLists.txt" "${FILE_CONTENTS_FLAT}")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers/CMakeLists.txt" FILE_CONTENTS_FLAT)
string(REPLACE "-Werror " "-Wno-stringop-overflow " FILE_CONTENTS_FLAT "${FILE_CONTENTS_FLAT}")
file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers/CMakeLists.txt" "${FILE_CONTENTS_FLAT}")
endif()

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers)

Expand Down Expand Up @@ -161,5 +163,8 @@ ENDIF()

if ( ENABLE_XZ )
option(BUILD_TESTING "" OFF)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/xz)
if (NOT LIBLZMA_FOUND)
message( WARNING "Could not found system xz library. Using embedded xz library.")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/xz)
endif()
ENDIF()
9 changes: 7 additions & 2 deletions sources/api/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,13 @@ target_link_libraries(hyperhdr-api
)

if(ENABLE_XZ)
target_link_libraries(hyperhdr-api liblzma)
target_include_directories(hyperhdr-api PRIVATE "${CMAKE_SOURCE_DIR}/dependencies/external/xz/src/liblzma/api")
if (NOT LIBLZMA_FOUND)
target_link_libraries(hyperhdr-api liblzma)
target_include_directories(hyperhdr-api PRIVATE "${CMAKE_SOURCE_DIR}/dependencies/external/xz/src/liblzma/api")
else()
target_link_libraries(hyperhdr-api LibLZMA::LibLZMA)
target_include_directories(hyperhdr-api PRIVATE ${LIBLZMA_INCLUDE_DIR})
endif()
endif()

if(USE_PRECOMPILED_HEADERS AND COMMAND target_precompile_headers)
Expand Down
6 changes: 5 additions & 1 deletion sources/hyperhdr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ if (USE_STATIC_QT_PLUGINS)
endif()

if(ENABLE_XZ)
target_link_libraries(hyperhdr liblzma)
if (LIBLZMA_FOUND)
target_link_libraries(hyperhdr LibLZMA::LibLZMA)
else()
target_link_libraries(hyperhdr liblzma)
endif()
endif()

if (ENABLE_PROTOBUF)
Expand Down

0 comments on commit 7df7fcf

Please sign in to comment.