ci: update build workflow

This commit is contained in:
2024-04-28 01:06:14 +01:00
parent e0db35d087
commit 0cf79bf7a5
5 changed files with 50 additions and 42 deletions
+38 -10
View File
@@ -13,43 +13,71 @@ env:
BUILD_TYPE: Release
jobs:
check-build:
check-build-linux:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
name: Build (Linux)
env:
CC: gcc-13
CXX: g++-13
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install cmake qtbase5-dev libavcodec-dev libavformat-dev libavutil-dev libopencv-dev libopencv-video-dev libopencv-contrib-dev
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Build with default options
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON; cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
run: |
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Build without threads
run: cmake -B ${{github.workspace}}/build-without-thread -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DCALYP_MANAGED_RESOURCES=OFF -DCALYP_THREADED_MODULES=OFF; cmake --build ${{github.workspace}}/build-without-thread --config ${{env.BUILD_TYPE}}
run: |
cmake -B ${{github.workspace}}/build-without-thread -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DCALYP_MANAGED_RESOURCES=OFF -DCALYP_THREADED_MODULES=OFF
cmake --build ${{github.workspace}}/build-without-thread --config ${{env.BUILD_TYPE}}
- name: Build without dependencies
run: cmake -B ${{github.workspace}}/build-without-deps -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DUSE_OPENCV=OFF -DUSE_FFMPEG=OFF; cmake --build ${{github.workspace}}/build-without-deps --config ${{env.BUILD_TYPE}}
run: |
cmake -B ${{github.workspace}}/build-without-deps -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON -DUSE_OPENCV=OFF -DUSE_FFMPEG=OFF
cmake --build ${{github.workspace}}/build-without-deps --config ${{env.BUILD_TYPE}}
- name: Install Qt&
run: sudo apt-get install qt6-base-dev
- name: Build with Qt& (autodetect)
run: cmake -B ${{github.workspace}}/build-qt6 -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON; cmake --build ${{github.workspace}}/build-qt6 --config ${{env.BUILD_TYPE}}
run: |
cmake -B ${{github.workspace}}/build-qt6 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
cmake --build ${{github.workspace}}/build-qt6 --config ${{env.BUILD_TYPE}}
check-tests:
check-build-macos:
name: Build (macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install cmake qt opencv ffmpeg
- name: Build with default options
run: |
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DUSE_WERROR=ON
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
check-tests-linux:
name: Tests (Linux)
runs-on: ubuntu-latest
needs: check-build-linux
env:
CC: gcc-13
CXX: g++-13
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install cmake qtbase5-dev qt6-base-dev libavcodec-dev libavformat-dev libavutil-dev libopencv-dev libopencv-video-dev libopencv-contrib-dev
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Check out tests data
uses: actions/checkout@master
@@ -60,7 +88,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -D CMAKE_C_COMPILER=gcc-12 -D CMAKE_CXX_COMPILER=g++-12 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTS=ON -DCALYP_TEST_DATA_DIR=${{github.workspace}}/tests_data
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_TESTS=ON -DCALYP_TEST_DATA_DIR=${{github.workspace}}/tests_data
- name: Build
# Build your program with the given configuration
+1 -1
View File
@@ -242,7 +242,7 @@ IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Release")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops -Wno-unused-function")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -funroll-loops")
# if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif()
+2
View File
@@ -8,6 +8,8 @@ EXPORT(PACKAGE MyLib)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
SET(Calyp_Lib_Frame_SRCS CalypPixel.cpp PixelFormats.h PixelFormats.cpp CalypFrame.h CalypFrame.cpp)
SET(Calyp_Lib_Stream_SRCS
+6 -27
View File
@@ -43,8 +43,7 @@ ThreeSixtyNxN::ThreeSixtyNxN()
m_pchModuleLongName = "ERP to NxN";
m_pchModuleTooltip = "Downsampling ERP to NxN";
m_uiNumberOfFrames = 1;
m_uiModuleRequirements = ClpModuleFeature::SkipWhilePlaying |
ClpModuleFeature::Options;
m_uiModuleRequirements = ClpModuleFeature::SkipWhilePlaying | ClpModuleFeature::Options;
m_cModuleOptions.addOptions() /**/
( "Downsampling", m_uiDownsampling, "ERP to NxN (0 for up, 1 for down and 2 for recon) [1]" ) /**/
@@ -60,11 +59,13 @@ bool ThreeSixtyNxN::create( std::vector<CalypFrame*> apcFrameList )
m_uiDownsampling = m_uiDownsampling > 2 ? 1 : m_uiDownsampling;
if( m_uiDownsampling == 0 )
{
m_pcOutputFrame = new CalypFrame( 2 * apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(), apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
m_pcOutputFrame = new CalypFrame( 2 * apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(),
apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
}
else
{
m_pcOutputFrame = new CalypFrame( apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(), apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
m_pcOutputFrame = new CalypFrame( apcFrameList[0]->getHeight(), apcFrameList[0]->getHeight(),
apcFrameList[0]->getPelFormat(), apcFrameList[0]->getBitsPel() );
}
return true;
@@ -84,12 +85,7 @@ bool ThreeSixtyNxN::create( std::vector<CalypFrame*> apcFrameList )
static inline ClpPel interpol_lanczos3( ClpPel* image, double x, int N, int max_value )
{
static const double cs[][2] = {
{ 1, 0 },
{ -0.5, -s60 },
{ -0.5, s60 },
{ 1, 0 },
{ -0.5, -s60 },
{ -0.5, s60 },
{ 1, 0 }, { -0.5, -s60 }, { -0.5, s60 }, { 1, 0 }, { -0.5, -s60 }, { -0.5, s60 },
};
double sum_coeffs = 0, sum = 0, coeffs[6];
@@ -117,23 +113,6 @@ static inline ClpPel interpol_lanczos3( ClpPel* image, double x, int N, int max_
return CLAMP_RANGE( sum, 0, max_value );
}
//interpolação cúbica 360
static inline ClpPel interpol_cub( ClpPel* image, double x, int N, int max_value )
{
int x_int = floor( x );
x -= x_int;
bool n0 = x > 0;
ClpPel x1 = *( image + CIRCULAR( x_int, N ) );
if( !n0 )
return x1;
ClpPel x2 = *( image + CIRCULAR( x_int + n0, N ) );
ClpPel x0 = *( image + CIRCULAR( x_int - 1, N ) );
ClpPel x3 = *( image + CIRCULAR( x_int + n0 + 1, N ) );
ClpPel out = CLAMP_RANGE( x1 - x * ( x0 - x2 + x * ( 2 * x1 - 2 * x0 - x2 + x3 + x * ( x0 - x1 + x2 - x3 ) ) ), 0, max_value ); //cubic
return out;
}
void ThreeSixtyNxN::downsamplingOperation( const CalypFrame* pcInputFrame )
{
for( unsigned ch = 0; ch < m_pcOutputFrame->getNumberChannels(); ch++ )
+1 -2
View File
@@ -26,7 +26,6 @@
#include <climits>
#include <cstring>
#include <format>
#include <iostream>
#include "config.h"
@@ -721,7 +720,7 @@ int CalypTools::ListStatistics()
log( CLP_LOG_RESULT, " Range: " );
for( unsigned channel = 0; channel < currFrame->getNumberChannels(); channel++ )
{
log( CLP_LOG_RESULT, std::format( "[{}:{}]", min[channel], max[channel] ) );
log( CLP_LOG_RESULT, "[%d:%d]", min[channel], max[channel] );
}
log( CLP_LOG_RESULT, "|\n" );