Skip to content

Commit 7df7fcf

Browse files
authored
Add Ubuntu support to HyperHDR and Github Pages APT repository (#522)
1 parent c2d3c78 commit 7df7fcf

File tree

8 files changed

+88
-43
lines changed

8 files changed

+88
-43
lines changed

.ci/ci_build.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,16 @@ else
1616
CI_NAME="$(uname -s | tr '[:upper:]' '[:lower:]')"
1717
fi
1818

19+
if [[ "$BUILD_ARCHIVES" == '0' ]]; then
20+
IS_ARCHIVE_SKIPPED=" -DDO_NOT_BUILD_ARCHIVES=ON"
21+
else
22+
IS_ARCHIVE_SKIPPED=" -DDO_NOT_BUILD_ARCHIVES=OFF"
23+
fi
24+
1925
# set environment variables if not exists (debug)
2026
[ -z "${BUILD_TYPE}" ] && BUILD_TYPE="Release"
2127

22-
echo "Platform: ${PLATFORM}, build type: ${BUILD_TYPE}, CI_NAME: $CI_NAME, docker image: ${DOCKER_IMAGE}, docker type: ${DOCKER_TAG}"
28+
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}"
2329

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

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

95101
mkdir -p .ccache
96102

97-
cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
103+
cachecommand="-DCMAKE_C_COMPILER_LAUNCHER=ccache ${IS_ARCHIVE_SKIPPED}"
98104

99105
if [[ "$RESET_CACHE" == '1' ]]; then
100106
echo "Clearing ccache"

.github/workflows/push-master.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ env:
77
USE_CACHE: "1"
88
RESET_CACHE: "0"
99
USE_CODEQL: "0"
10+
BUILD_ARCHIVES: ${{ startsWith(github.event.ref, 'refs/tags') && 1 || 0 }}
1011

1112
jobs:
1213

@@ -21,23 +22,23 @@ jobs:
2122
strategy:
2223
matrix:
2324
linuxVersion: [ bullseye ]
24-
dockerImage: [ x86_64, rpi012-armv6l, rpi34-armv7l, arm-aarch64 ]
25+
dockerImage: [ x86_64, arm-32bit-armv6l, arm-64bit-aarch64 ]
2526
include:
2627
- dockerImage: x86_64
2728
linuxVersion: bullseye
2829
dockerName: Debian Bullseye (x86_64)
2930
platform: linux
30-
- dockerImage: rpi012-armv6l
31-
linuxVersion: bullseye
32-
dockerName: Debian Bullseye (Raspberry Pi ZERO, 1 & 2)
33-
platform: rpi
34-
- dockerImage: rpi34-armv7l
31+
- dockerImage: x86_64
32+
linuxVersion: jammy
33+
dockerName: Ubuntu 22.04 LTS (x86_64)
34+
platform: linux
35+
- dockerImage: arm-32bit-armv6l
3536
linuxVersion: bullseye
36-
dockerName: Debian Bullseye (Raspberry Pi 3 & 4)
37+
dockerName: Debian Bullseye (ARM 32-bit Raspberry Pi OS)
3738
platform: rpi
38-
- dockerImage: arm-aarch64
39+
- dockerImage: arm-64bit-aarch64
3940
linuxVersion: bullseye
40-
dockerName: Debian Bullseye (ARM aarch64)
41+
dockerName: Debian Bullseye (ARM 64-bit Raspberry Pi OS)
4142
platform: rpi
4243
- dockerImage: x86_64
4344
linuxVersion: ArchLinux
@@ -76,7 +77,8 @@ jobs:
7677
USE_CCACHE: ${{ env.USE_CACHE }}
7778
RESET_CACHE: ${{ env.RESET_CACHE }}
7879
shell: bash
79-
run: ./.ci/ci_build.sh
80+
run: |
81+
./.ci/ci_build.sh
8082
8183
# Upload artifacts (only on tagged commit)
8284
- name: Upload artifacts
@@ -203,6 +205,7 @@ jobs:
203205
env:
204206
PLATFORM: windows
205207
CMAKE_PREFIX_PATH: "${{ runner.workspace }}/Qt/${{ env.QT_VERSION }}/msvc2019_64/lib/cmake/"
208+
USE_CCACHE: ${{ env.USE_CACHE }}
206209
shell: bash
207210
run: |
208211
./.ci/ci_build.sh

