Skip to content

Fix S27 pointcloud view, and build errors #126

Fix S27 pointcloud view, and build errors

Fix S27 pointcloud view, and build errors #126

Workflow file for this run

name: MultiSense Viewer Pull request workflow
on:
pull_request:
types: [opened, synchronize, reopened]
push:
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
workflow_dispatch:
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
VersionJob:
name: "Set Version"
runs-on: ubuntu-latest
outputs:
install_path: ${{ steps.install_path_id.outputs.install_path }}
install_path_ubuntu: ${{ steps.install_path_id.outputs.install_path }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0 # Mandatory to use the extract version from tag action
- name: Extract version from tag
uses: damienaicheh/[email protected]
- name: Print version
run: echo "The version is ${{ env.MAJOR }}.${{ env.MINOR }}-${{ env.PATCH }}"
- name: Set Output
id: install_path_id
run: echo "install_path=multisense_${{ env.MAJOR }}.${{ env.MINOR }}-${{ env.PATCH }}_amd64" >> $GITHUB_OUTPUT
- name: Set Output Ubuntu
id: install_path_id_ubuntu
run: echo "install_path_ubuntu=multisense_${{ env.MAJOR }}.${{ env.MINOR }}-${{ env.PATCH }}_amd64/opt/multisense" >> $GITHUB_OUTPUT
BuildWindows:
name: Build For Windows
needs: [VersionJob]
# 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: windows-2022
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- 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 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGIT_SUBMODULE=OFF -DWARNINGS_AS_ERRORS=FALSE #-D CMAKE_C_COMPILER=gcc-11 -D CMAKE_CXX_COMPILER=g++-11
- name: Build project
# 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 --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install -- /m:10
- name: zipFiles
uses: vimtor/action-zip@v1
with:
files: ./build/${{ needs.VersionJob.outputs.install_path }}
dest: MultiSense_viewer.zip
- name: "Create Artifact"
uses: actions/upload-artifact@v2
with:
name: multisense-zip
path: ${{github.workspace}}/MultiSense_viewer.zip
BuildUbuntu20:
name: Build and package for Ubuntu 20_04
needs: [VersionJob]
# 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-20.04
steps:
- name: print install location
run: echo "My output is ${{ needs.VersionJob.outputs.install_path }}"
- uses: actions/checkout@v3
with:
submodules: 'true'
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Install dependencies
run: sudo apt-get install -y cmake libx11-dev build-essential xorg-dev libtbb-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libssl-dev libgtk-3-dev libsystemd-dev
#- name: update gcc11
#run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt install -y gcc-11 g++-11
- 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 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGIT_SUBMODULE=OFF -DWARNINGS_AS_ERRORS=FALSE #-D CMAKE_C_COMPILER=gcc-11 -D CMAKE_CXX_COMPILER=g++-11
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build -- -j3
- name: Install
working-directory: ${{github.workspace}}/build
run: cmake --install . --config ${{env.BUILD_TYPE}}
- name: Prepare package step
working-directory: ${{github.workspace}}/build
run: |
mkdir ${{ needs.VersionJob.outputs.install_path }}/DEBIAN && cp ${{github.workspace}}/Assets/Tools/Ubuntu/control ${{ needs.VersionJob.outputs.install_path }}/DEBIAN/
mkdir -p ${{ needs.VersionJob.outputs.install_path }}/usr/share/applications && cp ${{github.workspace}}/Assets/Tools/Ubuntu/multisense.desktop ${{ needs.VersionJob.outputs.install_path }}/usr/share/applications/
cp ${{github.workspace}}/Assets/Tools/Ubuntu/start.sh ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/include
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/lib
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/share
- name: Package
working-directory: ${{github.workspace}}/build
run: dpkg-deb --build --root-owner-group ${{ needs.VersionJob.outputs.install_path }}
BuildUbuntu22:
name: Build and package for Ubuntu 22_04
needs: [VersionJob]
# 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-22.04
steps:
- name: print install location
run: echo "My output is ${{ needs.VersionJob.outputs.install_path }}"
- uses: actions/checkout@v3
with:
submodules: 'true'
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Install dependencies
run: sudo apt-get install -y cmake libx11-dev build-essential xorg-dev libtbb-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libssl-dev libgtk-3-dev libsystemd-dev libwebp-dev
#- name: update gcc11
#run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt install -y gcc-11 g++-11
- 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 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGIT_SUBMODULE=OFF -DWARNINGS_AS_ERRORS=FALSE #-D CMAKE_C_COMPILER=gcc-11 -D CMAKE_CXX_COMPILER=g++-11
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build -- -j3
- name: Install
working-directory: ${{github.workspace}}/build
run: cmake --install . --config ${{env.BUILD_TYPE}}
- name: Prepare package step
working-directory: ${{github.workspace}}/build
run: |
mkdir ${{ needs.VersionJob.outputs.install_path }}/DEBIAN && cp ${{github.workspace}}/Assets/Tools/Ubuntu/control ${{ needs.VersionJob.outputs.install_path }}/DEBIAN/
mkdir -p ${{ needs.VersionJob.outputs.install_path }}/usr/share/applications && cp ${{github.workspace}}/Assets/Tools/Ubuntu/multisense.desktop ${{ needs.VersionJob.outputs.install_path }}/usr/share/applications/
cp ${{github.workspace}}/Assets/Tools/Ubuntu/start.sh ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/include
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/lib
rm -rf ${{ needs.VersionJob.outputs.install_path }}/opt/multisense/share
- name: Package
working-directory: ${{github.workspace}}/build
run: dpkg-deb --build --root-owner-group ${{ needs.VersionJob.outputs.install_path }}
build:
name: Create Windows Installer
needs: [BuildWindows]
runs-on: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Get Artifacts
uses: actions/download-artifact@v2
with:
name: multisense-zip
- name: Extract some files
run: |
mkdir files
tar -xf .\MultiSense_viewer.zip -C .\files\
mv .\files\Assets\Tools\windows\inno_setup_script.iss .\
mv .\files\Assets\Tools\compile.sh .\
mv .\files\Assets\Tools\install_spirv_compiler.sh .\
mv .\files\Assets\Tools\monitor_memory_usage.py .\
mv .\files\Assets\Tools\Windows\build_installer.ps1 .\
mv .\files\Assets\Tools\how_to_release .\
rm -R .\files\Assets\Tools\Ubuntu
rm -R .\files\bin
rm -R .\files\include
rm -R .\files\lib
shell: cmd
- name: Building the installer
run: |
"%programfiles(x86)%\inno Setup 6\iscc.exe" "inno_setup_script.iss"
shell: cmd