mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-05-10 09:30:48 +08:00
Testing - Fix master validation workflow (#611)
- Wrap deprecated FFmpeg calls in MSVC warning push/pop pragmas in two source files - Introduce `.github/workflows/master-validation.yml` and remove several old workflows - Broadened `if` conditions in `daily-ir-vcpkg-configure.yml` and updated macOS brew deps
This commit is contained in:
83
.github/actions/cmake-build-basic/action.yml
vendored
Normal file
83
.github/actions/cmake-build-basic/action.yml
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
name: 'CMake Basic Build'
|
||||
description: 'Configure and build OCCT with basic configuration'
|
||||
|
||||
inputs:
|
||||
generator:
|
||||
description: 'CMake generator'
|
||||
required: true
|
||||
default: 'Ninja'
|
||||
cc:
|
||||
description: 'C compiler'
|
||||
required: true
|
||||
cxx:
|
||||
description: 'C++ compiler'
|
||||
required: true
|
||||
build-type:
|
||||
description: 'Build type (Debug, Release)'
|
||||
required: false
|
||||
default: 'Release'
|
||||
compiler-flags:
|
||||
description: 'Additional compiler flags'
|
||||
required: false
|
||||
default: ''
|
||||
thirdparty-dir:
|
||||
description: '3rd party directory'
|
||||
required: false
|
||||
default: ''
|
||||
shell-type:
|
||||
description: 'Shell type to use (powershell, msys2, bash)'
|
||||
required: false
|
||||
default: 'auto'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Configure basic build (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "${{ inputs.generator }}" \
|
||||
-D CMAKE_C_COMPILER=${{ inputs.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ inputs.cxx }} \
|
||||
${{ inputs.thirdparty-dir != '' && format('-D 3RDPARTY_DIR={0}', inputs.thirdparty-dir) || '' }} \
|
||||
-D CMAKE_BUILD_TYPE=${{ inputs.build-type }} \
|
||||
${{ inputs.compiler-flags }} ..
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Configure basic build (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ inputs.generator }}" `
|
||||
-D CMAKE_C_COMPILER=${{ inputs.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ inputs.cxx }} `
|
||||
${{ inputs.thirdparty-dir != '' && format('-D 3RDPARTY_DIR={0}', inputs.thirdparty-dir) || '' }} `
|
||||
-D CMAKE_BUILD_TYPE=${{ inputs.build-type }} `
|
||||
${{ inputs.compiler-flags }} ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build basic (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --config ${{ inputs.build-type }} -- -j 4
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Build basic (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --config ${{ inputs.build-type }}
|
||||
shell: pwsh
|
||||
|
||||
- name: Clean up build (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: rm -rf build
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Clean up build (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: Remove-Item -Recurse -Force build
|
||||
shell: pwsh
|
||||
149
.github/actions/cmake-build-full/action.yml
vendored
Normal file
149
.github/actions/cmake-build-full/action.yml
vendored
Normal file
@@ -0,0 +1,149 @@
|
||||
name: 'CMake Full Build'
|
||||
description: 'Configure and build OCCT with full configuration (shared/static)'
|
||||
|
||||
inputs:
|
||||
generator:
|
||||
description: 'CMake generator'
|
||||
required: true
|
||||
default: 'Ninja'
|
||||
cc:
|
||||
description: 'C compiler'
|
||||
required: true
|
||||
cxx:
|
||||
description: 'C++ compiler'
|
||||
required: true
|
||||
build-type:
|
||||
description: 'Build type (Debug, Release)'
|
||||
required: false
|
||||
default: 'Release'
|
||||
library-type:
|
||||
description: 'Library type (Shared, Static)'
|
||||
required: false
|
||||
default: 'Shared'
|
||||
opt-profile:
|
||||
description: 'Optimization profile (Production, Default)'
|
||||
required: false
|
||||
default: 'Production'
|
||||
compiler-flags:
|
||||
description: 'Additional compiler flags'
|
||||
required: false
|
||||
default: ''
|
||||
thirdparty-dir:
|
||||
description: '3rd party directory'
|
||||
required: false
|
||||
default: ''
|
||||
rapidjson-dir:
|
||||
description: 'RapidJSON directory'
|
||||
required: false
|
||||
default: ''
|
||||
use-vtk:
|
||||
description: 'Enable VTK'
|
||||
required: false
|
||||
default: 'ON'
|
||||
use-tbb:
|
||||
description: 'Enable TBB'
|
||||
required: false
|
||||
default: 'ON'
|
||||
with-debug:
|
||||
description: 'Enable BUILD_WITH_DEBUG'
|
||||
required: false
|
||||
default: 'OFF'
|
||||
shell-type:
|
||||
description: 'Shell type to use (powershell, msys2, bash)'
|
||||
required: false
|
||||
default: 'auto'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Configure full build (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "${{ inputs.generator }}" \
|
||||
-D CMAKE_C_COMPILER=${{ inputs.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ inputs.cxx }} \
|
||||
${{ inputs.thirdparty-dir != '' && format('-D 3RDPARTY_DIR={0}', inputs.thirdparty-dir) || '' }} \
|
||||
${{ inputs.rapidjson-dir != '' && format('-D 3RDPARTY_RAPIDJSON_DIR={0}', inputs.rapidjson-dir) || '' }} \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=${{ inputs.opt-profile }} \
|
||||
-D BUILD_LIBRARY_TYPE=${{ inputs.library-type }} \
|
||||
${{ inputs.with-debug == 'ON' && '-D BUILD_WITH_DEBUG=ON' || '' }} \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=${{ inputs.build-type }} \
|
||||
-D USE_MMGR_TYPE=JEMALLOC \
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install-${{ inputs.build-type }} \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=${{ inputs.use-vtk }} \
|
||||
-D USE_TBB=${{ inputs.use-tbb }} \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
${{ inputs.compiler-flags }} ..
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Configure full build (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ inputs.generator }}" `
|
||||
-D CMAKE_C_COMPILER=${{ inputs.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ inputs.cxx }} `
|
||||
${{ inputs.thirdparty-dir != '' && format('-D 3RDPARTY_DIR={0}', inputs.thirdparty-dir) || '' }} `
|
||||
${{ inputs.rapidjson-dir != '' && format('-D 3RDPARTY_RAPIDJSON_DIR={0}', inputs.rapidjson-dir) || '' }} `
|
||||
-D BUILD_USE_PCH=OFF `
|
||||
-D BUILD_INCLUDE_SYMLINK=ON `
|
||||
-D BUILD_OPT_PROFILE=${{ inputs.opt-profile }} `
|
||||
-D BUILD_LIBRARY_TYPE=${{ inputs.library-type }} `
|
||||
${{ inputs.with-debug == 'ON' && '-D BUILD_WITH_DEBUG=ON' || '' }} `
|
||||
-D USE_TK=ON `
|
||||
-D CMAKE_BUILD_TYPE=${{ inputs.build-type }} `
|
||||
-D USE_MMGR_TYPE=JEMALLOC `
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install-${{ inputs.build-type }} `
|
||||
-D USE_FREETYPE=ON `
|
||||
-D USE_DRACO=ON `
|
||||
-D USE_FFMPEG=OFF `
|
||||
-D USE_FREEIMAGE=ON `
|
||||
-D USE_GLES2=ON `
|
||||
-D USE_OPENVR=ON `
|
||||
-D USE_VTK=${{ inputs.use-vtk }} `
|
||||
-D USE_TBB=${{ inputs.use-tbb }} `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON `
|
||||
${{ inputs.compiler-flags }} ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build full (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config ${{ inputs.build-type }} -- -j 4
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Build full (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config ${{ inputs.build-type }}
|
||||
shell: pwsh
|
||||
|
||||
- name: Clean up build (Unix/MSYS2)
|
||||
if: runner.os != 'Windows' || inputs.shell-type == 'msys2'
|
||||
run: |
|
||||
rm -rf build
|
||||
rm -rf ${{ github.workspace }}/install-${{ inputs.build-type }}
|
||||
shell: ${{ inputs.shell-type == 'msys2' && 'msys2 {0}' || 'bash' }}
|
||||
|
||||
- name: Clean up build (Windows PowerShell)
|
||||
if: runner.os == 'Windows' && inputs.shell-type != 'msys2'
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install-${{ inputs.build-type }}
|
||||
shell: pwsh
|
||||
30
.github/actions/setup-msys2/action.yml
vendored
Normal file
30
.github/actions/setup-msys2/action.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: 'Setup MSYS2'
|
||||
description: 'Setup MSYS2 environment for MinGW builds'
|
||||
|
||||
inputs:
|
||||
msystem:
|
||||
description: 'MSYS2 subsystem (MINGW64, CLANG64, UCRT64)'
|
||||
required: true
|
||||
packages:
|
||||
description: 'Packages to install'
|
||||
required: true
|
||||
dependencies:
|
||||
description: 'Additional dependencies to install'
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Set up MSYS2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: ${{ inputs.msystem }}
|
||||
update: true
|
||||
install: ${{ inputs.packages }} ${{ inputs.dependencies }}
|
||||
|
||||
- name: Setup environment
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
echo "Setting up environment variables..."
|
||||
echo "$MSYSTEM_PREFIX/bin" >> $GITHUB_PATH
|
||||
echo "CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX" >> $GITHUB_ENV
|
||||
15
.github/actions/setup-ubuntu-deps/action.yml
vendored
Normal file
15
.github/actions/setup-ubuntu-deps/action.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
name: 'Setup Ubuntu Dependencies'
|
||||
description: 'Install Ubuntu dependencies and rapidjson for OCCT builds'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y ninja-build tcl-dev tk-dev cmake clang gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev libjemalloc-dev
|
||||
shell: bash
|
||||
|
||||
- name: Install rapidjson
|
||||
run: |
|
||||
wget https://github.com/Tencent/rapidjson/archive/858451e5b7d1c56cf8f6d58f88cf958351837e53.zip -O rapidjson.zip
|
||||
unzip rapidjson.zip
|
||||
shell: bash
|
||||
30
.github/actions/setup-windows-msvc-deps/action.yml
vendored
Normal file
30
.github/actions/setup-windows-msvc-deps/action.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: 'Setup Windows MSVC Dependencies'
|
||||
description: 'Download and setup 3rdparty dependencies and Mesa3D for Windows MSVC builds'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Set up MSVC
|
||||
uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||
with:
|
||||
arch: x64
|
||||
|
||||
- name: Download and extract 3rdparty dependencies
|
||||
run: |
|
||||
Invoke-WebRequest -Uri https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_9_0_beta1/3rdparty-vc14-64.zip -OutFile 3rdparty-vc14-64.zip
|
||||
Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath .
|
||||
Remove-Item 3rdparty-vc14-64.zip
|
||||
shell: pwsh
|
||||
|
||||
- name: Download and extract Mesa3D
|
||||
run: |
|
||||
curl -L -o mesa3d.7z https://github.com/pal1000/mesa-dist-win/releases/download/24.3.2/mesa3d-24.3.2-release-mingw.7z
|
||||
7z x mesa3d.7z -omesa3d
|
||||
shell: pwsh
|
||||
|
||||
- name: Run system-wide deployment
|
||||
run: |
|
||||
cd mesa3d
|
||||
.\systemwidedeploy.cmd 1
|
||||
.\systemwidedeploy.cmd 5
|
||||
shell: cmd
|
||||
4
.github/actions/vcpkg-setup/action.yml
vendored
4
.github/actions/vcpkg-setup/action.yml
vendored
@@ -51,14 +51,16 @@ runs:
|
||||
libgles2-mesa-dev
|
||||
shell: bash
|
||||
|
||||
|
||||
- name: Install required packages (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
brew update || true
|
||||
brew install cmake ninja nasm autoconf automake mono || true
|
||||
brew install cmake ninja nasm autoconf automake mono openexr || true
|
||||
brew install --cask xquartz || true
|
||||
shell: bash
|
||||
|
||||
|
||||
- name: Set up vcpkg (Unix)
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user