.github/workflows/upload-to-github-pages.yml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,45 @@ jobs:
1414
###### Upload to HyperHDR repo #######
1515
######################################
1616
Linux:
17-
name: Debian ${{ matrix.linuxVersion }} (${{ matrix.arch }})
17+
name: ${{ matrix.niceName }} ${{ matrix.linuxVersion }} (${{ matrix.arch }})
1818
runs-on: ubuntu-22.04
1919

2020
strategy:
2121
matrix:
22+
niceName: [ Debian ]
2223
linuxVersion: [ bullseye, bookworm ]
23-
dockerImage: [ x86_64, rpi012-armv6l, arm-aarch64 ]
24+
dockerImage: [ x86_64, arm-32bit-armv6l, arm-64bit-aarch64 ]
2425
include:
2526
- dockerImage: x86_64
2627
dockerName: Debian (amd64)
2728
arch: amd64
2829
platform: linux
29-
- dockerImage: rpi012-armv6l
30+
- dockerImage: arm-32bit-armv6l
3031
dockerName: Debian (armhf)
3132
arch: armhf
3233
platform: rpi
33-
- dockerImage: arm-aarch64
34+
- dockerImage: arm-64bit-aarch64
3435
dockerName: Debian (arm64)
3536
arch: arm64
3637
platform: rpi
3738
- dockerImage: x86_64
3839
linuxVersion: ArchLinux
3940
dockerName: Arch Linux (x86_64)
41+
arch: amd64
42+
platform: linux
43+
niceName: ""
44+
- dockerImage: x86_64
45+
linuxVersion: jammy
46+
dockerName: Ubuntu 22.04 LTS (x86_64)
47+
arch: amd64
48+
platform: linux
49+
niceName: Ubuntu 22.04 LTS
50+
- dockerImage: x86_64
51+
linuxVersion: lunar
52+
dockerName: Ubuntu 23.04 (x86_64)
53+
arch: amd64
4054
platform: linux
55+
niceName: Ubuntu 23.04
4156

4257
steps:
4358
# checkout
@@ -73,9 +88,6 @@ jobs:
7388
RESET_CACHE: ${{ env.RESET_CACHE }}
7489
shell: bash
7590
run: |
76-
if [ "${{ matrix.arch }}" == "amd64" ] && [ "${{ matrix.linuxVersion }}" == "bullseye" ]; then
77-
sed -i 's/#SET(HYPERHDR_REPO_RPM_BUILD ON)/SET(HYPERHDR_REPO_RPM_BUILD ON)/' ./cmake/packages.cmake
78-
fi
7991
sed -i 's/#SET(HYPERHDR_REPO_BUILD ON)/SET(HYPERHDR_REPO_BUILD ON)/' ./cmake/packages.cmake
8092
./.ci/ci_build.sh
8193

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,10 @@ SET ( FLATBUFFERS_INSTALL_LIB_DIR ${CMAKE_BINARY_DIR}/flatbuf )
403403

404404
find_package(GitVersion)
405405

406+
if(ENABLE_XZ)
407+
find_package(LibLZMA)
408+
endif()
409+
406410
# configure a header file to pass some of the CMake settings
407411
# to the source code
408412
configure_file("${PROJECT_SOURCE_DIR}/HyperhdrConfig.h.in" "${PROJECT_BINARY_DIR}/HyperhdrConfig.h")

cmake/packages.cmake

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# cmake file for generating distribution packages
2-
#SET(HYPERHDR_REPO_RPM_BUILD ON)
32
#SET(HYPERHDR_REPO_BUILD ON)
43

54
# - Check glibc version
@@ -27,23 +26,27 @@ MACRO (CHECK_GLIBC_VERSION)
2726
ENDMACRO (CHECK_GLIBC_VERSION)
2827

