mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-05-15 05:28:47 +08:00
- 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
149 lines
5.4 KiB
YAML
149 lines
5.4 KiB
YAML
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 |