1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

Compare commits

..

36 Commits

Author SHA1 Message Date
Pasukhin Dmitry
5c814b0f0f Coding - Dangerous use of 'cin' (#681)
- Replaced hardcoded buffer sizes with `constexpr size_t aBufferSize` constants
- Added `width()` calls to input streams before reading to prevent buffer overflows
- Applied consistent buffer size management across multiple input operations
2025-08-17 21:03:18 +01:00
Pasukhin Dmitry
5c8756830f Coding - Incorrect return-value check for a 'scanf'-like function (#680)
Fix sscanf condition checks in iges_lire function for better error handling
2025-08-17 21:01:32 +01:00
Pasukhin Dmitry
3eb7ce1ffd Coding, TKXSBase - Translation to English (#679)
- Updated French comments to English for better accessibility and understanding.
- Enhanced clarity of comments to better describe the functionality and purpose of the code.
- Ensured consistency in terminology and phrasing throughout the codebase.
- Made minor adjustments to comment formatting for improved readability.
2025-08-17 19:42:21 +01:00
Pasukhin Dmitry
5ae60b51d3 Coding - Moving to Sprintf call (#675)
- Updates function calls from `sprintf` to `Sprintf` across the entire codebase
- Updates comments and documentation references to reflect the new function name
- Adds format attribute annotations to the `Sprintf` function declaration for better compiler validation
2025-08-17 12:45:30 +01:00
Pasukhin Dmitry
45eefc4134 Coding, TKDEIGES - Translation to English (#678)
- Updated comments in IGESGeom_ToolCircularArc, IGESGeom_ToolCurveOnSurface, IGESGeom_ToolOffsetCurve, IGESGeom_ToolPlane, IGESGeom_ToolSplineSurface, IGESGeom_ToolTransformationMatrix, IGESGraph_ToolColor, IGESGraph_ToolDrawingUnits, IGESSelect, IGESSelect_Activator, IGESSelect_RebuildGroups, IGESSelect_SelectBypassGroup, IGESSelect_SelectBypassSubfigure, IGESSelect_SignStatus, IGESSelect_ViewSorter, IGESSelect_WorkLibrary, IGESToBRep, IGESToBRep_BRepEntity, IGESToBRep_BasicCurve, IGESToBRep_BasicSurface, IGESToBRep_TopoCurve, IGESToBRep_TopoSurface to improve readability and understanding.
- Translated French comments to English where applicable.
- Ensured comments accurately reflect the functionality and intent of the code.
2025-08-17 09:53:01 +01:00
Pasukhin Dmitry
314527f5c0 Coding - Update Clang-format with more macroses (#677)
- Updates `.clang-format` to include `OCC_CATCH_SIGNALS`, `DEFINE_STANDARD_RTTIEXT`, and `Draw_Drawable3D_FACTORY` as statement macros
- Adds a GitHub action step to automatically remove empty lines after `Standard_DEPRECATED` macro declarations
- Reformats numerous files by removing blank lines after deprecated method declarations and improving macro formatting
2025-08-16 20:50:50 +01:00
Pasukhin Dmitry
d1b00bf132 Coding - Reducing relying on exceptions (#676)
- Replaced try-catch blocks with explicit validation checks in PCDM_ReadWriter_1.cxx
- Added division-by-zero protection in XSDRAWSTL.cxx using precision-based comparison
- Improved error handling for integer parsing operations
2025-08-16 13:55:33 +01:00
Pasukhin Dmitry
a50e3c94ea Coding, StepData - Translation to English (#672)
- Comprehensive translation of French comments to English throughout the StepData module
- Enhanced inline documentation explaining complex algorithms and data structures  
- Improved variable name comments and method descriptions for better code comprehension
2025-08-16 11:09:48 +01:00
Pasukhin Dmitry
afccf69cb7 Data Exchange, STP - Crash on empty list (#671)
Added condition to always allocate an array in case of empty list
2025-08-16 09:24:21 +01:00
Pasukhin Dmitry
ae4de70f98 Coding - Method guard iterative update (#674)
- Standardizes comment formatting by replacing detailed comment blocks with a uniform "//=================================================================================================" separator
- Removes redundant "function:" and "purpose:" fields that often contained minimal or no useful information
- Maintains code functionality while improving visual consistency across the codebase
2025-08-15 17:14:53 +01:00
Pasukhin Dmitry
02f6fa7be2 Testing - Removed old test reference (#673)
Fixed regression when retests were failed for not windows.
2025-08-15 09:43:27 +01:00
Pasukhin Dmitry
6765a6730a Coding, DEGLTF_Provider - Hiding declaration (#669)
DEGLTF_Provider.cxx(144,29): warning C4456: declaration of 'aContext' hides previous local declaration
2025-08-14 10:24:27 +01:00
Petras Vestartas
91000c49c5 Data Exchange, STEP Export - General Attributes (#634)
- Adds metadata writing capability through new `MetadataMode` flag and `writeMetadata` method
- Exports string metadata as STEP `property_definition` entities linked to product definitions
- Integrates metadata writing into the main transfer workflow alongside existing property writing
2025-08-12 09:29:47 +01:00
Pasukhin Dmitry
711fbc42b2 Data Exchange, DE_Wrapper - Implement Stream support (#663)
- Adds stream-based read/write methods to multiple data exchange providers
- Refactors underlying APIs (VrmlAPI_Writer, StlAPI_Writer, RWStl) to support stream operations
- Implements comprehensive test coverage for stream functionality
- Adds validation utilities for improved error handling
2025-08-08 12:05:27 +01:00
Pasukhin Dmitry
3c14e29dfc Foundation Classes - Documentation update for TCollection (#665)
- Introduces helper functions for consistent padded memory allocation across AsciiString and ExtendedString classes
- Improves documentation for UTF-8 conversion methods with clearer buffer allocation guidance
- Adds comprehensive test coverage for string constructors, memory allocation, and UTF-8 conversion functionality
2025-08-08 10:31:54 +01:00
Pasukhin Dmitry
687a36c344 Modeling, Bnd_Box - CornerMax incorrect realisation (#664)
- Fixed the logical error in `CornerMax()` method by correcting the openness condition checks
- Added comprehensive GTest suite for `Bnd_Box` class to prevent similar regressions
- Minor code formatting improvements in the `DumpJson()` method
2025-08-08 10:18:29 +01:00
Sander Adamson
599869329c Modeling - Fix null surface crash in fixshape (#623)
- Added null surface validation in ShapeAnalysis_Surface constructor and Init method
- Added null surface checks throughout ShapeFix_Face methods to prevent crashes
- Enhanced robustness by validating surface availability before performing surface-dependent operations
2025-08-01 18:10:21 +01:00
Sander Adamson
65742e7375 Modeling - Fix null surface crash in UnifySameDomain (#624)
- Added null safety checks in the ClearRts function and IntUnifyFaces method
- Refactored ClearRts to use a more concise implementation with null handling
- Added a test case to verify the fix works with tessellated geometry
2025-08-01 09:47:28 +01:00
Pasukhin Dmitry
cac9d357e8 Testing - Create occt artefact action (#658)
- Created custom upload-artifacts and download-artifacts actions with platform-specific logic
- Updated all existing workflows to use the new custom artifact actions
- Added extraction steps for tar.gz archives in the test summary workflow
2025-07-30 21:07:08 +01:00
Pasukhin Dmitry
06e3a27532 Coding - Add .DS_Store to ignore list (#655) 2025-07-30 14:33:02 +01:00
dpasukhi
ed363c944c Coding - Bump version to 8.0.0-rc2 2025-07-29 12:45:21 +01:00
Pasukhin Dmitry
783c3440b2 Coding - Remove unused dependencies from TKXDEDRAW (#650)
- Removed unused dependency includes from TKXDEDRAW/XDEDRAW module files
- Moved dimension type checking methods from STEPCAFControl_GDTProperty to XCAFDimTolObjects_DimensionObject
- Updated external library dependencies to remove unused libraries
2025-07-29 08:39:07 +01:00
Pasukhin Dmitry
7d2cce09cc Build - Remove GLTF files from XDEDRAW (#649)
- Removes the `DEGLTF_ConfigurationNode.hxx` include from the XDEDRAW source file
2025-07-28 21:48:29 +01:00
Pasukhin Dmitry
9f761b12ec Modeling - Implement new Helix Toolkit (#648)
- Adds a complete TKHelix toolkit with geometric helix curve adaptor and topological builders
- Implements advanced B-spline approximation algorithms for high-quality helix representation
- Provides comprehensive TCL command interface for interactive helix creation and testing
2025-07-28 12:51:16 +01:00
Pasukhin Dmitry
3175e001b1 Configuration, CMake - Build config file is invalid (#647)
- Fixed missing `@` delimiter in template variable substitution for QT directory detection
- Added compiler bitness calculation before custom script generation
- Implemented nested variable expansion for custom build paths
2025-07-27 12:33:37 +01:00
Pasukhin Dmitry
9134c601a4 Configuration, CMake - Disable build GLTF without RapidJSON (#646)
Exclude TKDEGLTF and TKXSDRAWGLTF toolkits when RapidJSON is disabled
2025-07-27 10:21:21 +01:00
Pasukhin Dmitry
0eb86fb05a Coding - Geom package Copy optimisation (#645)
- Adds copy constructors for 9 geometry classes (Bezier/BSpline curves and surfaces, offset curves and surfaces in both 2D and 3D)
- Updates Copy() methods to use the new copy constructors instead of recreating objects through standard constructors
- Includes comprehensive test coverage for all new copy constructors
2025-07-26 17:38:46 +01:00
Pasukhin Dmitry
1434cd7da3 CMake - Remove unused CMake script (#644)
Removed script for OCCT toolkit sample preparation
2025-07-26 13:21:22 +01:00
Pasukhin Dmitry
e42a043abe Samples - CMake configuration fix (#643)
- Migrates legacy text-based FILES, PACKAGES, and EXTERNLIB configuration files to proper CMake format (.cmake extensions)
- Updates CMakeLists.txt files to use modern CMake practices with explicit configurations and target-specific definitions
- Modifies the qt_macro.cmake to work with the new CMake variable-based file management system
2025-07-25 10:38:48 +01:00
Pasukhin Dmitry
f41a5a91e4 Configuration, CMake - Flexible project root (#641)
- Replaces all `CMAKE_SOURCE_DIR` references with `OCCT_ROOT_DIR` across CMake files
- Updates build templates to use the new root directory variable
- Modifies environment variable configurations to use the flexible root path
2025-07-24 09:49:19 +01:00
Pasukhin Dmitry
134afb1b7a Testing - Update GitHub Actions to use latest versions (#640)
- Updates `actions/checkout` from v4.1.7 to v4.2.2 across all workflows
- Updates `actions/upload-artifact` from v4.4.3 to v4.6.2 across all custom actions
- Updates `actions/download-artifact` from v4.1.7/v4.1.8 to v4.3.0 across all custom actions
2025-07-23 16:51:43 +01:00
Pasukhin Dmitry
b5e7a7d2aa Configuration - Add VCPKG port opencascade (#638)
- Restructures VCPKG manifest directory structure and updates path references accordingly
- Implements a comprehensive portfile.cmake with feature detection, build configuration, and installation logic
- Updates overlay port and triplet paths to reflect the new directory structure
2025-07-23 15:22:55 +01:00
Pasukhin Dmitry
efd12a15aa Configuration - VCPKG extend feature list (#637)
- Added precompiled headers support for improved compilation performance
- Added C++20 and C++23 standard compilation mode options
- Added optimized build configuration for production deployments
- Added Direct3D graphics backend support for Windows platforms
2025-07-22 21:13:11 +01:00
Pasukhin Dmitry
6fb9ee594b Configuration - Add vcpkg layout support (#618)
- Addition of vcpkg layout configuration with CMake file placement in share/ directory for vcpkg compliance
- Introduction of OCCT_PROJECT_NAME parameter (defaults to "opencascade") for customizing directory structure in vcpkg layout
- Updated environment scripts and build templates to support vcpkg directory structure while maintaining backward compatibility
2025-07-22 21:12:11 +01:00
Pasukhin Dmitry
9219a3162e Foundation classes - Include brackets type fix (#635)
- Updates include statements to use angle brackets for foundation class headers
2025-07-22 13:10:36 +01:00
Dmitrii Kulikov
068aa6ae9f Modelling - Add option to not build history in BRepFill_PipeShell (#632)
- Adds `myIsBuildHistory` boolean member to `BRepFill_PipeShell` with default value `true`
- Implements getter/setter methods in both `BRepFill_PipeShell` and `BRepOffsetAPI_MakePipeShell` interfaces
- Conditionally calls `BuildHistory()` method based on the flag value
2025-07-22 10:42:02 +01:00
1121 changed files with 23997 additions and 14662 deletions

View File

@@ -36,6 +36,9 @@ UseTab: Never
# OCCT specific settings
StatementMacros:
- Standard_FALLTHROUGH
- OCC_CATCH_SIGNALS
- DEFINE_STANDARD_RTTIEXT
- Draw_Drawable3D_FACTORY
- Standard_DEPRECATED
TypenameMacros:
- Handle

View File

@@ -78,7 +78,7 @@ runs:
- name: Upload non-ASCII report
if: steps.ascii-check.outputs.has_non_ascii == 'true'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v4.6.2
with:
name: non-ascii-report
path: non_ascii_report.txt

View File

@@ -47,14 +47,14 @@ runs:
shell: cmd
- name: Upload refman documentation
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: refman-doc
path: build/doc/refman
retention-days: 90
- name: Upload overview documentation
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: overview-doc
path: build/doc/overview

View File

@@ -78,7 +78,7 @@ runs:
shell: bash
- name: Upload install directory
uses: actions/upload-artifact@v4.4.3
uses: ./.github/actions/upload-artifacts
with:
name: ${{ inputs.artifact-name }}
path: install

View File

@@ -13,7 +13,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
@@ -50,7 +50,7 @@ runs:
msbuild.exe CSharp_D3D.sln /p:Configuration=Release /p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=build_d3d.log;Verbosity=detailed /m
- name: Upload CSharp Sample
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: csharp-sample-${{ inputs.platform }}-x64
path: samples/CSharp

View File

@@ -13,7 +13,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
@@ -47,7 +47,7 @@ runs:
)
- name: Upload MFC Sample
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: mfc-sample-${{ inputs.platform }}-x64
path: samples/mfc/

View File

@@ -17,7 +17,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
@@ -116,7 +116,7 @@ runs:
done
- name: Upload Qt Samples
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: qt-samples-${{ inputs.platform }}-x64
path: |

View File

@@ -17,7 +17,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
@@ -102,7 +102,7 @@ runs:
make install -j$(nproc)
- name: Upload TInspector installation
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: inspector-${{ inputs.platform }}-x64
path: inspector/install

View File

@@ -56,6 +56,20 @@ runs:
clang-format -i -style=file $_
}
- name: Remove empty lines after Standard_DEPRECATED
if: steps.changed-files.outputs.has_files == 'true'
shell: pwsh
run: |
$files = Get-Content "changed_files.txt" | Where-Object { Test-Path $_ }
$files | ForEach-Object {
$content = Get-Content $_ -Raw
$pattern = '(Standard_DEPRECATED\("[a-z0-9\.,;\s\(\)_-]+"(?:[\s\n]+"[a-z0-9\.,;\s\(\)_-]+")?\)\n)\n+'
$newContent = $content -replace $pattern, '$1'
if ($content -ne $newContent) {
Set-Content -Path $_ -Value $newContent -NoNewline
}
}
- name: Check git status
id: git-check
if: steps.changed-files.outputs.has_files == 'true'
@@ -68,7 +82,7 @@ runs:
- name: Upload patch
if: steps.git-check.outputs.has_changes == 'true'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v4.6.2
with:
name: format-patch
path: format.patch

View File

@@ -0,0 +1,72 @@
name: 'Download Platform Artifacts'
description: 'Download and extract artifacts with proper file permissions and symlinks (cross-platform)'
inputs:
name:
description: 'Artifact name'
required: true
path:
description: 'Path to extract to (optional)'
required: false
default: '.'
runs:
using: 'composite'
steps:
# For Windows, use standard GitHub action - no symlink issues
- name: Download artifacts (Windows)
if: runner.os == 'Windows'
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
# For Linux/Unix, use custom workaround to handle symlinks properly
- name: Download archive (Unix)
if: runner.os != 'Windows'
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.name }}
path: ./download-temp
- name: Extract archive (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
EXTRACT_PATH="${{ inputs.path }}"
ARCHIVE_FILE="./download-temp/${{ inputs.name }}.tar.gz"
if [ ! -f "$ARCHIVE_FILE" ]; then
echo "Error: Archive file $ARCHIVE_FILE not found"
ls -la ./download-temp/
exit 1
fi
echo "Extracting $ARCHIVE_FILE to $EXTRACT_PATH"
# Extract and handle directory structure properly
if [ "$EXTRACT_PATH" != "." ]; then
# Extract to temp location first
mkdir -p temp-extract
tar -xzf "$ARCHIVE_FILE" -C temp-extract
# Create target directory and copy content (preserving existing files)
mkdir -p "$EXTRACT_PATH"
# Copy from install/ subdirectory if it exists, otherwise copy everything
if [ -d "temp-extract/install" ]; then
cp -r temp-extract/install/* "$EXTRACT_PATH/"
else
cp -r temp-extract/* "$EXTRACT_PATH/"
fi
# Clean up temp directory
rm -rf temp-extract
else
tar -xzf "$ARCHIVE_FILE" -C "$EXTRACT_PATH"
fi
echo "Extraction complete"
ls -la "$EXTRACT_PATH"
# Clean up temporary download directory
rm -rf ./download-temp

View File

@@ -15,7 +15,7 @@ runs:
steps:
- name: Download vcpkg tar archive
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.build-directory }}

View File

@@ -23,14 +23,14 @@ runs:
steps:
- name: Download previous test results (Windows)
if: ${{ inputs.platform == 'windows' }}
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.results-artifact-name }}
path: install/results
- name: Download previous test results (macOS/Linux)
if: ${{ inputs.platform != 'windows' }}
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.results-artifact-name }}
path: install/bin/results
@@ -118,7 +118,7 @@ runs:
- name: Download and extract install directory
if: steps.check_failures.outputs.failed_count > 0
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install

View File

@@ -25,7 +25,7 @@ runs:
using: "composite"
steps:
- name: Download and extract install directory
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install
@@ -77,7 +77,7 @@ runs:
cat gtest_output.log
- name: Upload GTest results
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: gtest-results-${{ inputs.platform }}-${{ inputs.compiler }}-${{ inputs.artifact-suffix }}
path: |

View File

@@ -53,7 +53,7 @@ runs:
shell: bash
- name: Download and extract install directory
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install
@@ -145,7 +145,7 @@ runs:
- name: Upload test results (Windows)
if: ${{ inputs.platform == 'windows' }}
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: results-${{ inputs.test-directory-name }}
path: |
@@ -156,7 +156,7 @@ runs:
- name: Upload test results (macOS/Linux)
if: ${{ inputs.platform == 'macos' || inputs.platform == 'linux' }}
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: results-${{ inputs.test-directory-name }}
path: |

View File

@@ -23,7 +23,7 @@ runs:
shell: bash
- name: Download and extract install directory
uses: actions/download-artifact@v4.1.7
uses: ./.github/actions/download-artifacts
with:
name: install-linux-clang-x64
path: install
@@ -88,7 +88,7 @@ runs:
shell: bash
- name: Upload comparison results
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: test-compare-results
retention-days: 15

View File

@@ -0,0 +1,53 @@
name: 'Upload Platform Artifacts'
description: 'Upload artifacts with proper file permissions and symlinks (cross-platform)'
inputs:
name:
description: 'Artifact name'
required: true
path:
description: 'Path to archive'
required: true
retention-days:
description: 'Number of days to retain artifact'
required: false
default: '30'
runs:
using: 'composite'
steps:
# For Windows, use standard GitHub action - no symlink issues
- name: Upload artifacts (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
retention-days: ${{ inputs.retention-days }}
# For Linux/Unix, use custom workaround to handle symlinks properly
- name: Create archive (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
BASE_PATH="${{ inputs.path }}"
ARCHIVE_NAME="${{ inputs.name }}.tar.gz"
if [ -d "$BASE_PATH" ]; then
tar -czf "$ARCHIVE_NAME" -C "$(dirname "$BASE_PATH")" "$(basename "$BASE_PATH")"
elif [ -f "$BASE_PATH" ]; then
tar -czf "$ARCHIVE_NAME" -C "$(dirname "$BASE_PATH")" "$(basename "$BASE_PATH")"
else
echo "Error: Path $BASE_PATH does not exist"
exit 1
fi
echo "Created archive: $ARCHIVE_NAME"
ls -la "$ARCHIVE_NAME"
- name: Upload archive (Unix)
if: runner.os != 'Windows'
uses: actions/upload-artifact@v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ inputs.name }}.tar.gz
retention-days: ${{ inputs.retention-days }}

View File

@@ -25,7 +25,7 @@ runs:
shell: bash
- name: Upload vcpkg tar archive
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.6.2
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.build-directory }}/vcpkg-dependencies.tar.gz

View File

@@ -26,7 +26,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
@@ -41,7 +41,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
@@ -56,7 +56,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.1
uses: actions/checkout@v4.2.2
- name: Build documentation
uses: ./.github/actions/build-docs
@@ -67,7 +67,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build OCCT
uses: ./.github/actions/build-occt
@@ -83,7 +83,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build OCCT
uses: ./.github/actions/build-occt
@@ -99,7 +99,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build OCCT
uses: ./.github/actions/build-occt
@@ -115,7 +115,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build OCCT
uses: ./.github/actions/build-occt
@@ -136,7 +136,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build TInspector
uses: ./.github/actions/build-tinspector
@@ -151,7 +151,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build TInspector
uses: ./.github/actions/build-tinspector
@@ -166,7 +166,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build CSharp Sample
uses: ./.github/actions/build-sample-csharp
@@ -181,7 +181,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build MFC Sample
uses: ./.github/actions/build-sample-mfc
@@ -196,7 +196,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build Qt Sample
uses: ./.github/actions/build-sample-qt
@@ -211,7 +211,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build Qt Sample
uses: ./.github/actions/build-sample-qt
@@ -226,7 +226,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run tests
uses: ./.github/actions/run-tests
@@ -244,7 +244,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run retest
uses: ./.github/actions/retest-failures
@@ -262,7 +262,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run tests
uses: ./.github/actions/run-tests
@@ -280,7 +280,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run retest
uses: ./.github/actions/retest-failures
@@ -298,7 +298,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run tests
uses: ./.github/actions/run-tests
@@ -316,7 +316,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run retest
uses: ./.github/actions/retest-failures
@@ -334,7 +334,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run GTests
uses: ./.github/actions/run-gtest
@@ -351,7 +351,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run GTests
uses: ./.github/actions/run-gtest
@@ -368,7 +368,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Run GTests
uses: ./.github/actions/run-gtest
@@ -386,7 +386,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Generate Test Summary
uses: ./.github/actions/test-summary

View File

@@ -18,7 +18,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
ref: IR
@@ -41,7 +41,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
ref: IR
@@ -64,7 +64,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
ref: IR

View File

@@ -46,7 +46,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Setup Windows MSVC dependencies
uses: ./.github/actions/setup-windows-msvc-deps
@@ -107,7 +107,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Setup MSYS2
uses: ./.github/actions/setup-msys2
@@ -166,7 +166,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Setup Ubuntu dependencies
uses: ./.github/actions/setup-ubuntu-deps
@@ -207,7 +207,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Build OCCT with vcpkg
uses: ./.github/actions/build-occt
@@ -231,7 +231,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev
@@ -272,7 +272,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
- name: Configure OCCT for analysis
uses: ./.github/actions/configure-occt

1
.gitignore vendored
View File

@@ -31,6 +31,7 @@ win64
*.VC.opendb
*.ipch
*.aps
*.DS_Store
# test results
/results*

View File

@@ -1,5 +1,8 @@
cmake_minimum_required (VERSION 3.10 FATAL_ERROR)
# Define OCCT root directory as a cache variable - works for both standalone and subproject builds
set(OCCT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "Root directory of OCCT project" FORCE)
if (NOT DEFINED BUILD_USE_VCPKG)
set (BUILD_USE_VCPKG OFF CACHE BOOL "Use vcpkg for 3rdparty libraries.")
if (CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg.cmake")
@@ -31,7 +34,7 @@ if (BUILD_USE_VCPKG)
message(FATAL_ERROR "VCPKG_ROOT is not defined. Please set it to the path of vcpkg root directory.")
endif()
set (VCPKG_MANIFEST_DIR "${CMAKE_SOURCE_DIR}/adm/vcpkg")
set (VCPKG_MANIFEST_DIR "${OCCT_ROOT_DIR}/adm/vcpkg/ports/opencascade")
# Disable default features for vcpkg manifest
set (VCPKG_MANIFEST_NO_DEFAULT_FEATURES 1)
@@ -58,7 +61,7 @@ else()
PROJECT (OCCT)
endif()
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake")
set (CMAKE_MODULE_PATH "${OCCT_ROOT_DIR}/adm/cmake")
set (CMAKE_SUPPRESS_REGENERATION TRUE)
@@ -86,7 +89,7 @@ set (CMAKE_CXX_STANDARD_REQUIRED ON)
# include cmake file
macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
include (${CMAKE_SOURCE_DIR}/${BEING_INCLUDED_FILE}.cmake)
include (${OCCT_ROOT_DIR}/${BEING_INCLUDED_FILE}.cmake)
endmacro()
# set using memory manager option for TKernel
@@ -260,7 +263,30 @@ if (NOT INSTALL_DIR_LAYOUT)
else()
set (INSTALL_DIR_LAYOUT "Unix" CACHE STRING "${INSTALL_DIR_LAYOUT_DESCR}" FORCE)
endif()
SET_PROPERTY(CACHE INSTALL_DIR_LAYOUT PROPERTY STRINGS Windows Unix)
SET_PROPERTY(CACHE INSTALL_DIR_LAYOUT PROPERTY STRINGS Windows Unix Vcpkg)
endif()
# Define layout boolean variables for optimization
set(LAYOUT_IS_WINDOWS FALSE)
set(LAYOUT_IS_UNIX FALSE)
set(LAYOUT_IS_VCPKG FALSE)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Windows")
set(LAYOUT_IS_WINDOWS TRUE)
elseif ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
set(LAYOUT_IS_UNIX TRUE)
elseif ("${INSTALL_DIR_LAYOUT}" STREQUAL "Vcpkg")
set(LAYOUT_IS_VCPKG TRUE)
endif()
# set project name for install directories (only used for vcpkg layout)
if (LAYOUT_IS_VCPKG)
if (NOT DEFINED OCCT_PROJECT_NAME)
set (OCCT_PROJECT_NAME "opencascade" CACHE STRING "${OCCT_PROJECT_NAME_DESCR}")
endif()
else()
# unset the variable if it was previously set for vcpkg but layout changed
OCCT_CHECK_AND_UNSET (OCCT_PROJECT_NAME)
endif()
# check INSTALL_DIR_LAYOUT changes and update INSTALL_DIR_* paths if necessary
@@ -271,6 +297,16 @@ elseif (NOT "${INSTALL_DIR_LAYOUT_PREV}" STREQUAL "${INSTALL_DIR_LAYOUT}")
# The structure of install folder should be reset due to changed layout
OCCT_CHECK_AND_UNSET_INSTALL_DIR_SUBDIRS ()
# Manage OCCT_PROJECT_NAME based on layout
if (LAYOUT_IS_VCPKG)
if (NOT DEFINED OCCT_PROJECT_NAME)
set (OCCT_PROJECT_NAME "opencascade" CACHE STRING "${OCCT_PROJECT_NAME_DESCR}")
endif()
else()
# unset OCCT_PROJECT_NAME if layout changed from vcpkg to something else
OCCT_CHECK_AND_UNSET (OCCT_PROJECT_NAME)
endif()
# Unset INSTALL_DIR_WITH_VERSION on windows
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Windows")
OCCT_CHECK_AND_UNSET (INSTALL_DIR_WITH_VERSION)
@@ -306,7 +342,7 @@ elseif (NOT "${INSTALL_DIR_PREV}" STREQUAL "${INSTALL_DIR}")
set (CMAKE_INSTALL_PREFIX_PREV "${INSTALL_DIR}" CACHE INTERNAL "" FORCE)
endif()
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
if (NOT DEFINED INSTALL_DIR_WITH_VERSION_PREV)
set (INSTALL_DIR_WITH_VERSION_PREV "${INSTALL_DIR_WITH_VERSION}" CACHE INTERNAL "" FORCE)
elseif (NOT "${INSTALL_DIR_WITH_VERSION_PREV}" STREQUAL "${INSTALL_DIR_WITH_VERSION}")
@@ -321,10 +357,12 @@ endif()
set (CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "" FORCE)
set (BIN_LETTER "")
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set (BIN_LETTER "d")
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
set (BIN_LETTER "i")
if (NOT LAYOUT_IS_VCPKG)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set (BIN_LETTER "d")
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
set (BIN_LETTER "i")
endif()
endif()
# the list of being built toolkits
@@ -463,12 +501,33 @@ else()
OCCT_CHECK_AND_UNSET (BUILD_YACCLEX)
endif()
if (NOT DEFINED 3RDPARTY_DIR)
set (3RDPARTY_DIR "" CACHE PATH ${3RDPARTY_DIR_DESCR})
get_filename_component (3RDPARTY_DIR "${3RDPARTY_DIR}" ABSOLUTE)
# Set 3RDPARTY_DIR based on layout
if (LAYOUT_IS_VCPKG)
if (NOT DEFINED 3RDPARTY_DIR)
# For vcpkg layout, set 3RDPARTY_DIR to vcpkg installed directory for path replacement
if (BUILD_USE_VCPKG AND VCPKG_INSTALLED_DIR AND VCPKG_TARGET_TRIPLET)
set (3RDPARTY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE PATH ${3RDPARTY_DIR_DESCR})
else()
set (3RDPARTY_DIR "" CACHE PATH ${3RDPARTY_DIR_DESCR})
endif()
else()
file (TO_CMAKE_PATH "${3RDPARTY_DIR}" 3RDPARTY_DIR)
set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE)
endif()
else()
file (TO_CMAKE_PATH "${3RDPARTY_DIR}" 3RDPARTY_DIR)
set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE)
# For non-vcpkg layouts, 3RDPARTY_DIR should be user-defined or empty
if (NOT DEFINED 3RDPARTY_DIR)
set (3RDPARTY_DIR "" CACHE PATH ${3RDPARTY_DIR_DESCR})
# If using vcpkg with Windows layout, set to vcpkg installed directory for proper path replacement
if (BUILD_USE_VCPKG AND VCPKG_INSTALLED_DIR AND VCPKG_TARGET_TRIPLET)
set (3RDPARTY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE PATH ${3RDPARTY_DIR_DESCR} FORCE)
else()
get_filename_component (3RDPARTY_DIR "${3RDPARTY_DIR}" ABSOLUTE)
endif()
else()
file (TO_CMAKE_PATH "${3RDPARTY_DIR}" 3RDPARTY_DIR)
set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE)
endif()
endif()
# search for CSF variable in EXTERNLIB of each being used toolkit
@@ -683,7 +742,12 @@ if (CAN_USE_RAPIDJSON AND USE_RAPIDJSON)
elseif (NOT CAN_USE_RAPIDJSON)
OCCT_CHECK_AND_UNSET ("USE_RAPIDJSON")
OCCT_UNSET_VCPKG_FEATURE ("rapidjson")
else()
list (REMOVE_ITEM BUILD_TOOLKITS TKDEGLTF)
list (REMOVE_ITEM BUILD_TOOLKITS TKXSDRAWGLTF)
message(STATUS "Info: TKDEGLTF and TKXSDRAWGLTF toolkits excluded due to RapidJSON usage is disabled")
endif()
if (NOT CAN_USE_RAPIDJSON OR BUILD_USE_VCPKG)
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_RAPIDJSON")
OCCT_CHECK_AND_UNSET ("INSTALL_RAPIDJSON")
@@ -794,9 +858,6 @@ if (APPLE)
occt_set_apple_csf_vars()
endif()
# copying clang-format file to the root of the project
file(COPY ${CMAKE_SOURCE_DIR}/.clang-format DESTINATION ${CMAKE_SOURCE_DIR})
# Get all used variables: OS_WITH_BIT, COMPILER
OCCT_MAKE_OS_WITH_BITNESS()
OCCT_MAKE_COMPILER_SHORT_NAME()
@@ -804,7 +865,7 @@ OCCT_MAKE_COMPILER_SHORT_NAME()
# do not define INSTALL_DIR_BIN for win.
# Leave library structure for win: <prefix>/win64/vc10/bin(d)
if (NOT DEFINED INSTALL_DIR_BIN)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX OR LAYOUT_IS_VCPKG)
set (INSTALL_DIR_BIN "bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}")
else()
set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}")
@@ -813,8 +874,11 @@ endif()
# define folder containing all shell/batch scripts
if (NOT DEFINED INSTALL_DIR_SCRIPT)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_SCRIPT "${INSTALL_DIR_BIN}" CACHE PATH "${INSTALL_DIR_SCRIPT_DESCR}")
elseif (LAYOUT_IS_VCPKG)
# For vcpkg, scripts should follow same debug/release pattern as binaries
set (INSTALL_DIR_SCRIPT "$<IF:$<CONFIG:Debug>,debug/bin,bin>" CACHE PATH "${INSTALL_DIR_SCRIPT_DESCR}")
else()
set (INSTALL_DIR_SCRIPT "." CACHE PATH "${INSTALL_DIR_SCRIPT_DESCR}")
endif()
@@ -822,7 +886,7 @@ endif()
# place the libraries to <prefix>/lib folder for unix and leave old structure for windows
if (NOT DEFINED INSTALL_DIR_LIB)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX OR LAYOUT_IS_VCPKG)
set (INSTALL_DIR_LIB "lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}")
else()
set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}")
@@ -832,11 +896,13 @@ endif()
# OCCT headers: <prefix>/inc for windows,
# <prefix>/include/opencascade-7.0.0 for unix
if (NOT DEFINED INSTALL_DIR_INCLUDE)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_INCLUDE "include/opencascade" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_INCLUDE "include/opencascade-${OCC_VERSION_STRING_EXT}" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_INCLUDE "include" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}")
else()
set (INSTALL_DIR_INCLUDE "inc" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}")
endif()
@@ -845,11 +911,13 @@ endif()
# OCCT resources: <prefix>/src for windows,
# <prefix>/share/opencascade-7.0.0/resources for unix
if (NOT DEFINED INSTALL_DIR_RESOURCE)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_RESOURCE "share/opencascade/resources" CACHE PATH "${INSTALL_DIR_RESOURCE_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_RESOURCE "share/opencascade-${OCC_VERSION_STRING_EXT}/resources" CACHE PATH "${INSTALL_DIR_RESOURCE_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_RESOURCE "share/${OCCT_PROJECT_NAME}" CACHE PATH "${INSTALL_DIR_RESOURCE_DESCR}")
else()
set (INSTALL_DIR_RESOURCE "src" CACHE PATH "${INSTALL_DIR_RESOURCE_DESCR}")
endif()
@@ -857,11 +925,13 @@ endif()
# OCCT data
if (NOT DEFINED INSTALL_DIR_DATA)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_DATA "share/opencascade/data" CACHE PATH "${INSTALL_DIR_DATA_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_DATA "share/opencascade-${OCC_VERSION_STRING_EXT}/data" CACHE PATH "${INSTALL_DIR_DATA_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_DATA "share/${OCCT_PROJECT_NAME}" CACHE PATH "${INSTALL_DIR_DATA_DESCR}")
else()
set (INSTALL_DIR_DATA "data" CACHE PATH "${INSTALL_DIR_DATA_DESCR}")
endif()
@@ -869,11 +939,13 @@ endif()
# OCCT samples
if (NOT DEFINED INSTALL_DIR_SAMPLES)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_SAMPLES "share/opencascade/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_SAMPLES "share/opencascade-${OCC_VERSION_STRING_EXT}/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_SAMPLES "share/${OCCT_PROJECT_NAME}/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}")
else()
set (INSTALL_DIR_SAMPLES "samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}")
endif()
@@ -881,11 +953,13 @@ endif()
# OCCT tests
if (NOT DEFINED INSTALL_DIR_TESTS)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_TESTS "share/opencascade/tests" CACHE PATH "${INSTALL_DIR_TESTS_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_TESTS "share/opencascade-${OCC_VERSION_STRING_EXT}/tests" CACHE PATH "${INSTALL_DIR_TESTS_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_TESTS "share/${OCCT_PROJECT_NAME}/tests" CACHE PATH "${INSTALL_DIR_TESTS_DESCR}")
else()
set (INSTALL_DIR_TESTS "tests" CACHE PATH "${INSTALL_DIR_TESTS_DESCR}")
endif()
@@ -893,11 +967,13 @@ endif()
# OCCT doc
if (NOT DEFINED INSTALL_DIR_DOC)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
set (INSTALL_DIR_DOC "share/doc/opencascade" CACHE PATH "${INSTALL_DIR_DOC_DESCR}")
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_DOC "share/doc/opencascade-${OCC_VERSION_STRING_EXT}" CACHE PATH "${INSTALL_DIR_DOC_DESCR}" FORCE)
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_DOC "share/${OCCT_PROJECT_NAME}/doc" CACHE PATH "${INSTALL_DIR_DOC_DESCR}")
else()
set (INSTALL_DIR_DOC "doc" CACHE PATH "${INSTALL_DIR_DOC_DESCR}")
endif()
@@ -905,12 +981,14 @@ endif()
# define folder containing CMake configuration files
if (NOT DEFINED INSTALL_DIR_CMAKE)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX)
if (INSTALL_DIR_WITH_VERSION)
set (INSTALL_DIR_CMAKE "lib/cmake/opencascade-${OCC_VERSION_STRING_EXT}" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
else()
set (INSTALL_DIR_CMAKE "lib/cmake/opencascade" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
endif()
elseif (LAYOUT_IS_VCPKG)
set (INSTALL_DIR_CMAKE "share/${OCCT_PROJECT_NAME}" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
else()
set (INSTALL_DIR_CMAKE "cmake" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
endif()
@@ -920,7 +998,7 @@ endif()
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_resources")
# install LICENSE_LGPL_21.txt and OCCT_LGPL_EXCEPTION.txt files
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
if (LAYOUT_IS_UNIX OR LAYOUT_IS_VCPKG)
OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR_DOC}")
OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR_DOC}")
else()
@@ -998,34 +1076,63 @@ endif()
# build directories
if (SINGLE_GENERATOR)
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
if (LAYOUT_IS_VCPKG)
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
endif()
else()
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
endif()
endif()
endif()
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
if (LAYOUT_IS_VCPKG)
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin")
endif()
else()
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
if (WIN32)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
endif()
endif()
string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
message (STATUS "\nInfo: \(${CURRENT_TIME}\) Start collecting all OCCT header files into ${CMAKE_BINARY_DIR}/inc ...")
message (STATUS "\nInfo: \(${CURRENT_TIME}\) Start collecting all OCCT header files into ${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE} ...")
# collect all the headers to <binary dir>/inc folder
COLLECT_AND_INSTALL_OCCT_HEADER_FILES ("${CMAKE_BINARY_DIR}" "${BUILD_TOOLKITS}" "src" "${INSTALL_DIR_INCLUDE}")
@@ -1072,7 +1179,6 @@ if (INSTALL_SAMPLES)
OCCT_INSTALL_FILE_OR_DIR ("samples/java" "${INSTALL_DIR_SAMPLES}")
OCCT_INSTALL_FILE_OR_DIR ("samples/ocafsamples" "${INSTALL_DIR_SAMPLES}")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt" "${INSTALL_DIR_SAMPLES}")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code" "${INSTALL_DIR_SAMPLES}/OCCTOverview")
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/FuncDemo" RENAME "env.${SCRIPT_EXT}")
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/IESample" RENAME "env.${SCRIPT_EXT}")
@@ -1090,13 +1196,14 @@ if (${DRAWEXE_INDEX} GREATER -1)
OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}")
OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}")
install (FILES "${CMAKE_SOURCE_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}"
install (FILES "${OCCT_ROOT_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
# copy draw script to CMake binary folder
OCCT_COPY_FILE_OR_DIR ("adm/templates/draw.${SCRIPT_EXT}" "${CMAKE_BINARY_DIR}")
endif()
OCCT_MAKE_COMPILER_BITNESS()
set (SUB_CUSTOM_NAME "custom_${COMPILER}_${COMPILER_BITNESS}.${SCRIPT_EXT}")
if (WIN32)
@@ -1135,8 +1242,103 @@ endforeach()
# write current custom.bat/sh (for install directory)
set (SUB_CUSTOM_BUILD_NAME "custom_${COMPILER}_${COMPILER_BITNESS}.install.${SCRIPT_EXT}")
# Set custom bin/lib paths variable for template
if (LAYOUT_IS_VCPKG)
# For vcpkg layout, paths need to handle debug/release structure
# Debug builds: scripts in debug/bin, need to go ../../ to reach root
# Release builds: scripts in bin, need to go ../ to reach root
if (WIN32)
set (OCCT_CUSTOM_BIN_LIB_PATHS "set \"CSF_OCCTBinPath=%CASROOT%\\bin\"
set \"CSF_OCCTLibPath=%CASROOT%\\lib\"
if exist \"%SCRIPTROOT%\\..\\..\\include\" (
set \"CASCONTENTROOT=%SCRIPTROOT%\\..\\..\"
) else (
set \"CASCONTENTROOT=%SCRIPTROOT%\\..\"
)
set \"CSF_OCCTIncludePath=%CASCONTENTROOT%\\include\"
set \"CSF_OCCTResourcePath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\"
set \"CSF_OCCTDataPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\"
set \"CSF_OCCTSamplesPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\samples\"
set \"CSF_OCCTTestsPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\tests\"
set \"CSF_OCCTDocPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\doc\"")
else()
set (OCCT_CUSTOM_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"\${CASROOT}/bin\"
export CSF_OCCTLibPath=\"\${CASROOT}/lib\"
if [ -d \"\${aScriptPath}/../../include\" ]; then
export CASCONTENTROOT=\$(cd \"\${aScriptPath}/../..\" && pwd)
else
export CASCONTENTROOT=\$(cd \"\${aScriptPath}/..\" && pwd)
fi
export CSF_OCCTIncludePath=\"\${CASCONTENTROOT}/include\"
export CSF_OCCTResourcePath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}\"
export CSF_OCCTDataPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}\"
export CSF_OCCTSamplesPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/samples\"
export CSF_OCCTTestsPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/tests\"
export CSF_OCCTDocPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/doc\"")
endif()
# For vcpkg, we handle all paths in the bin/lib paths logic above
set (OCCT_CUSTOM_ADDITIONAL_PATHS "")
else()
# For other layouts, use CASROOT with full paths including build-specific suffixes
if (WIN32)
set (OCCT_CUSTOM_BIN_LIB_PATHS "set \"CSF_OCCTBinPath=%CASROOT%/${INSTALL_DIR_BIN}%3\"
set \"CSF_OCCTLibPath=%CASROOT%/${INSTALL_DIR_LIB}%3\"")
set (OCCT_CUSTOM_ADDITIONAL_PATHS "set \"CSF_OCCTIncludePath=%CASROOT%/${INSTALL_DIR_INCLUDE}\"
set \"CSF_OCCTResourcePath=%CASROOT%/${INSTALL_DIR_RESOURCE}\"
set \"CSF_OCCTDataPath=%CASROOT%/${INSTALL_DIR_DATA}\"
set \"CSF_OCCTSamplesPath=%CASROOT%/${INSTALL_DIR_SAMPLES}\"
set \"CSF_OCCTTestsPath=%CASROOT%/${INSTALL_DIR_TESTS}\"
set \"CSF_OCCTDocPath=%CASROOT%/${INSTALL_DIR_DOC}\"")
else()
set (OCCT_CUSTOM_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"\${CASROOT}/${INSTALL_DIR_BIN}\"
export CSF_OCCTLibPath=\"\${CASROOT}/${INSTALL_DIR_LIB}\"")
set (OCCT_CUSTOM_ADDITIONAL_PATHS "export CSF_OCCTIncludePath=\"\${CASROOT}/${INSTALL_DIR_INCLUDE}\"
export CSF_OCCTResourcePath=\"\${CASROOT}/${INSTALL_DIR_RESOURCE}\"
export CSF_OCCTDataPath=\"\${CASROOT}/${INSTALL_DIR_DATA}\"
export CSF_OCCTSamplesPath=\"\${CASROOT}/${INSTALL_DIR_SAMPLES}\"
export CSF_OCCTTestsPath=\"\${CASROOT}/${INSTALL_DIR_TESTS}\"
export CSF_OCCTDocPath=\"\${CASROOT}/${INSTALL_DIR_DOC}\"")
endif()
endif()
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.install.${SCRIPT_EXT}.in" "${SUB_CUSTOM_BUILD_NAME}" "${SUB_CUSTOM_NAME}" "${INSTALL_DIR_SCRIPT}")
# Set build directory paths for custom.build script
if (LAYOUT_IS_VCPKG)
# For vcpkg, use simple bin/lib paths
if (WIN32)
set (OCCT_CUSTOM_BUILD_BIN_LIB_PATHS "set \"CSF_OCCTBinPath=@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"
set \"CSF_OCCTLibPath=@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@\"
if [\"@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"] == [\"\"] (
set \"CSF_OCCTBinPath=@CMAKE_BINARY_DIR@/bin\"
set \"CSF_OCCTLibPath=@CMAKE_BINARY_DIR@/lib\"
)")
else()
set (OCCT_CUSTOM_BUILD_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"
export CSF_OCCTLibPath=\"@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@\"")
endif()
else()
# For other layouts, use traditional paths with suffixes
if (WIN32)
set (OCCT_CUSTOM_BUILD_BIN_LIB_PATHS "set \"CSF_OCCTBinPath=@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"
set \"CSF_OCCTLibPath=@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@\"
if [\"@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"] == [\"\"] (
set \"CSF_OCCTBinPath=@CMAKE_BINARY_DIR@/win%ARCH%/%VCVER%/bin%3\"
set \"CSF_OCCTLibPath=@CMAKE_BINARY_DIR@/win%ARCH%/%VCVER%/lib%3\"
)")
else()
set (OCCT_CUSTOM_BUILD_BIN_LIB_PATHS "export CSF_OCCTBinPath=\"@CMAKE_RUNTIME_OUTPUT_DIRECTORY@\"
export CSF_OCCTLibPath=\"@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@\"")
endif()
endif()
# Expand OCCT_CUSTOM_BUILD_BIN_LIB_PATHS variable to resolve nested @...@ variables
if (OCCT_CUSTOM_BUILD_BIN_LIB_PATHS)
string(CONFIGURE "${OCCT_CUSTOM_BUILD_BIN_LIB_PATHS}" OCCT_CUSTOM_BUILD_BIN_LIB_PATHS @ONLY)
endif()
# write current custom.bat/sh (for build directory)
OCCT_CONFIGURE ("adm/templates/custom.build.${SCRIPT_EXT}.in" "${SUB_CUSTOM_NAME}")
@@ -1146,6 +1348,16 @@ if (BUILD_SAMPLES_MFC OR BUILD_SAMPLES_QT)
endif()
if (WIN32)
# Set custom script path variable for Windows template
if (LAYOUT_IS_VCPKG)
# For vcpkg, scripts are in same directory - use existing SCRIPTROOT variable
set (OCCT_CUSTOM_SCRIPT_PATH "custom.${SCRIPT_EXT}")
set (OCCT_CUSTOM_SCRIPT_PREFIX "%SCRIPTROOT%/")
else()
# For other layouts, use CASROOT with full path
set (OCCT_CUSTOM_SCRIPT_PATH "custom.${SCRIPT_EXT}")
set (OCCT_CUSTOM_SCRIPT_PREFIX "%CASROOT%/")
endif()
# env script for draw in building environment
OCCT_CONFIGURE ("adm/templates/env.${SCRIPT_EXT}.in" "env.${SCRIPT_EXT}")
# install env script
@@ -1156,6 +1368,20 @@ if (WIN32)
else()
set (SUB_ENV_NAME "env.${SCRIPT_EXT}")
set (SUB_ENV_BUILD_NAME "env.install.${SCRIPT_EXT}")
# Set custom script path variable for template
if (LAYOUT_IS_VCPKG)
# For vcpkg, scripts are in same directory - use existing path variables
set (OCCT_CUSTOM_SCRIPT_PATH "custom.${SCRIPT_EXT}")
if (WIN32)
set (OCCT_CUSTOM_SCRIPT_PREFIX "%SCRIPTROOT%/")
else()
set (OCCT_CUSTOM_SCRIPT_PREFIX "\${aScriptPath}/")
endif()
else()
# For other layouts, use CASROOT with full path
set (OCCT_CUSTOM_SCRIPT_PATH "${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
set (OCCT_CUSTOM_SCRIPT_PREFIX "\${CASROOT}/")
endif()
# install env script
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/env.install.${SCRIPT_EXT}.in" "${SUB_ENV_BUILD_NAME}" "${SUB_ENV_NAME}" "${INSTALL_DIR_SCRIPT}")
# env script for draw in building environment
@@ -1187,13 +1413,13 @@ if (BUILD_SAMPLES_QT)
endforeach()
## Copy sources of OCCTOverview for using in the sample
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/DataExchangeSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/OcafSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/GeometrySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/TopologySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/TriangulationSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/Viewer2dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/OCCTOverview/code/Viewer3dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/DataExchangeSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/OcafSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/GeometrySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/TopologySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/TriangulationSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/Viewer2dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/Viewer3dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code")
endif()
@@ -1254,7 +1480,7 @@ endif()
message (STATUS "Info: \(${CURRENT_TIME}\) OCCT toolkits processed")
# samples do not support patch usage
if (BUILD_SAMPLES_MFC OR BUILD_SAMPLES_QT)
set (OCCT_ROOT ${CMAKE_SOURCE_DIR})
set (OCCT_ROOT ${OCCT_ROOT_DIR})
endif()
if (BUILD_SAMPLES_MFC)
@@ -1272,6 +1498,18 @@ endif()
OCCT_MODULES_AND_TOOLKITS (SAMPLES "SAMPLES_TOOLKITS" OCCT_SAMPLES)
# Load sample configuration files
foreach (OCCT_SAMPLE ${OCCT_SAMPLES})
foreach (BUILD_SAMPLE_TOOLKIT ${${OCCT_SAMPLE}_SAMPLES_TOOLKITS})
OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/PACKAGES)
OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/EXTERNLIB)
OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/FILES)
foreach (PACKAGE ${OCCT_${BUILD_SAMPLE_TOOLKIT}_LIST_OF_PACKAGES})
OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${PACKAGE}/FILES)
endforeach()
endforeach()
endforeach()
if (BUILD_SAMPLES_QT)
if (BUILD_SAMPLES_QT)
if (NOT Qt5_FOUND OR "${Qt5Gui_EGL_INCLUDE_DIRS}" STREQUAL "" OR NOT WIN32)
@@ -1344,7 +1582,7 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
endforeach()
set (SET_OpenCASCADE_CMAKE_C_FLAGS "${CMAKE_C_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
set (SET_OpenCASCADE_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADECompileDefinitionsAndFlags.cmake.in" "OpenCASCADECompileDefinitionsAndFlags-${OCCT_CONFIGURATION_LOWER}.cmake" @ONLY)
configure_file("${OCCT_ROOT_DIR}/adm/templates/OpenCASCADECompileDefinitionsAndFlags.cmake.in" "OpenCASCADECompileDefinitionsAndFlags-${OCCT_CONFIGURATION_LOWER}.cmake" @ONLY)
endforeach()
# install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
@@ -1388,7 +1626,7 @@ if (APPLE)
endif()
# Configure and install cmake config file
configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADEConfig.cmake.in" "OpenCASCADEConfig.cmake" @ONLY)
configure_file("${OCCT_ROOT_DIR}/adm/templates/OpenCASCADEConfig.cmake.in" "OpenCASCADEConfig.cmake" @ONLY)
install(FILES "${CMAKE_BINARY_DIR}/OpenCASCADEConfig.cmake" DESTINATION "${INSTALL_DIR_CMAKE}")
# Configure cmake version file

View File

@@ -33,11 +33,11 @@ if (NOT FLEX_FOUND OR NOT FLEX_INCLUDE_DIR OR NOT EXISTS "${FLEX_INCLUDE_DIR}/Fl
endif()
# remove old general version of FlexLexer
if (EXISTS ${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/FlexLexer/FlexLexer.h)
message (STATUS "Info: remove old FLEX header file: ${CMAKE_SOURCE_DIR}/src/FlexLexer/FlexLexer.h")
file(REMOVE ${CMAKE_SOURCE_DIR}/src/FlexLexer/FlexLexer.h)
if (EXISTS ${OCCT_ROOT_DIR}/${RELATIVE_SOURCES_DIR}/FlexLexer/FlexLexer.h)
message (STATUS "Info: remove old FLEX header file: ${OCCT_ROOT_DIR}/src/FlexLexer/FlexLexer.h")
file(REMOVE ${OCCT_ROOT_DIR}/src/FlexLexer/FlexLexer.h)
endif()
# install copy of FlexLexer.h locally to allow further building without flex
if (FLEX_INCLUDE_DIR AND EXISTS "${FLEX_INCLUDE_DIR}/FlexLexer.h")
configure_file("${FLEX_INCLUDE_DIR}/FlexLexer.h" "${CMAKE_SOURCE_DIR}/src/FlexLexer/FlexLexer.h" @ONLY NEWLINE_STYLE LF)
configure_file("${FLEX_INCLUDE_DIR}/FlexLexer.h" "${OCCT_ROOT_DIR}/src/FlexLexer/FlexLexer.h" @ONLY NEWLINE_STYLE LF)
endif()

View File

@@ -258,7 +258,7 @@ endfunction()
# Function to load file lists for documentation
function(OCCT_DOC_LOAD_FILE_LISTS)
# Load list of HTML documentation files
set(FILES_HTML_PATH "${CMAKE_SOURCE_DIR}/dox/FILES_HTML.txt")
set(FILES_HTML_PATH "${OCCT_ROOT_DIR}/dox/FILES_HTML.txt")
if(EXISTS ${FILES_HTML_PATH})
file(STRINGS ${FILES_HTML_PATH} HTML_FILES REGEX "^[^#]+")
set(OCCT_DOC_HTML_FILES ${HTML_FILES} PARENT_SCOPE)
@@ -267,7 +267,7 @@ function(OCCT_DOC_LOAD_FILE_LISTS)
endif()
# Load list of PDF documentation files
set(FILES_PDF_PATH "${CMAKE_SOURCE_DIR}/dox/FILES_PDF.txt")
set(FILES_PDF_PATH "${OCCT_ROOT_DIR}/dox/FILES_PDF.txt")
if(EXISTS ${FILES_PDF_PATH})
file(STRINGS ${FILES_PDF_PATH} PDF_FILES REGEX "^[^#]+")
set(OCCT_DOC_PDF_FILES ${PDF_FILES} PARENT_SCOPE)
@@ -317,9 +317,9 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
# Use existing Doxygen template file as base
if(DOC_TYPE STREQUAL "OVERVIEW")
set(TEMPLATE_DOXYFILE "${CMAKE_SOURCE_DIR}/dox/resources/occt_ug_html.doxyfile")
set(TEMPLATE_DOXYFILE "${OCCT_ROOT_DIR}/dox/resources/occt_ug_html.doxyfile")
else()
set(TEMPLATE_DOXYFILE "${CMAKE_SOURCE_DIR}/dox/resources/occt_rm.doxyfile")
set(TEMPLATE_DOXYFILE "${OCCT_ROOT_DIR}/dox/resources/occt_rm.doxyfile")
endif()
# Define Doxygen parameters that need to be overridden from the template
@@ -355,7 +355,7 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
# Additional parameters based on the document type
if(DOC_TYPE STREQUAL "OVERVIEW")
# Settings for Overview documentation
file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_LOGO = ${CMAKE_SOURCE_DIR}/dox/resources/occ_logo.png\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_LOGO = ${OCCT_ROOT_DIR}/dox/resources/occ_logo.png\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXTRACT_ALL = NO\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXTRACT_PRIVATE = NO\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXTRACT_STATIC = NO\n")
@@ -374,27 +374,27 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
if(DEFINED OCCT_OVERVIEW_FILES)
file(APPEND ${DOXYGEN_CONFIG_FILE} "INPUT = ${OCCT_OVERVIEW_FILES}\n")
else()
file(APPEND ${DOXYGEN_CONFIG_FILE} "INPUT = ${CMAKE_SOURCE_DIR}/dox\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "INPUT = ${OCCT_ROOT_DIR}/dox\n")
endif()
# Collect image directories for overview
set(OVERVIEW_INPUT_DIRS ${CMAKE_SOURCE_DIR}/dox)
set(OVERVIEW_INPUT_DIRS ${OCCT_ROOT_DIR}/dox)
OCCT_DOC_COLLECT_IMAGE_DIRS("${OVERVIEW_INPUT_DIRS}" OVERVIEW_IMAGE_DIRS)
# Image path for overview
if(OVERVIEW_IMAGE_DIRS)
string(REPLACE ";" " " OVERVIEW_IMAGE_DIRS_STR "${OVERVIEW_IMAGE_DIRS}")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${OVERVIEW_IMAGE_DIRS_STR} ${CMAKE_SOURCE_DIR}/dox/resources\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${OVERVIEW_IMAGE_DIRS_STR} ${OCCT_ROOT_DIR}/dox/resources\n")
else()
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${CMAKE_SOURCE_DIR}/dox/resources\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${OCCT_ROOT_DIR}/dox/resources\n")
endif()
# Example paths
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/samples\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXAMPLE_PATH = ${OCCT_ROOT_DIR}/src ${OCCT_ROOT_DIR}/samples\n")
else()
# Settings for Reference Manual
file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_NAME = \"Open CASCADE Technology Reference Manual\"\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_LOGO = ${CMAKE_SOURCE_DIR}/dox/resources/occ_logo.png\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_LOGO = ${OCCT_ROOT_DIR}/dox/resources/occ_logo.png\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "BUILTIN_STL_SUPPORT = YES\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXTRACT_PRIVATE = NO\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "EXTRACT_PACKAGE = YES\n")
@@ -407,14 +407,14 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
# Input files for reference manual - CRITICAL FOR PROPER GENERATION
file(APPEND ${DOXYGEN_CONFIG_FILE} "\n# Input files for reference manual\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "INPUT = ${CMAKE_SOURCE_DIR}/src\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "INPUT = ${OCCT_ROOT_DIR}/src\n")
# If generating documentation for specific modules
if(DEFINED OCCT_DOC_MODULES)
set(MODULE_PATHS "")
foreach(MODULE ${OCCT_DOC_MODULES})
foreach(TOOLKIT ${${MODULE}_TOOLKITS})
list(APPEND MODULE_PATHS "${CMAKE_SOURCE_DIR}/src/${TOOLKIT}")
list(APPEND MODULE_PATHS "${OCCT_ROOT_DIR}/src/${TOOLKIT}")
endforeach()
endforeach()
string(REPLACE ";" " " MODULE_PATHS_STR "${MODULE_PATHS}")
@@ -422,14 +422,14 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
endif()
# Configure image path for reference manual
set(REFMAN_INPUT_DIRS ${CMAKE_SOURCE_DIR}/src)
set(REFMAN_INPUT_DIRS ${OCCT_ROOT_DIR}/src)
OCCT_DOC_COLLECT_IMAGE_DIRS("${REFMAN_INPUT_DIRS}" REFMAN_IMAGE_DIRS)
if(REFMAN_IMAGE_DIRS)
string(REPLACE ";" " " REFMAN_IMAGE_DIRS_STR "${REFMAN_IMAGE_DIRS}")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${REFMAN_IMAGE_DIRS_STR} ${CMAKE_SOURCE_DIR}/dox/resources\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${REFMAN_IMAGE_DIRS_STR} ${OCCT_ROOT_DIR}/dox/resources\n")
else()
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${CMAKE_SOURCE_DIR}/dox/resources\n")
file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${OCCT_ROOT_DIR}/dox/resources\n")
endif()
# Add main page file if generated
@@ -444,8 +444,8 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE)
endif()
# Custom CSS
if(EXISTS "${CMAKE_SOURCE_DIR}/dox/resources/custom.css")
file(APPEND ${DOXYGEN_CONFIG_FILE} "HTML_EXTRA_STYLESHEET = ${CMAKE_SOURCE_DIR}/dox/resources/custom.css\n")
if(EXISTS "${OCCT_ROOT_DIR}/dox/resources/custom.css")
file(APPEND ${DOXYGEN_CONFIG_FILE} "HTML_EXTRA_STYLESHEET = ${OCCT_ROOT_DIR}/dox/resources/custom.css\n")
endif()
# Set paths for dot tool
@@ -600,7 +600,7 @@ function(OCCT_SETUP_DOC_TARGETS)
file(MAKE_DIRECTORY "${REFMAN_OUTPUT_DIR}/html")
# Copy index file to provide fast access to HTML documentation
file(COPY "${CMAKE_SOURCE_DIR}/dox/resources/index.html" DESTINATION "${REFMAN_OUTPUT_DIR}")
file(COPY "${OCCT_ROOT_DIR}/dox/resources/index.html" DESTINATION "${REFMAN_OUTPUT_DIR}")
# Generate main page for reference manual
OCCT_DOC_GENERATE_MAIN_PAGE(${REFMAN_OUTPUT_DIR} "main_page.dox")
@@ -613,7 +613,7 @@ function(OCCT_SETUP_DOC_TARGETS)
add_custom_target(RefMan
COMMAND ${DOXYGEN_EXECUTABLE} ${REFMAN_OUTPUT_DIR}/Doxyfile
COMMENT "Generating Reference Manual with Doxygen"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${OCCT_ROOT_DIR}
VERBATIM
)
@@ -640,12 +640,12 @@ function(OCCT_SETUP_DOC_TARGETS)
add_custom_target(Overview
COMMAND ${DOXYGEN_EXECUTABLE} ${OVERVIEW_OUTPUT_DIR}/Doxyfile
COMMENT "Generating Overview documentation with Doxygen"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${OCCT_ROOT_DIR}
VERBATIM
)
# Copy index file to provide fast access to HTML documentation
file(COPY "${CMAKE_SOURCE_DIR}/dox/resources/index.html" DESTINATION "${OVERVIEW_OUTPUT_DIR}")
file(COPY "${OCCT_ROOT_DIR}/dox/resources/index.html" DESTINATION "${OVERVIEW_OUTPUT_DIR}")
# Add custom command to copy generated documentation to install location if required
if(INSTALL_DOC_Overview)
@@ -655,7 +655,7 @@ function(OCCT_SETUP_DOC_TARGETS)
# Create overview.html only for windows
if(WIN32)
install(FILES "${CMAKE_SOURCE_DIR}/dox/resources/overview.html"
install(FILES "${OCCT_ROOT_DIR}/dox/resources/overview.html"
DESTINATION "${INSTALL_DIR_DOC}")
endif()
endif()

View File

@@ -135,29 +135,29 @@ function(OCCT_SET_GTEST_ENVIRONMENT)
set(TEST_ENVIRONMENT
"CSF_LANGUAGE=us"
"MMGT_CLEAR=1"
"CSF_SHMessage=${CMAKE_SOURCE_DIR}/resources/SHMessage"
"CSF_MDTVTexturesDirectory=${CMAKE_SOURCE_DIR}/resources/Textures"
"CSF_ShadersDirectory=${CMAKE_SOURCE_DIR}/resources/Shaders"
"CSF_XSMessage=${CMAKE_SOURCE_DIR}/resources/XSMessage"
"CSF_TObjMessage=${CMAKE_SOURCE_DIR}/resources/TObj"
"CSF_StandardDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
"CSF_PluginDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
"CSF_XCAFDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
"CSF_TObjDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
"CSF_StandardLiteDefaults=${CMAKE_SOURCE_DIR}/resources/StdResource"
"CSF_IGESDefaults=${CMAKE_SOURCE_DIR}/resources/XSTEPResource"
"CSF_STEPDefaults=${CMAKE_SOURCE_DIR}/resources/XSTEPResource"
"CSF_XmlOcafResource=${CMAKE_SOURCE_DIR}/resources/XmlOcafResource"
"CSF_MIGRATION_TYPES=${CMAKE_SOURCE_DIR}/resources/StdResource/MigrationSheet.txt"
"CSF_OCCTResourcePath=${CMAKE_SOURCE_DIR}/resources"
"CSF_OCCTDataPath=${CMAKE_SOURCE_DIR}/data"
"CSF_OCCTDocPath=${CMAKE_SOURCE_DIR}/doc"
"CSF_OCCTSamplesPath=${CMAKE_SOURCE_DIR}/samples"
"CSF_OCCTTestsPath=${CMAKE_SOURCE_DIR}/tests"
"CSF_SHMessage=${OCCT_ROOT_DIR}/resources/SHMessage"
"CSF_MDTVTexturesDirectory=${OCCT_ROOT_DIR}/resources/Textures"
"CSF_ShadersDirectory=${OCCT_ROOT_DIR}/resources/Shaders"
"CSF_XSMessage=${OCCT_ROOT_DIR}/resources/XSMessage"
"CSF_TObjMessage=${OCCT_ROOT_DIR}/resources/TObj"
"CSF_StandardDefaults=${OCCT_ROOT_DIR}/resources/StdResource"
"CSF_PluginDefaults=${OCCT_ROOT_DIR}/resources/StdResource"
"CSF_XCAFDefaults=${OCCT_ROOT_DIR}/resources/StdResource"
"CSF_TObjDefaults=${OCCT_ROOT_DIR}/resources/StdResource"
"CSF_StandardLiteDefaults=${OCCT_ROOT_DIR}/resources/StdResource"
"CSF_IGESDefaults=${OCCT_ROOT_DIR}/resources/XSTEPResource"
"CSF_STEPDefaults=${OCCT_ROOT_DIR}/resources/XSTEPResource"
"CSF_XmlOcafResource=${OCCT_ROOT_DIR}/resources/XmlOcafResource"
"CSF_MIGRATION_TYPES=${OCCT_ROOT_DIR}/resources/StdResource/MigrationSheet.txt"
"CSF_OCCTResourcePath=${OCCT_ROOT_DIR}/resources"
"CSF_OCCTDataPath=${OCCT_ROOT_DIR}/data"
"CSF_OCCTDocPath=${OCCT_ROOT_DIR}/doc"
"CSF_OCCTSamplesPath=${OCCT_ROOT_DIR}/samples"
"CSF_OCCTTestsPath=${OCCT_ROOT_DIR}/tests"
"CSF_OCCTBinPath=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
"CSF_OCCTLibPath=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}"
"CSF_OCCTIncludePath=${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}"
"CASROOT=${CMAKE_SOURCE_DIR}"
"CASROOT=${OCCT_ROOT_DIR}"
)
# Build PATH environment variable
@@ -215,12 +215,12 @@ function(OCCT_SET_GTEST_ENVIRONMENT)
endif()
# Add DrawResources related environment if it exists
if(EXISTS "${CMAKE_SOURCE_DIR}/resources/DrawResources")
list(APPEND TEST_ENVIRONMENT "DRAWHOME=${CMAKE_SOURCE_DIR}/resources/DrawResources")
list(APPEND TEST_ENVIRONMENT "CSF_DrawPluginDefaults=${CMAKE_SOURCE_DIR}/resources/DrawResources")
if(EXISTS "${OCCT_ROOT_DIR}/resources/DrawResources")
list(APPEND TEST_ENVIRONMENT "DRAWHOME=${OCCT_ROOT_DIR}/resources/DrawResources")
list(APPEND TEST_ENVIRONMENT "CSF_DrawPluginDefaults=${OCCT_ROOT_DIR}/resources/DrawResources")
if(EXISTS "${CMAKE_SOURCE_DIR}/resources/DrawResources/DrawDefault")
list(APPEND TEST_ENVIRONMENT "DRAWDEFAULT=${CMAKE_SOURCE_DIR}/resources/DrawResources/DrawDefault")
if(EXISTS "${OCCT_ROOT_DIR}/resources/DrawResources/DrawDefault")
list(APPEND TEST_ENVIRONMENT "DRAWDEFAULT=${OCCT_ROOT_DIR}/resources/DrawResources/DrawDefault")
endif()
endif()

View File

@@ -3,8 +3,8 @@
if(OCCT_MACROS_ALREADY_INCLUDED)
return()
endif()
set(OCCT_MACROS_ALREADY_INCLUDED 1)
set(OCCT_MACROS_ALREADY_INCLUDED 1)
macro (OCCT_CHECK_AND_UNSET VARNAME)
if (DEFINED ${VARNAME})
@@ -34,16 +34,16 @@ endmacro()
function (FILE_TO_LIST FILE_NAME FILE_CONTENT)
set (LOCAL_FILE_CONTENT)
if (EXISTS "${CMAKE_SOURCE_DIR}/${FILE_NAME}")
file (STRINGS "${CMAKE_SOURCE_DIR}/${FILE_NAME}" LOCAL_FILE_CONTENT)
if (EXISTS "${OCCT_ROOT_DIR}/${FILE_NAME}")
file (STRINGS "${OCCT_ROOT_DIR}/${FILE_NAME}" LOCAL_FILE_CONTENT)
endif()
set (${FILE_CONTENT} ${LOCAL_FILE_CONTENT} PARENT_SCOPE)
endfunction()
function(FIND_FOLDER_OR_FILE FILE_OR_FOLDER_NAME RESULT_PATH)
if (EXISTS "${CMAKE_SOURCE_DIR}/${FILE_OR_FOLDER_NAME}")
set (${RESULT_PATH} "${CMAKE_SOURCE_DIR}/${FILE_OR_FOLDER_NAME}" PARENT_SCOPE)
if (EXISTS "${OCCT_ROOT_DIR}/${FILE_OR_FOLDER_NAME}")
set (${RESULT_PATH} "${OCCT_ROOT_DIR}/${FILE_OR_FOLDER_NAME}" PARENT_SCOPE)
else()
set (${RESULT_PATH} "" PARENT_SCOPE)
endif()
@@ -156,7 +156,7 @@ function (FIND_SUBDIRECTORY ROOT_DIRECTORY DIRECTORY_SUFFIX SUBDIRECTORY_NAME)
endfunction()
function (OCCT_ORIGIN_AND_PATCHED_FILES RELATIVE_PATH SEARCH_TEMPLATE RESULT)
file (GLOB ORIGIN_FILES "${CMAKE_SOURCE_DIR}/${RELATIVE_PATH}/${SEARCH_TEMPLATE}")
file (GLOB ORIGIN_FILES "${OCCT_ROOT_DIR}/${RELATIVE_PATH}/${SEARCH_TEMPLATE}")
set (${RESULT} ${ORIGIN_FILES} PARENT_SCOPE)
endfunction()
@@ -213,15 +213,15 @@ function (FIND_PRODUCT_DIR ROOT_DIR PRODUCT_NAME RESULT)
endfunction()
macro (OCCT_INSTALL_FILE_OR_DIR BEING_INSTALLED_OBJECT DESTINATION_PATH)
if (IS_DIRECTORY "${CMAKE_SOURCE_DIR}/${BEING_INSTALLED_OBJECT}")
install (DIRECTORY "${CMAKE_SOURCE_DIR}/${BEING_INSTALLED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
if (IS_DIRECTORY "${OCCT_ROOT_DIR}/${BEING_INSTALLED_OBJECT}")
install (DIRECTORY "${OCCT_ROOT_DIR}/${BEING_INSTALLED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
else()
install (FILES "${CMAKE_SOURCE_DIR}/${BEING_INSTALLED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
install (FILES "${OCCT_ROOT_DIR}/${BEING_INSTALLED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
endif()
endmacro()
macro (OCCT_CONFIGURE_AND_INSTALL BEING_CONGIRUGED_FILE BUILD_NAME INSTALL_NAME DESTINATION_PATH)
configure_file("${CMAKE_SOURCE_DIR}/${BEING_CONGIRUGED_FILE}" "${BUILD_NAME}" @ONLY)
configure_file("${OCCT_ROOT_DIR}/${BEING_CONGIRUGED_FILE}" "${BUILD_NAME}" @ONLY)
install(FILES "${OCCT_BINARY_DIR}/${BUILD_NAME}" DESTINATION "${DESTINATION_PATH}" RENAME ${INSTALL_NAME})
endmacro()
@@ -343,8 +343,8 @@ endfunction()
function (FILE_TO_LIST FILE_NAME FILE_CONTENT)
set (LOCAL_FILE_CONTENT)
if (EXISTS "${CMAKE_SOURCE_DIR}/${FILE_NAME}")
file (STRINGS "${CMAKE_SOURCE_DIR}/${FILE_NAME}" LOCAL_FILE_CONTENT)
if (EXISTS "${OCCT_ROOT_DIR}/${FILE_NAME}")
file (STRINGS "${OCCT_ROOT_DIR}/${FILE_NAME}" LOCAL_FILE_CONTENT)
endif()
set (${FILE_CONTENT} ${LOCAL_FILE_CONTENT} PARENT_SCOPE)
@@ -354,7 +354,7 @@ function (COLLECT_AND_INSTALL_OCCT_HEADER_FILES THE_ROOT_TARGET_OCCT_DIR THE_OCC
set (OCCT_USED_PACKAGES)
# consider patched header.in template
set (TEMPLATE_HEADER_PATH "${CMAKE_SOURCE_DIR}/adm/templates/header.in")
set (TEMPLATE_HEADER_PATH "${OCCT_ROOT_DIR}/adm/templates/header.in")
set (OCCT_HEADER_FILES_COMPLETE)
foreach(OCCT_TOOLKIT ${THE_OCCT_BUILD_TOOLKITS})
@@ -439,18 +439,18 @@ endfunction()
macro (OCCT_COPY_FILE_OR_DIR BEING_COPIED_OBJECT DESTINATION_PATH)
# first of all, copy original files
if (EXISTS "${CMAKE_SOURCE_DIR}/${BEING_COPIED_OBJECT}")
file (COPY "${CMAKE_SOURCE_DIR}/${BEING_COPIED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
if (EXISTS "${OCCT_ROOT_DIR}/${BEING_COPIED_OBJECT}")
file (COPY "${OCCT_ROOT_DIR}/${BEING_COPIED_OBJECT}" DESTINATION "${DESTINATION_PATH}")
endif()
endmacro()
macro (OCCT_CONFIGURE BEING_CONGIRUGED_FILE FINAL_NAME)
configure_file("${CMAKE_SOURCE_DIR}/${BEING_CONGIRUGED_FILE}" "${FINAL_NAME}" @ONLY)
configure_file("${OCCT_ROOT_DIR}/${BEING_CONGIRUGED_FILE}" "${FINAL_NAME}" @ONLY)
endmacro()
macro (OCCT_ADD_SUBDIRECTORY BEING_ADDED_DIRECTORY)
if (EXISTS "${CMAKE_SOURCE_DIR}/${BEING_ADDED_DIRECTORY}/CMakeLists.txt")
add_subdirectory (${CMAKE_SOURCE_DIR}/${BEING_ADDED_DIRECTORY})
if (EXISTS "${OCCT_ROOT_DIR}/${BEING_ADDED_DIRECTORY}/CMakeLists.txt")
add_subdirectory (${OCCT_ROOT_DIR}/${BEING_ADDED_DIRECTORY})
else()
message (STATUS "${BEING_ADDED_DIRECTORY} directory is not included")
endif()
@@ -518,7 +518,7 @@ macro(OCCT_GET_GIT_HASH)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${OCCT_ROOT_DIR}
OUTPUT_VARIABLE GIT_HASH
ERROR_VARIABLE GIT_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -527,7 +527,7 @@ macro(OCCT_GET_GIT_HASH)
# Check if working directory is clean
execute_process(
COMMAND ${GIT_EXECUTABLE} status --porcelain
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${OCCT_ROOT_DIR}
OUTPUT_VARIABLE GIT_STATUS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -630,7 +630,7 @@ macro (FLEX_AND_BISON_TARGET_APPLY THE_PACKAGE_NAME RELATIVE_SOURCES_DIR)
continue()
endif()
# Note: files are generated in original source directory (not in patch!)
set (FLEX_BISON_TARGET_DIR "${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/${THE_PACKAGE_NAME}")
set (FLEX_BISON_TARGET_DIR "${OCCT_ROOT_DIR}/${RELATIVE_SOURCES_DIR}/${THE_PACKAGE_NAME}")
# choose appropriate extension for generated files: "cxx" if source file contains
# instruction to generate C++ code, "c" otherwise
set (BISON_OUTPUT_FILE_EXT "c")
@@ -664,7 +664,7 @@ macro (FLEX_AND_BISON_TARGET_APPLY THE_PACKAGE_NAME RELATIVE_SOURCES_DIR)
file(REMOVE ${FLEX_BISON_TARGET_DIR}/${FLEX_OUTPUT_FILE})
endif()
BISON_TARGET (Parser_${CURRENT_BISON_FILE_NAME} ${CURRENT_BISON_FILE} "${FLEX_BISON_TARGET_DIR}/${BISON_OUTPUT_FILE}"
COMPILE_FLAGS "-p ${CURRENT_BISON_FILE_NAME} -l -M ${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/=")
COMPILE_FLAGS "-p ${CURRENT_BISON_FILE_NAME} -l -M ${OCCT_ROOT_DIR}/${RELATIVE_SOURCES_DIR}/=")
FLEX_TARGET (Scanner_${CURRENT_FLEX_FILE_NAME} ${CURRENT_FLEX_FILE} "${FLEX_BISON_TARGET_DIR}/${FLEX_OUTPUT_FILE}"
COMPILE_FLAGS "-P${CURRENT_FLEX_FILE_NAME} -L")
ADD_FLEX_BISON_DEPENDENCY (Scanner_${CURRENT_FLEX_FILE_NAME} Parser_${CURRENT_BISON_FILE_NAME})
@@ -696,13 +696,17 @@ macro (OCCT_UPDATE_TARGET_FILE)
endmacro()
macro (OCCT_INSERT_CODE_FOR_TARGET)
install(CODE "if (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$\")
set (OCCT_INSTALL_BIN_LETTER \"\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$\")
set (OCCT_INSTALL_BIN_LETTER \"i\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\")
set (OCCT_INSTALL_BIN_LETTER \"d\")
endif()")
if (LAYOUT_IS_VCPKG)
install(CODE "set (OCCT_INSTALL_BIN_LETTER \"\")")
else()
install(CODE "if (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$\")
set (OCCT_INSTALL_BIN_LETTER \"\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$\")
set (OCCT_INSTALL_BIN_LETTER \"i\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\")
set (OCCT_INSTALL_BIN_LETTER \"d\")
endif()")
endif()
endmacro()
macro (OCCT_UPDATE_DRAW_DEFAULT_FILE)

View File

@@ -3,8 +3,8 @@
macro (OCCT_GENERATE_CONTENT_ONLY CurrentResource)
set (RESOURCE_FILES)
set (isResDirectory FALSE)
if (IS_DIRECTORY "${CMAKE_SOURCE_DIR}/resources/${CurrentResource}")
file (STRINGS "${CMAKE_SOURCE_DIR}/resources/${CurrentResource}/FILES" RESOURCE_FILES)
if (IS_DIRECTORY "${OCCT_ROOT_DIR}/resources/${CurrentResource}")
file (STRINGS "${OCCT_ROOT_DIR}/resources/${CurrentResource}/FILES" RESOURCE_FILES)
set (CurrentResource_Directory "${CurrentResource}")
set (isResDirectory TRUE)
else()
@@ -27,11 +27,11 @@ macro (OCCT_GENERATE_CONTENT_ONLY CurrentResource)
string (REPLACE "." "_" CurrentResource_FileName "${CurrentResource_FileName}")
set (HEADER_FILE_NAME "${CurrentResource_Directory}_${CurrentResource_FileName}.pxx")
message(STATUS "Info. Generating header file from resource file: ${CMAKE_SOURCE_DIR}/resources/${CurrentResource_Directory}/${RESOURCE_FILE}")
message(STATUS "Info. Generating header file from resource file: ${OCCT_ROOT_DIR}/resources/${CurrentResource_Directory}/${RESOURCE_FILE}")
# generate content for header file
set (OCCT_HEADER_FILE_CONTENT "// This file has been automatically generated from resource file resources/${CurrentResource_Directory}/${RESOURCE_FILE}\n\n")
# read resource file
file (STRINGS "${CMAKE_SOURCE_DIR}/resources/${CurrentResource_Directory}/${RESOURCE_FILE}" RESOURCE_FILE_LINES_LIST)
file (STRINGS "${OCCT_ROOT_DIR}/resources/${CurrentResource_Directory}/${RESOURCE_FILE}" RESOURCE_FILE_LINES_LIST)
set (OCCT_HEADER_FILE_CONTENT "${OCCT_HEADER_FILE_CONTENT}static const char ${CurrentResource_Directory}_${CurrentResource_FileName}[] =")
foreach (line IN LISTS RESOURCE_FILE_LINES_LIST)
string (REPLACE "\"" "\\\"" line "${line}")
@@ -43,7 +43,7 @@ macro (OCCT_GENERATE_CONTENT_ONLY CurrentResource)
if (EXISTS "${HEADER_FILE}")
file (REMOVE "${HEADER_FILE}")
endif()
configure_file ("${CMAKE_SOURCE_DIR}/adm/templates/header.in" "${HEADER_FILE}" @ONLY NEWLINE_STYLE LF)
configure_file ("${OCCT_ROOT_DIR}/adm/templates/header.in" "${HEADER_FILE}" @ONLY NEWLINE_STYLE LF)
endif()
endforeach()
endif()

View File

@@ -96,7 +96,7 @@ string (REGEX REPLACE ";" " " PRECOMPILED_DEFS "${PRECOMPILED_DEFS}")
set (USED_RCFILE "")
if (MSVC)
set (USED_RCFILE "${CMAKE_BINARY_DIR}/resources/${PROJECT_NAME}.rc")
configure_file("${CMAKE_SOURCE_DIR}/adm/templates/occt_toolkit.rc.in" "${USED_RCFILE}" @ONLY)
configure_file("${OCCT_ROOT_DIR}/adm/templates/occt_toolkit.rc.in" "${USED_RCFILE}" @ONLY)
endif()
set (CURRENT_MODULE)
@@ -120,8 +120,13 @@ endif (USE_QT)
if (EXECUTABLE_PROJECT)
add_executable (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RESOURCE_FILES} ${${PROJECT_NAME}_MOC_FILES})
install (TARGETS ${PROJECT_NAME}
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
if (LAYOUT_IS_VCPKG)
install (TARGETS ${PROJECT_NAME}
DESTINATION "$<IF:$<CONFIG:Debug>,debug/${INSTALL_DIR_BIN},${INSTALL_DIR_BIN}>")
else()
install (TARGETS ${PROJECT_NAME}
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
endif()
if (EMSCRIPTEN)
install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.wasm DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
@@ -151,12 +156,21 @@ else()
set (CMAKE_SHARED_LIBRARY_SUFFIX "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}")
endif()
install (TARGETS ${PROJECT_NAME}
EXPORT OpenCASCADE${CURRENT_MODULE}Targets
RUNTIME DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}"
ARCHIVE DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}"
LIBRARY DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}"
INCLUDES DESTINATION ${INSTALL_DIR_INCLUDE})
if (LAYOUT_IS_VCPKG)
install (TARGETS ${PROJECT_NAME}
EXPORT OpenCASCADE${CURRENT_MODULE}Targets
RUNTIME DESTINATION "$<IF:$<CONFIG:Debug>,debug/${INSTALL_DIR_BIN},${INSTALL_DIR_BIN}>"
ARCHIVE DESTINATION "$<IF:$<CONFIG:Debug>,debug/${INSTALL_DIR_LIB},${INSTALL_DIR_LIB}>"
LIBRARY DESTINATION "$<IF:$<CONFIG:Debug>,debug/${INSTALL_DIR_LIB},${INSTALL_DIR_LIB}>"
INCLUDES DESTINATION ${INSTALL_DIR_INCLUDE})
else()
install (TARGETS ${PROJECT_NAME}
EXPORT OpenCASCADE${CURRENT_MODULE}Targets
RUNTIME DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}"
ARCHIVE DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}"
LIBRARY DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}"
INCLUDES DESTINATION ${INSTALL_DIR_INCLUDE})
endif()
if (NOT WIN32)
if (BUILD_SHARED_LIBS AND NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "")

View File

@@ -1,18 +0,0 @@
if ("${TARGET_FOLDER}" STREQUAL "")
set (EXECUTABLE_PROJECT ON)
set (USE_QT ON)
set (RELATIVE_DIR "samples/qt")
set (MODULES_LIST ${OCCT_SAMPLES})
set (TARGET_FOLDER "Samples")
set (TOOLKITS_NAME_SUFFIX "SAMPLES_TOOLKITS")
include_directories("${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}/${RELATIVE_DIR}")
else()
unset (USE_QT)
unset (RELATIVE_DIR)
unset (EXECUTABLE_PROJECT)
unset (MODULES_LIST)
unset (TARGET_FOLDER)
unset (TOOLKITS_NAME_SUFFIX)
endif("${TARGET_FOLDER}" STREQUAL "")

View File

@@ -79,8 +79,24 @@ macro (FIND_AND_WRAP_TS_FILE RESOURCE_FILE_NAME TARGET_FOLDER QM_FILES)
endmacro()
macro (FIND_AND_INSTALL_QT_RESOURCES OCCT_PACKAGE RESOURCE_FILES)
file (STRINGS "${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/${OCCT_PACKAGE}/FILES" TS_FILES REGEX ".+[.]ts")
file (STRINGS "${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/${OCCT_PACKAGE}/FILES" QRC_FILES REGEX ".+[.]qrc")
# Package name is now the sample name (e.g., "Tutorial")
set(PACKAGE_NAME ${OCCT_PACKAGE})
# Get files from CMAKE variables with proper location
set(ALL_FILES ${OCCT_${PACKAGE_NAME}_FILES})
set(FILES_LOCATION ${OCCT_${PACKAGE_NAME}_FILES_LOCATION})
# Filter for .ts and .qrc files with full paths
set(TS_FILES)
set(QRC_FILES)
foreach(FILE ${ALL_FILES})
if(FILE MATCHES ".+[.]ts$")
list(APPEND TS_FILES "${FILES_LOCATION}/${FILE}")
endif()
if(FILE MATCHES ".+[.]qrc$")
list(APPEND QRC_FILES "${FILES_LOCATION}/${FILE}")
endif()
endforeach()
string (FIND "${OCCT_PACKAGE}" "/" _index)
if (_index GREATER -1)
@@ -92,19 +108,17 @@ macro (FIND_AND_INSTALL_QT_RESOURCES OCCT_PACKAGE RESOURCE_FILES)
#message("QRC files are: ${QRC_FILES} in ${OCCT_PACKAGE}")
foreach (QRC_FILE ${QRC_FILES})
set (QRC_FILE_RELATIVE "${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/${OCCT_PACKAGE}/${QRC_FILE}")
if (EXISTS ${QRC_FILE_RELATIVE})
FIND_AND_WRAP_RESOURCE_FILE(${QRC_FILE_RELATIVE} RCC_FILES)
if (EXISTS ${QRC_FILE})
FIND_AND_WRAP_RESOURCE_FILE(${QRC_FILE} RCC_FILES)
list (APPEND ${RESOURCE_FILES} "${RCC_FILES}")
endif()
endforeach()
#message("TS files are: ${TS_FILES} in ${OCCT_PACKAGE}")
foreach (TS_FILE ${TS_FILES})
set (TS_FILE_RELATIVE "${CMAKE_SOURCE_DIR}/${RELATIVE_SOURCES_DIR}/${OCCT_PACKAGE}/${TS_FILE}")
FIND_AND_WRAP_TS_FILE(${TS_FILE_RELATIVE} "${TARGET_FOLDER}/${CURRENT_MODULE}" QM_FILES)
if (EXISTS ${TS_FILE_RELATIVE})
list (APPEND ${RESOURCE_FILES} "${TS_FILE_RELATIVE}")
FIND_AND_WRAP_TS_FILE(${TS_FILE} "${TARGET_FOLDER}/${CURRENT_MODULE}" QM_FILES)
if (EXISTS ${TS_FILE})
list (APPEND ${RESOURCE_FILES} "${TS_FILE}")
list (APPEND ${RESOURCE_FILES} "${QM_FILES}")
endif()
endforeach()

View File

@@ -1,5 +1,9 @@
# variable description
set (OCCT_PROJECT_NAME_DESCR
"Project name used in install directory paths for Unix and vcpkg layouts.
Allows customization of directory structure for different package names.")
set (BUILD_LIBRARY_TYPE_DESCR
"Specifies the type of library to be created. 'Shared' libraries
are linked dynamically and loaded at runtime. 'Static' libraries
@@ -56,7 +60,7 @@ set (INSTALL_DIR_WITH_VERSION_DESCR
set (INSTALL_DIR_LAYOUT_DESCR
"Defines structure of OCCT files (binaries, resources, headers etc.) for the install directory.
Two variants are predefined: for Windows (standard OCCT layout) and for Unix operating systems (standard Linux layout).
Three variants are predefined: for Windows (standard OCCT layout), for Unix operating systems (standard Linux layout), and for vcpkg (standard vcpkg layout without 'd' and 'i' suffixes).
If needed, layout can be customized with INSTALL_DIR_* variables.")
set (INSTALL_DIR_BIN_DESCR

View File

@@ -19,4 +19,4 @@
set (OCC_VERSION_MAJOR 8 )
set (OCC_VERSION_MINOR 0 )
set (OCC_VERSION_MAINTENANCE 0 )
set (OCC_VERSION_DEVELOPMENT "rc1" )
set (OCC_VERSION_DEVELOPMENT "rc2" )

View File

@@ -1,41 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@X_COMPILER_BITNESS@'">
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
<LocalDebuggerEnvironment>CASROOT=@OCCT_ROOT_DIR@
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/resources
DRAWHOME=@CMAKE_SOURCE_DIR@/resources/DrawResources
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
CSF_OCCTTestsPath=@CMAKE_SOURCE_DIR@/tests
CSF_OCCTDocPath=@CMAKE_SOURCE_DIR@/doc
CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources
DRAWHOME=@OCCT_ROOT_DIR@/resources/DrawResources
CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data
CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples
CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests
CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc
PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH%
</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>@CMAKE_BINARY_DIR@</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|@X_COMPILER_BITNESS@'">
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
<LocalDebuggerEnvironment>CASROOT=@OCCT_ROOT_DIR@
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/resources
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
CSF_OCCTTestsPath=@CMAKE_SOURCE_DIR@/tests
CSF_OCCTDocPath=@CMAKE_SOURCE_DIR@/doc
CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources
CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data
CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples
CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests
CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc
PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH%
</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>@CMAKE_BINARY_DIR@</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@X_COMPILER_BITNESS@'">
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
<LocalDebuggerEnvironment>CASROOT=@OCCT_ROOT_DIR@
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
DRAWHOME=@CMAKE_SOURCE_DIR@/resources/DrawResources
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/resources
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
CSF_OCCTTestsPath=@CMAKE_SOURCE_DIR@/tests
CSF_OCCTDocPath=@CMAKE_SOURCE_DIR@/doc
DRAWHOME=@OCCT_ROOT_DIR@/resources/DrawResources
CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources
CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data
CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples
CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests
CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc
PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH%
</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>

View File

@@ -17,11 +17,12 @@ set (OpenCASCADE_MAINTENANCE_VERSION "@OCC_VERSION_MAINTENANCE@")
set (OpenCASCADE_DEVELOPMENT_VERSION "@OCC_VERSION_DEVELOPMENT@")
# Compute the installation prefix from this OpenCASCADEConfig.cmake file
# location, by going up one level + one level if "cmake" + one level if "lib".
# location, by going up one level + one level if "cmake" + one level if "lib" + one level if "share".
# This is made to support different locations of CMake files:
# - in UNIX style: $INSTALL_DIR/lib/cmake/opencascade-<version>
# - in UNIX style: $INSTALL_DIR/lib/cmake/@OCCT_PROJECT_NAME@-<version>
# - in Windows style: $INSTALL_DIR/cmake
# - in Android style: $INSTALL_DIR/libs/$CMAKE_ANDROID_ARCH_ABI/cmake/opencascade-<version>
# - in vcpkg style: $INSTALL_DIR/share/@OCCT_PROJECT_NAME@
# - in Android style: $INSTALL_DIR/libs/$CMAKE_ANDROID_ARCH_ABI/cmake/@OCCT_PROJECT_NAME@-<version>
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$")
@@ -30,6 +31,9 @@ endif()
if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib(32|64)?$")
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
endif()
if (OpenCASCADE_INSTALL_PREFIX MATCHES "/share$")
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
endif()
if (OpenCASCADE_INSTALL_PREFIX MATCHES "/libs/${CMAKE_ANDROID_ARCH_ABI}$")
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)

View File

@@ -25,23 +25,16 @@ if /I "%VCVER%" == "@COMPILER@" (
rem CSF_OCCTBinPath and CSF_OCCTLibPath are defined differently for
rem multiple and single configuration builds
set "CSF_OCCTBinPath=@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
if ["@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"] == [""] (
set "CSF_OCCTBinPath=@CMAKE_BINARY_DIR@/win%ARCH%/%VCVER%/bin%3"
)
set "CSF_OCCTLibPath=@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@"
if ["@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@"] == [""] (
set "CSF_OCCTLibPath=@CMAKE_BINARY_DIR@/win%ARCH%/%VCVER%/lib%3"
)
@OCCT_CUSTOM_BUILD_BIN_LIB_PATHS@
set "CSF_OCCTIncludePath=@CMAKE_BINARY_DIR@/inc"
set "CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/resources"
set "CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data"
set "CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples"
set "CSF_OCCTTestsPath=@CMAKE_SOURCE_DIR@/tests"
set "CSF_OCCTDocPath=@CMAKE_SOURCE_DIR@/doc"
set "CSF_OCCTIncludePath=@CMAKE_BINARY_DIR@/@INSTALL_DIR_INCLUDE@"
set "CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources"
set "CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data"
set "CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples"
set "CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests"
set "CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc"
rem for compatibility with external application using CASROOT
set "CASROOT=@CMAKE_SOURCE_DIR@"
set "CASROOT=@OCCT_ROOT_DIR@"
)
)

View File

@@ -14,24 +14,25 @@ if [ "$1" == "@BIN_LETTER@" ]; then
export FFMPEG_DIR="@3RDPARTY_FFMPEG_LIBRARY_DIR@"
export JEMALLOC_DIR="@3RDPARTY_JEMALLOC_LIBRARY_DIR@"
if [ "x@3RDPARTY_QT_DIR" != "x" ]; then
if [ "x@3RDPARTY_QT_DIR@" != "x" ]; then
export QTDIR="@3RDPARTY_QT_DIR@"
fi
export TCL_VERSION_WITH_DOT="@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
export TK_VERSION_WITH_DOT="@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
export CSF_OCCTBinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
export CSF_OCCTLibPath="@CMAKE_ARCHIVE_OUTPUT_DIRECTORY@"
# CSF_OCCTBinPath and CSF_OCCTLibPath are defined differently for
# multiple and single configuration builds
@OCCT_CUSTOM_BUILD_BIN_LIB_PATHS@
export CSF_OCCTIncludePath="@CMAKE_BINARY_DIR@/@INSTALL_DIR_INCLUDE@"
export CSF_OCCTResourcePath="@CMAKE_SOURCE_DIR@/resources"
export CSF_OCCTDataPath="@CMAKE_SOURCE_DIR@/data"
export CSF_OCCTSamplesPath="@CMAKE_SOURCE_DIR@/samples"
export CSF_OCCTTestsPath="@CMAKE_SOURCE_DIR@/tests"
export CSF_OCCTDocPath="@CMAKE_SOURCE_DIR@/doc"
export CSF_OCCTResourcePath="@OCCT_ROOT_DIR@/resources"
export CSF_OCCTDataPath="@OCCT_ROOT_DIR@/data"
export CSF_OCCTSamplesPath="@OCCT_ROOT_DIR@/samples"
export CSF_OCCTTestsPath="@OCCT_ROOT_DIR@/tests"
export CSF_OCCTDocPath="@OCCT_ROOT_DIR@/doc"
# for compatibility with external application using CASROOT
export CASROOT="@CMAKE_SOURCE_DIR@"
export CASROOT="@OCCT_ROOT_DIR@"
fi
fi

View File

@@ -25,15 +25,9 @@ if /I "%VCVER%" == "@COMPILER@" (
set "TCL_VERSION_WITH_DOT=@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
set "TK_VERSION_WITH_DOT=@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
set "CSF_OCCTBinPath=%CASROOT%/@INSTALL_DIR_BIN@%3"
set "CSF_OCCTLibPath=%CASROOT%/@INSTALL_DIR_LIB@%3"
@OCCT_CUSTOM_BIN_LIB_PATHS@
set "CSF_OCCTIncludePath=%CASROOT%/@INSTALL_DIR_INCLUDE@"
set "CSF_OCCTResourcePath=%CASROOT%/@INSTALL_DIR_RESOURCE@"
set "CSF_OCCTDataPath=%CASROOT%/@INSTALL_DIR_DATA@"
set "CSF_OCCTSamplesPath=%CASROOT%/@INSTALL_DIR_SAMPLES@"
set "CSF_OCCTTestsPath=%CASROOT%/@INSTALL_DIR_TESTS@"
set "CSF_OCCTDocPath=%CASROOT%/@INSTALL_DIR_DOC@"
@OCCT_CUSTOM_ADDITIONAL_PATHS@
)
)

View File

@@ -21,14 +21,10 @@ if [ "$1" == "@BIN_LETTER@" ]; then
export TCL_VERSION_WITH_DOT="@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
export TK_VERSION_WITH_DOT="@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
export CSF_OCCTBinPath="${CASROOT}/@INSTALL_DIR_BIN@"
export CSF_OCCTLibPath="${CASROOT}/@INSTALL_DIR_LIB@"
export CSF_OCCTIncludePath="${CASROOT}/@INSTALL_DIR_INCLUDE@"
export CSF_OCCTResourcePath="${CASROOT}/@INSTALL_DIR_RESOURCE@"
export CSF_OCCTDataPath="${CASROOT}/@INSTALL_DIR_DATA@"
export CSF_OCCTSamplesPath="${CASROOT}/@INSTALL_DIR_SAMPLES@"
export CSF_OCCTTestsPath="${CASROOT}/@INSTALL_DIR_TESTS@"
export CSF_OCCTDocPath="${CASROOT}/@INSTALL_DIR_DOC@"
# Set paths based on layout
@OCCT_CUSTOM_BIN_LIB_PATHS@
@OCCT_CUSTOM_ADDITIONAL_PATHS@
fi
fi

View File

@@ -141,8 +141,8 @@ if /I ["%1"] == ["vc141"] set "VCVER=vc14"
if /I ["%1"] == ["vc142"] set "VCVER=vc14"
if /I ["%1"] == ["vc143"] set "VCVER=vc14"
if exist "%CASROOT%\custom.bat" (
call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
if exist "@OCCT_CUSTOM_SCRIPT_PREFIX@@OCCT_CUSTOM_SCRIPT_PATH@" (
call "@OCCT_CUSTOM_SCRIPT_PREFIX@@OCCT_CUSTOM_SCRIPT_PATH@" %VCVER% %ARCH% %CASDEB%
)
if not ["%QTDIR%"] == [""] (

View File

@@ -48,8 +48,8 @@ else
fi
# ----- Set local settings -----
if [ -e "${CASROOT}/@INSTALL_DIR_SCRIPT@/custom.sh" ]; then
source "${CASROOT}/@INSTALL_DIR_SCRIPT@/custom.sh" "${CASDEB}" "${ARCH}"
if [ -e "@OCCT_CUSTOM_SCRIPT_PREFIX@@OCCT_CUSTOM_SCRIPT_PATH@" ]; then
source "@OCCT_CUSTOM_SCRIPT_PREFIX@@OCCT_CUSTOM_SCRIPT_PATH@" "${CASDEB}" "${ARCH}"
fi
THRDPARTY_PATH=""

View File

@@ -21,4 +21,4 @@ export RES_DIR=${aSamplePath}/${STATION}/res
export PATH=${QTDIR}/bin:${PATH}
export "CSF_OCCTOverviewSampleCodePath=${aSamplePath}/../../OCCTOverview/code"
export "CSF_OCCTOverviewSampleCodePath=${aSamplePath}/../../qt/OCCTOverview/code"

View File

@@ -32,7 +32,7 @@ if [ ! -f "$EXE_PATH" ]; then
exit 1
fi
export CSF_OCCTOverviewSampleCodePath="${CSF_OCCTSamplesPath}/OCCTOverview/code"
export CSF_OCCTOverviewSampleCodePath="${CSF_OCCTSamplesPath}/qt/OCCTOverview/code"
cd ${aCurrentPath}
"$EXE_PATH"

View File

@@ -0,0 +1,86 @@
# Get git information for ABI validation
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/../.."
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
RESULT_VARIABLE GIT_RESULT
)
if(NOT GIT_RESULT EQUAL 0)
set(GIT_COMMIT_HASH "unknown")
endif()
set(SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../..")
if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(BUILD_TYPE "Shared")
else()
set(BUILD_TYPE "Static")
endif()
set (BUILD_CPP_STANDARD "C++17")
if ("cpp20" IN_LIST FEATURES)
set (BUILD_CPP_STANDARD "C++20")
elseif ("cpp23" IN_LIST FEATURES)
set (BUILD_CPP_STANDARD "C++23")
endif()
set (BUILD_OPT_PROFILE "Default")
if ("optimized" IN_LIST FEATURES)
set (BUILD_OPT_PROFILE "Production")
endif()
set (BUILD_MODULE_Draw OFF)
if ("tcl" IN_LIST FEATURES OR "tcltk" IN_LIST FEATURES)
set (BUILD_MODULE_Draw ON)
endif()
set (USE_MMGR_TYPE "NATIVE")
if ("jemalloc" IN_LIST FEATURES)
set (USE_MMGR_TYPE "JEMALLOC")
endif()
# Feature mapping to CMake options
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
angle USE_GLES2
opengl USE_OPENGL
freeimage USE_FREEIMAGE
freetype USE_FREETYPE
rapidjson USE_RAPIDJSON
tbb USE_TBB
vtk USE_VTK
tcltk USE_TK
draco USE_DRACO
ffmpeg USE_FFMPEG
openvr USE_OPENVR
gtest BUILD_GTEST
pch BUILD_USE_PCH
d3d USE_D3D
docs BUILD_DOC_Overview
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
-DBUILD_LIBRARY_TYPE=${BUILD_TYPE}
-DINSTALL_DIR_LAYOUT=Vcpkg
-DBUILD_USE_VCPKG=ON
-DBUILD_CPP_STANDARD=${BUILD_CPP_STANDARD}
-DBUILD_OPT_PROFILE=${BUILD_OPT_PROFILE}
-DBUILD_MODULE_Draw=${BUILD_MODULE_Draw}
-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}
MAYBE_UNUSED_VARIABLES
-DUSE_HASH=${GIT_COMMIT_HASH}
)
vcpkg_cmake_install()
vcpkg_install_copyright(
FILE_LIST
"${SOURCE_PATH}/LICENSE_LGPL_21.txt"
"${SOURCE_PATH}/OCCT_LGPL_EXCEPTION.txt"
)

View File

@@ -13,9 +13,9 @@
}
],
"overlay-ports": [
"./ports"
"../../ports"
],
"overlay-triplets": [
"./triplets"
"../../triplets"
]
}

View File

@@ -140,6 +140,28 @@
"dependencies": [
"gtest"
]
},
"pch": {
"description": "Enables precompiled headers to improve compilation speed. Creates shared headers that are compiled once and reused across multiple source files."
},
"cpp20": {
"description": "Enables C++20 standard compilation mode for OCCT. Provides access to latest C++20 features including concepts and modules."
},
"cpp23": {
"description": "Enables C++23 standard compilation mode for OCCT. Provides access to the latest C++23 features including improved constexpr and new standard library components."
},
"optimized": {
"description": "Enables production-level optimizations for maximum performance. Applies aggressive compiler optimizations and removes debug symbols."
},
"d3d": {
"description": "Enables Direct3D support for 3D visualization on Windows. Provides alternative graphics backend to OpenGL for Windows-specific applications.",
"supports": "windows"
},
"docs": {
"description": "Enables documentation generation using Doxygen. Creates HTML reference manual and overview documentation for OCCT API.",
"dependencies": [
"doxygen"
]
}
}
}

View File

@@ -1,7 +1,7 @@
project (Overview)
# directory that contains all raw OCCT overview articles (markdown format)
set (OCCT_OVERVIEW_DIR "${CMAKE_SOURCE_DIR}/dox")
set (OCCT_OVERVIEW_DIR "${OCCT_ROOT_DIR}/dox")
# directory that contains resources for the generation of OCCT documentation
set (OCCT_OVERVIEW_RESOURCE_DIR "${OCCT_OVERVIEW_DIR}/resources")
@@ -43,7 +43,7 @@ configure_file ("${OCCT_OVERVIEW_RESOURCE_DIR}/occt_ug_html.doxyfile" "${OCCT_CO
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_NUMBER = ${OCC_VERSION_STRING_EXT}")
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nOUTPUT_DIRECTORY = ${OCCT_GENERATED_OVERVIEW_DIR}/.")
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nPROJECT_LOGO = ${OCCT_OVERVIEW_DIR}/resources/occ_logo.png")
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nEXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/src")
file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nEXAMPLE_PATH = ${OCCT_ROOT_DIR}/src")
set (OCCT_ARTICLE_PARAM_INPUT "INPUT =")
set (OCCT_ARTICLE_PARAM_IMAGEPATH "IMAGE_PATH = ${OCCT_OVERVIEW_DIR}/resources/ ")

View File

@@ -95,7 +95,7 @@ In addition to these two samples, there are much more that might be of use to a
Check Readme files in the sample directories to learn more about samples compilation.
**Note:** source code for OCCTOverview is stored at 'samples/qt/OCCTOverview/src' folder in your OCCT root,
and the source code files for examples presented in subsections are stored at 'samples/OCCTOverview/code folder'.
and the source code files for examples presented in subsections are stored at 'samples/qt/OCCTOverview/code folder'.
Several utility classes that are not presented in the example window may be found in example source code files.
The overall classes introduction may be found in the @ref occt_user_guides__foundation_classes "Foundation Classes" section of the documentation.

View File

@@ -1,48 +0,0 @@
AdaptorCurve2d_AIS.cxx
AdaptorCurve2d_AIS.h
AdaptorCurve_AIS.cxx
AdaptorCurve_AIS.h
AdaptorPnt2d_AIS.cxx
AdaptorPnt2d_AIS.h
AdaptorVec_AIS.cxx
AdaptorVec_AIS.h
BaseSample.cxx
BaseSample.h
DataExchange.xml
DataExchangeSamples.cxx
DataExchangeSamples.h
Geometry.xml
GeometrySamples.cxx
GeometrySamples.h
MakeBottle.cxx
MakeBottle.h
Ocaf.xml
OcafSamples.cxx
OcafSamples.h
Sample2D_Face.cxx
Sample2D_Face.h
Sample2D_Image.cxx
Sample2D_Image.h
Sample2D_Markers.cxx
Sample2D_Markers.h
Samples.qrc
TOcafFunction_BoxDriver.cxx
TOcafFunction_BoxDriver.h
TOcafFunction_CutDriver.cxx
TOcafFunction_CutDriver.h
TOcafFunction_CylDriver.cxx
TOcafFunction_CylDriver.h
TOcaf_Application.cxx
TOcaf_Application.h
Topology.xml
TopologySamples.cxx
TopologySamples.h
Triangulation.xml
TriangulationSamples.cxx
TriangulationSamples.h
Viewer2d.xml
Viewer2dSamples.cxx
Viewer2dSamples.h
Viewer3d.xml
Viewer3dSamples.cxx
Viewer3dSamples.h

View File

@@ -1,9 +1,16 @@
project(AndroidQt)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
# Sample configuration
set (EXECUTABLE_PROJECT ON)
set (USE_QT ON)
set (RELATIVE_DIR "samples/qt")
set (TARGET_FOLDER "Samples")
include_directories("${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}/${RELATIVE_DIR}")
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
ADD_DEFINITIONS(-DNO_Common_EXPORTS)
# Target-specific definitions
target_compile_definitions(AndroidQt PRIVATE -DNO_Common_EXPORTS)

View File

@@ -1,17 +0,0 @@
TKernel
TKMath
TKG2d
TKG3d
TKGeomBase
TKBRep
TKGeomAlgo
TKTopAlgo
TKShHealing
TKService
TKMesh
TKHLR
TKV3d
TKOpenGl
CSF_FreeImagePlus
CSF_FREETYPE
CSF_OpenGlLibs

View File

@@ -0,0 +1,20 @@
# External dependencies for AndroidQt sample
set(OCCT_AndroidQt_EXTERNAL_LIBS
TKernel
TKMath
TKG2d
TKG3d
TKGeomBase
TKBRep
TKGeomAlgo
TKTopAlgo
TKShHealing
TKService
TKMesh
TKHLR
TKV3d
TKOpenGl
CSF_FreeImagePlus
CSF_FREETYPE
CSF_OpenGlLibs
)

View File

@@ -1,2 +0,0 @@
EXTERNLIB
PACKAGES

View File

@@ -0,0 +1,14 @@
# Source files for AndroidQt sample
set(OCCT_AndroidQt_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
set(OCCT_AndroidQt_FILES
src/AndroidQt.cxx
src/AndroidQt.h
src/AndroidQt.qrc
src/AndroidQt_TouchParameters.cxx
src/AndroidQt_TouchParameters.h
src/AndroidQt_UserInteractionParameters.h
src/AndroidQt_Window.cxx
src/AndroidQt_Window.h
src/Main.cxx
)

View File

@@ -1 +0,0 @@
AndroidQt/src

View File

@@ -0,0 +1,4 @@
# Packages for AndroidQt sample
set(OCCT_AndroidQt_LIST_OF_PACKAGES
AndroidQt
)

View File

@@ -1,9 +0,0 @@
AndroidQt.cxx
AndroidQt.h
AndroidQt.qrc
AndroidQt_TouchParameters.cxx
AndroidQt_TouchParameters.h
AndroidQt_UserInteractionParameters.h
AndroidQt_Window.cxx
AndroidQt_Window.h
Main.cxx

View File

@@ -1,17 +0,0 @@
ApplicationCommon.cxx
ApplicationCommon.h
Common-icon.ts
Common-string.ts
CommonSample.h
DocumentCommon.cxx
DocumentCommon.h
Material.cxx
Material.h
MDIWindow.cxx
MDIWindow.h
OcctWindow.cxx
OcctWindow.h
Transparency.cxx
Transparency.h
View.cxx
View.h

View File

@@ -1,8 +1,14 @@
project(FuncDemo)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
# Sample configuration
set (EXECUTABLE_PROJECT ON)
set (USE_QT ON)
set (RELATIVE_DIR "samples/qt")
set (TARGET_FOLDER "Samples")
include_directories("${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}/${RELATIVE_DIR}")
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
if (BUILD_Inspector)
target_link_libraries (FuncDemo TKTInspector)

View File

@@ -1,14 +0,0 @@
TKBO
TKBRep
TKCAF
TKCDF
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKernel
TKLCAF
TKMath
TKMesh
TKPrim
TKTopAlgo

View File

@@ -0,0 +1,17 @@
# External dependencies for FuncDemo sample
set(OCCT_FuncDemo_EXTERNAL_LIBS
TKBO
TKBRep
TKCAF
TKCDF
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKernel
TKLCAF
TKMath
TKMesh
TKPrim
TKTopAlgo
)

View File

@@ -1,2 +0,0 @@
EXTERNLIB
PACKAGES

View File

@@ -0,0 +1,33 @@
# Source files for FuncDemo sample
set(OCCT_FuncDemo_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
set(OCCT_FuncDemo_FILES
src/BaseDriver.cpp
src/BaseDriver.h
src/CircleDriver.cpp
src/CircleDriver.h
src/ConeDriver.cpp
src/ConeDriver.h
src/CylinderDriver.cpp
src/CylinderDriver.h
src/edge.cpp
src/edge.h
src/FThread.cpp
src/FThread.h
src/FuncDemo.qrc
src/graphwidget.cpp
src/graphwidget.h
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/node.cpp
src/node.h
src/PointDriver.cpp
src/PointDriver.h
src/PrismDriver.cpp
src/PrismDriver.h
src/ShapeSaverDriver.cpp
src/ShapeSaverDriver.h
src/SimpleDriver.cpp
src/SimpleDriver.h
)

View File

@@ -1 +0,0 @@
FuncDemo/src

View File

@@ -0,0 +1,4 @@
# Packages for FuncDemo sample
set(OCCT_FuncDemo_LIST_OF_PACKAGES
FuncDemo
)

View File

@@ -1,28 +0,0 @@
BaseDriver.cpp
BaseDriver.h
CircleDriver.cpp
CircleDriver.h
ConeDriver.cpp
ConeDriver.h
CylinderDriver.cpp
CylinderDriver.h
edge.cpp
edge.h
FILES
FThread.cpp
FThread.h
graphwidget.cpp
graphwidget.h
main.cpp
mainwindow.cpp
mainwindow.h
node.cpp
node.h
PointDriver.cpp
PointDriver.h
PrismDriver.cpp
PrismDriver.h
ShapeSaverDriver.cpp
ShapeSaverDriver.h
SimpleDriver.cpp
SimpleDriver.h

View File

@@ -1,11 +1,18 @@
project(IESample)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
include_directories("${CMAKE_SOURCE_DIR}/${RELATIVE_DIR}/Interface/src")
include_directories("${CMAKE_SOURCE_DIR}/${RELATIVE_DIR}/Common/src")
# Sample configuration
set (EXECUTABLE_PROJECT ON)
set (USE_QT ON)
set (RELATIVE_DIR "samples/qt")
set (TARGET_FOLDER "Samples")
include_directories("${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}/${RELATIVE_DIR}")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/Interface/src")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/Common/src")
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
ADD_DEFINITIONS(-DNO_COMMONSAMPLE_EXPORTS -DNO_IESAMPLE_EXPORTS)
# Target-specific definitions
target_compile_definitions(IESample PRIVATE -DNO_COMMONSAMPLE_EXPORTS -DNO_IESAMPLE_EXPORTS)

View File

@@ -1,26 +0,0 @@
TKBRep
TKBool
TKBO
TKCDF
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKHLR
TKDEIGES
TKernel
TKMath
TKMesh
TKOffset
TKOpenGl
TKPrim
TKShHealing
TKService
TKDESTEP
TKDESTL
TKTopAlgo
TKV3d
TKDEVRML
TKXSBase

View File

@@ -0,0 +1,28 @@
# External dependencies for IESample sample
set(OCCT_IESample_EXTERNAL_LIBS
TKBRep
TKBool
TKBO
TKCDF
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKHLR
TKDEIGES
TKernel
TKMath
TKMesh
TKOffset
TKOpenGl
TKPrim
TKShHealing
TKService
TKDESTEP
TKDESTL
TKTopAlgo
TKV3d
TKDEVRML
TKXSBase
)

View File

@@ -1,2 +0,0 @@
EXTERNLIB
PACKAGES

View File

@@ -0,0 +1,29 @@
# Source files for IESample sample
set(OCCT_IESample_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
set(OCCT_IESample_FILES
src/Main.cxx
../Common/src/ApplicationCommon.cxx
../Common/src/ApplicationCommon.h
../Common/src/Common-icon.ts
../Common/src/Common-string.ts
../Common/src/CommonSample.h
../Common/src/DocumentCommon.cxx
../Common/src/DocumentCommon.h
../Common/src/Material.cxx
../Common/src/Material.h
../Common/src/MDIWindow.cxx
../Common/src/MDIWindow.h
../Common/src/OcctWindow.cxx
../Common/src/OcctWindow.h
../Common/src/Transparency.cxx
../Common/src/Transparency.h
../Common/src/View.cxx
../Common/src/View.h
../Interface/src/Application.cxx
../Interface/src/Application.h
../Interface/src/IESample.h
../Interface/src/Interface-string.ts
../Interface/src/Translate.cxx
../Interface/src/Translate.h
)

View File

@@ -1,3 +0,0 @@
IESample/src
Common/src
Interface/src

View File

@@ -0,0 +1,4 @@
# Packages for IESample sample
set(OCCT_IESample_LIST_OF_PACKAGES
IESample
)

View File

@@ -1 +0,0 @@
Main.cxx

View File

@@ -1,6 +0,0 @@
Application.cxx
Application.h
IESample.h
Interface-string.ts
Translate.cxx
Translate.h

BIN
samples/qt/OCCTOverview/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -1,8 +1,18 @@
project(OCCTOverview)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
include_directories("${CMAKE_SOURCE_DIR}/${RELATIVE_DIR}/../OCCTOverview/code")
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit_prepare_sample)
# Sample configuration
set (EXECUTABLE_PROJECT ON)
set (USE_QT ON)
set (RELATIVE_DIR "samples/qt")
set (TARGET_FOLDER "Samples")
ADD_DEFINITIONS(-DNO_COMMONSAMPLE_EXPORTS -DNO_IESAMPLE_EXPORTS)
include_directories("${CMAKE_BINARY_DIR}/${INSTALL_DIR_INCLUDE}/${RELATIVE_DIR}")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/Common/src")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/Interface/src")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/OCCTOverview/src")
include_directories("${OCCT_ROOT_DIR}/${RELATIVE_DIR}/OCCTOverview/code")
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
# Target-specific definitions
target_compile_definitions(OCCTOverview PRIVATE -DNO_COMMONSAMPLE_EXPORTS -DNO_IESAMPLE_EXPORTS)

View File

@@ -1,30 +0,0 @@
TKBRep
TKBin
TKBool
TKBO
TKCDF
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKernel
TKHLR
TKDEIGES
TKMath
TKMesh
TKOffset
TKOpenGl
TKPrim
TKService
TKShHealing
TKDESTEP
TKDESTL
TKTopAlgo
TKV3d
TKDEVRML
TKXSBase
TKLCAF
TKCAF
TKVCAF
TKXml

View File

@@ -0,0 +1,33 @@
# External dependencies for OCCTOverview sample
set(OCCT_OCCTOverview_EXTERNAL_LIBS
TKBRep
TKBin
TKBool
TKBO
TKCDF
TKFillet
TKG2d
TKG3d
TKGeomAlgo
TKGeomBase
TKernel
TKHLR
TKDEIGES
TKMath
TKMesh
TKOffset
TKOpenGl
TKPrim
TKService
TKShHealing
TKDESTEP
TKDESTL
TKTopAlgo
TKV3d
TKDEVRML
TKXSBase
TKLCAF
TKCAF
TKVCAF
TKXml
)

View File

@@ -1,2 +0,0 @@
EXTERNLIB
PACKAGES

View File

@@ -0,0 +1,72 @@
# Source files for OCCTOverview sample
set(OCCT_OCCTOverview_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
set(OCCT_OCCTOverview_FILES
src/ApplicationCommon.cxx
src/ApplicationCommon.h
src/CommonSample.h
src/DocumentCommon.cxx
src/DocumentCommon.h
src/GeomWidget.cxx
src/GeomWidget.h
src/Main.cxx
src/OcctHighlighter.cxx
src/OcctHighlighter.h
src/OcctWindow.cxx
src/OcctWindow.h
src/OCCTOverview.qrc
src/TranslateDialog.h
src/TranslateDialog.cxx
src/Transparency.cxx
src/Transparency.h
src/View.cxx
src/View.h
code/AdaptorCurve2d_AIS.cxx
code/AdaptorCurve2d_AIS.h
code/AdaptorCurve_AIS.cxx
code/AdaptorCurve_AIS.h
code/AdaptorPnt2d_AIS.cxx
code/AdaptorPnt2d_AIS.h
code/AdaptorVec_AIS.cxx
code/AdaptorVec_AIS.h
code/BaseSample.cxx
code/BaseSample.h
code/DataExchange.xml
code/DataExchangeSamples.cxx
code/DataExchangeSamples.h
code/Geometry.xml
code/GeometrySamples.cxx
code/GeometrySamples.h
code/MakeBottle.cxx
code/MakeBottle.h
code/Ocaf.xml
code/OcafSamples.cxx
code/OcafSamples.h
code/Sample2D_Face.cxx
code/Sample2D_Face.h
code/Sample2D_Image.cxx
code/Sample2D_Image.h
code/Sample2D_Markers.cxx
code/Sample2D_Markers.h
code/Samples.qrc
code/TOcafFunction_BoxDriver.cxx
code/TOcafFunction_BoxDriver.h
code/TOcafFunction_CutDriver.cxx
code/TOcafFunction_CutDriver.h
code/TOcafFunction_CylDriver.cxx
code/TOcafFunction_CylDriver.h
code/TOcaf_Application.cxx
code/TOcaf_Application.h
code/Topology.xml
code/TopologySamples.cxx
code/TopologySamples.h
code/Triangulation.xml
code/TriangulationSamples.cxx
code/TriangulationSamples.h
code/Viewer2d.xml
code/Viewer2dSamples.cxx
code/Viewer2dSamples.h
code/Viewer3d.xml
code/Viewer3dSamples.cxx
code/Viewer3dSamples.h
)

View File

@@ -17,19 +17,19 @@ isEmpty(CSF_OCCTSamplesPath) {
HEADERS = ./src/*.h \
$${SAMPLESROOT}/../OCCTOverview/code/*.h
./code/*.h
SOURCES = ./src/*.cxx \
$${SAMPLESROOT}/../OCCTOverview/code/*.cxx
./code/*.cxx
RESOURCES += $${SAMPLESROOT}/../OCCTOverview/code/Samples.qrc
RESOURCES += ./code/Samples.qrc
RESOURCES += ./src/OCCTOverview.qrc
RES_DIR = $$quote($$(RES_DIR))
INCLUDEPATH += $$quote($$(CSF_SampleSources))
INCLUDEPATH += $$quote($$(CSF_OCCTIncludePath)) \
$${SAMPLESROOT}/../OCCTOverview/code
$${SAMPLESROOT}/qt/OCCTOverview/code
OCCT_DEFINES = $$(CSF_DEFINES)

View File

@@ -1,2 +0,0 @@
OCCTOverview/src
/../OCCTOverview/code

View File

@@ -0,0 +1,4 @@
# Packages for OCCTOverview sample
set(OCCT_OCCTOverview_LIST_OF_PACKAGES
OCCTOverview
)

Some files were not shown because too many files have changed in this diff Show More