2928
# default packages to build
30-
IF (APPLE)
31-
SET ( CPACK_GENERATOR "TGZ")
32-
ELSEIF (UNIX)
33-
SET ( CPACK_GENERATOR "TGZ")
34-
ELSEIF (WIN32)
35-
SET ( CPACK_GENERATOR "ZIP" "NSIS")
29+
if(NOT DO_NOT_BUILD_ARCHIVES)
30+
IF (APPLE)
31+
SET ( CPACK_GENERATOR "TGZ")
32+
ELSEIF (UNIX)
33+
SET ( CPACK_GENERATOR "TGZ")
34+
ELSEIF (WIN32)
35+
SET ( CPACK_GENERATOR "ZIP" "NSIS")
36+
ENDIF()
37+
ELSE()
38+
IF (WIN32)
39+
SET ( CPACK_GENERATOR "NSIS")
40+
ENDIF()
3641
ENDIF()
3742

3843
# Determine packages by found generator executables
3944

4045
# Github Action enables it for packages
41-
if(HYPERHDR_REPO_RPM_BUILD)
42-
find_package(RpmBuilder)
43-
IF(RPM_BUILDER_FOUND)
44-
message(STATUS "CPACK: Found RPM builder")
45-
SET ( CPACK_GENERATOR "RPM")
46-
ENDIF()
46+
find_package(RpmBuilder)
47+
IF(RPM_BUILDER_FOUND)
48+
message(STATUS "CPACK: Found RPM builder")
49+
SET ( CPACK_GENERATOR "RPM")
4750
ENDIF()
4851

4952
find_package(DebBuilder)
@@ -131,7 +134,6 @@ if ( ENABLE_CEC )
131134
endif()
132135
SET ( CPACK_DEBIAN_PACKAGE_SUGGESTS "libx11-6" )
133136
SET ( CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous" )
134-
SET ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )
135137

136138
# .rpm for rpm
137139
# https://cmake.org/cmake/help/v3.5/module/CPackRPM.html
@@ -142,7 +144,11 @@ SET ( CPACK_RPM_PACKAGE_REQUIRES "xz-utils" )
142144
SET ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/preinst" )
143145
SET ( CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/postinst" )
144146
SET ( CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/prerm" )
145-
SET ( CPACK_RPM_COMPRESSION_TYPE "xz" )
147+
148+
if(NOT DO_NOT_BUILD_ARCHIVES)
149+
SET ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )
150+
SET ( CPACK_RPM_COMPRESSION_TYPE "xz" )
151+
endif()
146152

147153
# OSX dmg generator
148154
if ( APPLE )

dependencies/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ else ()
2525

2626
set(CMAKE_POLICY_DEFAULT_CMP0071 NEW)
2727

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

3234
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/flatbuffers)
3335

@@ -161,5 +163,8 @@ ENDIF()
161163

162164
if ( ENABLE_XZ )
163165
option(BUILD_TESTING "" OFF)
164-
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/xz)
166+
if (NOT LIBLZMA_FOUND)
167+
message( WARNING "Could not found system xz library. Using embedded xz library.")
168+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/xz)
169+
endif()
165170
ENDIF()

sources/api/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,13 @@ target_link_libraries(hyperhdr-api
2121
)
2222

2323
if(ENABLE_XZ)
24-
target_link_libraries(hyperhdr-api liblzma)
25-
target_include_directories(hyperhdr-api PRIVATE "${CMAKE_SOURCE_DIR}/dependencies/external/xz/src/liblzma/api")
24+
if (NOT LIBLZMA_FOUND)
25+
target_link_libraries(hyperhdr-api liblzma)
26+
target_include_directories(hyperhdr-api PRIVATE "${CMAKE_SOURCE_DIR}/dependencies/external/xz/src/liblzma/api")
27+
else()
28+
target_link_libraries(hyperhdr-api LibLZMA::LibLZMA)
29+
target_include_directories(hyperhdr-api PRIVATE ${LIBLZMA_INCLUDE_DIR})
30+
endif()
2631
endif()
2732

2833
if(USE_PRECOMPILED_HEADERS AND COMMAND target_precompile_headers)

sources/hyperhdr/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ if (USE_STATIC_QT_PLUGINS)
5353
endif()
5454

5555
if(ENABLE_XZ)
56-
target_link_libraries(hyperhdr liblzma)
56+
if (LIBLZMA_FOUND)
57+
target_link_libraries(hyperhdr LibLZMA::LibLZMA)
58+
else()
59+
target_link_libraries(hyperhdr liblzma)
60+
endif()
5761
endif()
5862

5963
if (ENABLE_PROTOBUF)

0 commit comments

Comments
 (0)