mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Compare commits
1 Commits
deg_curve_
...
CR33845
Author | SHA1 | Date | |
---|---|---|---|
|
d951f24955 |
@@ -1,41 +0,0 @@
|
||||
# clang-format configuration file trying to apply OCCT coding style
|
||||
#
|
||||
# Clang formatting rules: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
# The clang-format npm package (https://github.com/angular/clang-format) uses
|
||||
# a pre-built clang-format.exe from http://llvm.org/builds/
|
||||
#
|
||||
# We use defaults from the Microsoft style
|
||||
BasedOnStyle: Microsoft
|
||||
#
|
||||
# Style options
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowAllArgumentsOnNextLine: false
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: Consecutive
|
||||
AlignConsecutiveDeclarations: Consecutive
|
||||
AlignTrailingComments: true
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeTernaryOperators: true
|
||||
ColumnLimit: 100
|
||||
ContinuationIndentWidth: 2
|
||||
IndentCaseLabels: true
|
||||
IndentPPDirectives: BeforeHash
|
||||
IndentWidth: 2
|
||||
IndentWrappedFunctionNames: true
|
||||
PackConstructorInitializers: Never
|
||||
PointerAlignment: Left
|
||||
ReferenceAlignment: Left
|
||||
SeparateDefinitionBlocks: Always
|
||||
SortIncludes: false
|
||||
UseTab: Never
|
||||
#
|
||||
# OCCT specific settings
|
||||
StatementMacros:
|
||||
- Standard_FALLTHROUGH
|
||||
- Standard_DEPRECATED
|
||||
TypenameMacros:
|
||||
- Handle
|
@@ -1,2 +0,0 @@
|
||||
# Global formatting with new rules using clang-format 18.1.8
|
||||
a5a7b3185b83c39d5b26cfaf138b9b87b5776e59
|
102
.github/ISSUE_TEMPLATE/Application Framework Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Application Framework Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Application Framework Bug Report"
|
||||
description: "Report a bug related to the Application Framework"
|
||||
labels: ["1. Application Framework", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Application Framework Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Application Framework Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Application Framework Feature Request"
|
||||
description: "Request a new feature or enhancement for the Application Framework"
|
||||
labels: ["1. Application Framework", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Build Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Build Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Build Bug Report"
|
||||
description: "Report a bug related to the build process"
|
||||
labels: ["1. Build", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Build Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Build Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Build Feature Request"
|
||||
description: "Request a new feature or enhancement for the build process"
|
||||
labels: ["1. Build", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Coding Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Coding Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Coding Bug Report"
|
||||
description: "Report a bug related to coding"
|
||||
labels: ["1. Coding", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Coding Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Coding Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Coding Feature Request"
|
||||
description: "Request a new feature or enhancement for coding"
|
||||
labels: ["1. Coding", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Configuration Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Configuration Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Configuration Bug Report"
|
||||
description: "Report a bug related to configuration"
|
||||
labels: ["1. Configuration", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Configuration Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Configuration Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Configuration Feature Request"
|
||||
description: "Request a new feature or enhancement for configuration"
|
||||
labels: ["1. Configuration", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
@@ -1,6 +1,6 @@
|
||||
name: "Bug Report"
|
||||
description: "Report a bug related to the OCCT"
|
||||
labels: ["2. Bug", "0. New"]
|
||||
name: "DRAW Bug Report"
|
||||
description: "Report a bug related to DRAW"
|
||||
labels: ["1. 2. Bug", "DRAW"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
@@ -43,7 +43,6 @@ body:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -55,9 +54,13 @@ body:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
@@ -66,7 +69,6 @@ body:
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
default: 1
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -78,13 +80,21 @@ body:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.7
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
default: 6
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
@@ -1,6 +1,6 @@
|
||||
name: "Feature Request"
|
||||
description: "Request a new feature or enhancement for the OCCT"
|
||||
labels: ["2. Enhancement", "0. New"]
|
||||
name: "DRAW Feature Request"
|
||||
description: "Request a new feature related to DRAW"
|
||||
labels: ["1. Enhancement", "DRAW"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
102
.github/ISSUE_TEMPLATE/Data Exchange Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Data Exchange Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Data Exchange Bug Report"
|
||||
description: "Report a bug related to data exchange"
|
||||
labels: ["1. Data Exchange", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Data Exchange Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Data Exchange Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Data Exchange Feature Request"
|
||||
description: "Request a new feature or enhancement for data exchange"
|
||||
labels: ["1. Data Exchange", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Documentation Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Documentation Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Documentation Bug Report"
|
||||
description: "Report a bug related to documentation"
|
||||
labels: ["1. Documentation", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Documentation Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Documentation Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Documentation Feature Request"
|
||||
description: "Request a new feature or enhancement for documentation"
|
||||
labels: ["1. Documentation", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Foundation Classes Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Foundation Classes Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Foundation Classes Bug Report"
|
||||
description: "Report a bug related to Foundation Classes"
|
||||
labels: ["1. Foundation Classes", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Foundation Classes Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Foundation Classes Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Foundation Classes Feature Request"
|
||||
description: "Request a new feature or enhancement for Foundation Classes"
|
||||
labels: ["1. Foundation Classes", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Mesh Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Mesh Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Mesh Bug Report"
|
||||
description: "Report a bug related to Mesh"
|
||||
labels: ["1. Mesh", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Mesh Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Mesh Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Mesh Feature Request"
|
||||
description: "Request a new feature or enhancement for Mesh"
|
||||
labels: ["1. Mesh", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Modeling Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Modeling Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Modeling Bug Report"
|
||||
description: "Report a bug related to Modeling"
|
||||
labels: ["1. Modeling", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Modeling Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Modeling Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Modeling Feature Request"
|
||||
description: "Request a new feature or enhancement for Modeling"
|
||||
labels: ["1. Modeling", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Samples Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Samples Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Samples Bug Report"
|
||||
description: "Report a bug related to Samples"
|
||||
labels: ["1. Samples", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Samples Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Samples Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Samples Feature Request"
|
||||
description: "Request a new feature or enhancement for Samples"
|
||||
labels: ["1. Samples", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Shape Healing Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Shape Healing Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Shape Healing Bug Report"
|
||||
description: "Report a bug related to Shape Healing"
|
||||
labels: ["1. Shape Healing", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Shape Healing Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Shape Healing Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Shape Healing Feature Request"
|
||||
description: "Request a new feature or enhancement for Shape Healing"
|
||||
labels: ["1. Shape Healing", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Testing Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Testing Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Testing Bug Report"
|
||||
description: "Report a bug related to Testing"
|
||||
labels: ["1. Testing", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Testing Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Testing Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Testing Feature Request"
|
||||
description: "Request a new feature or enhancement for Testing"
|
||||
labels: ["1. Testing", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
102
.github/ISSUE_TEMPLATE/Visualization Bug Report.yaml
vendored
Normal file
102
.github/ISSUE_TEMPLATE/Visualization Bug Report.yaml
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
name: "Visualization Bug Report"
|
||||
description: "Report a bug related to Visualization"
|
||||
labels: ["1. Visualization", "2. Bug"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the bug"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected_behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: "What you expected to happen"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual_behavior
|
||||
attributes:
|
||||
label: Actual Behavior
|
||||
description: "What actually happened"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: sample_code
|
||||
attributes:
|
||||
label: Sample Code or DRAW Tcl Script
|
||||
description: "Provide a C++ sample or DRAW Tcl script to reproduce the issue"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system"
|
||||
options:
|
||||
- Linux
|
||||
- Windows
|
||||
- macOS
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: compiler
|
||||
attributes:
|
||||
label: Compiler
|
||||
description: "Select the compiler"
|
||||
options:
|
||||
- GCC
|
||||
- Clang
|
||||
- MSVC
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: compiler_version
|
||||
attributes:
|
||||
label: Compiler Version
|
||||
description: "Specify the compiler version (optional)"
|
||||
- type: dropdown
|
||||
id: bitness
|
||||
attributes:
|
||||
label: Bitness
|
||||
description: "Select the bitness"
|
||||
options:
|
||||
- 32-bit
|
||||
- 64-bit
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: occt_version
|
||||
attributes:
|
||||
label: OCCT Version
|
||||
description: "Select the OCCT version where the issue was detected"
|
||||
options:
|
||||
- 7.4
|
||||
- 7.5
|
||||
- 7.6
|
||||
- 7.8
|
||||
- 7.9
|
||||
- latest
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: precise_occt_version
|
||||
attributes:
|
||||
label: Precise OCCT Version or Branch
|
||||
description: "Specify the precise OCCT version, branch, or SSH (optional)"
|
||||
- type: input
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: "Details about your environment (OS, compiler, etc.)"
|
||||
- type: textarea
|
||||
id: additional_files
|
||||
attributes:
|
||||
label: Additional Files
|
||||
description: "Attach any additional files that may help in reproducing the issue"
|
34
.github/ISSUE_TEMPLATE/Visualization Feature Request.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/Visualization Feature Request.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: "Visualization Feature Request"
|
||||
description: "Request a new feature or enhancement for Visualization"
|
||||
labels: ["1. Visualization", "2. Enhancement"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Please provide the following information:**
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: "A detailed description of the feature request"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use_case
|
||||
attributes:
|
||||
label: Use Case
|
||||
description: "Describe the use case for the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: "Explain the benefits of the feature"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "Any additional context or information"
|
18
.github/actions/setup-xvfb-mesa/action.yml
vendored
18
.github/actions/setup-xvfb-mesa/action.yml
vendored
@@ -1,18 +0,0 @@
|
||||
name: 'Setup Xvfb and Mesa'
|
||||
description: 'Installs and configures Xvfb and Mesa for graphical testing on Linux'
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Install Xvfb and Mesa
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb mesa-utils libgl1-mesa-dri
|
||||
shell: bash
|
||||
|
||||
- name: Start Xvfb
|
||||
run: |
|
||||
Xvfb :99 -screen 0 1920x1080x24 &
|
||||
echo "DISPLAY=:99" >> $GITHUB_ENV
|
||||
echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV
|
||||
shell: bash
|
32
.github/actions/testgrid/testlinuxclang.tcl
vendored
32
.github/actions/testgrid/testlinuxclang.tcl
vendored
@@ -1,32 +0,0 @@
|
||||
set exclude_list [list \
|
||||
"bugs caf bug31075" \
|
||||
"bugs caf bug31546" \
|
||||
"bugs fclasses bug6143" \
|
||||
"bugs fclasses bug25574" \
|
||||
"bugs fclasses bug29064" \
|
||||
"bugs fclasses bug7287_3" \
|
||||
"bugs fclasses bug7287_5" \
|
||||
"bugs moddata_2 bug712_2" \
|
||||
"bugs moddata_1 bug20627" \
|
||||
"collections n arrayMove" \
|
||||
"lowalgos intss bug565" \
|
||||
"lowalgos intss bug567_1" \
|
||||
"lowalgos intss bug23972" \
|
||||
"lowalgos intss bug29910_2" \
|
||||
"opengl background bug27836" \
|
||||
"opengl text C4" \
|
||||
"opengles3 background bug27836" \
|
||||
"opengles3 general msaa" \
|
||||
"opengles3 geom interior1" \
|
||||
"opengles3 geom interior2" \
|
||||
"opengles3 raytrace msaa" \
|
||||
"opengles3 text C4" \
|
||||
"opengles3 textures alpha_mask" \
|
||||
"boolean bopfuse_simple ZP6" \
|
||||
"boolean gdml_private B5" \
|
||||
"bugs modalg_1 bug19071" \
|
||||
"bugs modalg_5 bug25199"
|
||||
]
|
||||
|
||||
set exclude_str [join $exclude_list ,]
|
||||
testgrid -exclude {*}$exclude_str -outdir results/linux-clang-x64
|
28
.github/actions/testgrid/testlinuxgcc.tcl
vendored
28
.github/actions/testgrid/testlinuxgcc.tcl
vendored
@@ -1,28 +0,0 @@
|
||||
set exclude_list [list \
|
||||
"bugs caf bug31075" \
|
||||
"bugs caf bug31546" \
|
||||
"bugs fclasses bug6143" \
|
||||
"bugs moddata_2 bug712_2" \
|
||||
"bugs moddata_1 bug20627" \
|
||||
"bugs modalg_6 bug27884" \
|
||||
"lowalgos intss bug565" \
|
||||
"lowalgos intss bug567_1" \
|
||||
"lowalgos intss bug23972" \
|
||||
"lowalgos intss bug29910_2" \
|
||||
"opengl background bug27836" \
|
||||
"opengl text C4" \
|
||||
"opengles3 background bug27836" \
|
||||
"opengles3 general msaa" \
|
||||
"opengles3 geom interior1" \
|
||||
"opengles3 geom interior2" \
|
||||
"opengles3 raytrace msaa" \
|
||||
"opengles3 text C4" \
|
||||
"opengles3 textures alpha_mask" \
|
||||
"boolean bopfuse_simple ZP6" \
|
||||
"boolean gdml_private B5" \
|
||||
"bugs modalg_1 bug19071" \
|
||||
"bugs modalg_5 bug25199"
|
||||
]
|
||||
|
||||
set exclude_str [join $exclude_list ,]
|
||||
testgrid -exclude {*}$exclude_str -outdir results/linux-gcc-x64
|
1
.github/actions/testgrid/testmacos.tcl
vendored
1
.github/actions/testgrid/testmacos.tcl
vendored
@@ -1 +0,0 @@
|
||||
testgrid -outdir results/macos-x64 caf basic
|
1
.github/actions/testgrid/testmacosgcc.tcl
vendored
1
.github/actions/testgrid/testmacosgcc.tcl
vendored
@@ -1 +0,0 @@
|
||||
testgrid -outdir results/macos-gcc-x64 caf basic
|
24
.github/actions/testgrid/testwindows.tcl
vendored
24
.github/actions/testgrid/testwindows.tcl
vendored
@@ -1,24 +0,0 @@
|
||||
set exclude_list [list \
|
||||
"bugs fclasses bug6143" \
|
||||
"bugs modalg_5 bug24639" \
|
||||
"bugs modalg_7 bug83" \
|
||||
"bugs caf bug31918_1" \
|
||||
"chamfer dist_angle_sequence A5" \
|
||||
"opengl background bug27836" \
|
||||
"opengl drivers d3dhost" \
|
||||
"opengl background srgb" \
|
||||
"opengl text C4" \
|
||||
"opengles2 text C4" \
|
||||
"opengles3 text C4" \
|
||||
"boolean gdml_private B5" \
|
||||
"chamfer dist_angle A3" \
|
||||
"chamfer dist_angle E5" \
|
||||
"chamfer dist_angle_complex A1" \
|
||||
"chamfer dist_angle_complex A4" \
|
||||
"chamfer dist_angle_complex A5" \
|
||||
"chamfer dist_angle_sequence A1" \
|
||||
"chamfer dist_angle_sequence A4"
|
||||
]
|
||||
|
||||
set exclude_str [join $exclude_list ,]
|
||||
testgrid -exclude {*}$exclude_str -outdir results/windows-x64
|
25
.github/actions/testgrid/testwindowsclang.tcl
vendored
25
.github/actions/testgrid/testwindowsclang.tcl
vendored
@@ -1,25 +0,0 @@
|
||||
set exclude_list [list \
|
||||
"bugs caf bug31918_1" \
|
||||
"bugs fclasses bug6143" \
|
||||
"bugs fclasses bug25574" \
|
||||
"bugs fclasses bug29064" \
|
||||
"chamfer dist_angle_sequence A5" \
|
||||
"collections n arrayMove" \
|
||||
"opengl background bug27836" \
|
||||
"opengl drivers d3dhost" \
|
||||
"opengl background srgb" \
|
||||
"opengl text C4" \
|
||||
"opengles2 text C4" \
|
||||
"opengles3 text C4" \
|
||||
"boolean gdml_private B5" \
|
||||
"chamfer dist_angle A3" \
|
||||
"chamfer dist_angle E5" \
|
||||
"chamfer dist_angle_complex A1" \
|
||||
"chamfer dist_angle_complex A4" \
|
||||
"chamfer dist_angle_complex A5" \
|
||||
"chamfer dist_angle_sequence A1" \
|
||||
"chamfer dist_angle_sequence A4"
|
||||
]
|
||||
|
||||
set exclude_str [join $exclude_list ,]
|
||||
testgrid -exclude {*}$exclude_str -outdir results/windows-clang-x64
|
1304
.github/workflows/build-and-test-multiplatform.yml
vendored
1304
.github/workflows/build-and-test-multiplatform.yml
vendored
File diff suppressed because it is too large
Load Diff
36
.github/workflows/build-docs.yml
vendored
36
.github/workflows/build-docs.yml
vendored
@@ -1,4 +1,4 @@
|
||||
# This workflow builds the OCCT reference manual and overview documentations.
|
||||
# This workflow builds the OCCT reference manual documentation.
|
||||
# It is triggered on pushes to the 'master' branch.
|
||||
# The workflow includes steps to checkout the repository, install dependencies, build the documentation, and upload the generated documentation and logs as artifacts.
|
||||
|
||||
@@ -12,48 +12,34 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
name: Build Refman Documentation
|
||||
runs-on: windows-2022
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
# Step: Checkout the repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.2.1
|
||||
|
||||
# Step: Install necessary dependencies for building the documentation
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
choco install -y graphviz
|
||||
choco install -y doxygen.install
|
||||
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 doxygen graphviz
|
||||
|
||||
- name: Build refman documentation
|
||||
run: |
|
||||
set PATH=%PATH%;C:\Program Files\doxygen\bin;C:\Program Files\Graphviz\bin;C:\Program Files\doxygen
|
||||
cd adm
|
||||
bash gendoc -refman
|
||||
shell: cmd
|
||||
# Step: Build the reference manual documentation
|
||||
- name: Build documentation
|
||||
run: bash gendoc -refman
|
||||
|
||||
# Step: Upload the generated reference manual documentation as an artifact
|
||||
- name: Upload refman documentation
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
id: artifact-upload-step
|
||||
with:
|
||||
name: refman-doc
|
||||
path: doc/refman
|
||||
retention-days: 90
|
||||
|
||||
# Step: Upload the documentation generation log as an artifact
|
||||
- name: Upload generation log
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: doxygen.log
|
||||
path: doc/html_doxygen_err.log
|
||||
retention-days: 90
|
||||
|
||||
- name: Build documentation Overview
|
||||
run: |
|
||||
set PATH=%PATH%;C:\Program Files\doxygen\bin;C:\Program Files\Graphviz\bin;C:\Program Files\doxygen
|
||||
cd adm
|
||||
bash gendoc -overview
|
||||
shell: cmd
|
||||
|
||||
- name: Upload overview documentation
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: overview-doc
|
||||
path: doc/overview
|
||||
retention-days: 90
|
||||
|
216
.github/workflows/build-multiconfig-mingw.yml
vendored
216
.github/workflows/build-multiconfig-mingw.yml
vendored
@@ -1,216 +0,0 @@
|
||||
# This workflow validates the build on Windows using MinGW and MSYS2.
|
||||
# It is triggered on pushes to the master branch.
|
||||
# The workflow includes steps to install dependencies, configure, build, and clean up the project.
|
||||
|
||||
name: MinGW build validation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
main_job:
|
||||
name: Windows MinGW validation
|
||||
runs-on: windows-2022
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: "GCC",
|
||||
cc: "x86_64-w64-mingw32-gcc",
|
||||
cxx: "x86_64-w64-mingw32-g++",
|
||||
package: "mingw-w64-x86_64-toolchain",
|
||||
thirdparty_dir: "/mingw64",
|
||||
dependencies: "mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-rapidjson mingw-w64-x86_64-freetype mingw-w64-x86_64-draco mingw-w64-x86_64-freeimage mingw-w64-x86_64-tbb mingw-w64-x86_64-tk mingw-w64-x86_64-tcl mingw-w64-x86_64-openvr mingw-w64-x86_64-jemalloc mingw-w64-x86_64-mesa mingw-w64-x86_64-angleproject mingw-w64-x86_64-llvm-openmp mingw-w64-x86_64-winpthreads-git mingw-w64-x86_64-libwinpthread-git mingw-w64-cross-mingwarm64-winpthreads"
|
||||
}
|
||||
- {
|
||||
name: "Clang",
|
||||
cc: "clang",
|
||||
cxx: "clang++",
|
||||
package: "mingw-w64-clang-x86_64-toolchain",
|
||||
thirdparty_dir: "/clang64",
|
||||
dependencies: "mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-ninja mingw-w64-clang-x86_64-rapidjson mingw-w64-clang-x86_64-freetype mingw-w64-clang-x86_64-draco mingw-w64-clang-x86_64-freeimage mingw-w64-clang-x86_64-tbb mingw-w64-clang-x86_64-tk mingw-w64-clang-x86_64-tcl mingw-w64-clang-x86_64-openvr mingw-w64-clang-x86_64-jemalloc mingw-w64-clang-x86_64-mesa mingw-w64-clang-x86_64-angleproject mingw-w64-clang-x86_64-llvm-openmp mingw-w64-clang-x86_64-winpthreads-git mingw-w64-clang-x86_64-libwinpthread-git mingw-w64-cross-mingwarm64-winpthreads"
|
||||
}
|
||||
- {
|
||||
name: "UCRT",
|
||||
cc: "x86_64-w64-mingw32-gcc",
|
||||
cxx: "x86_64-w64-mingw32-g++",
|
||||
package: "mingw-w64-ucrt-x86_64-toolchain",
|
||||
thirdparty_dir: "/ucrt64",
|
||||
dependencies: "mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gcc-libs mingw-w64-ucrt-x86_64-omp mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja mingw-w64-ucrt-x86_64-rapidjson mingw-w64-ucrt-x86_64-freetype mingw-w64-ucrt-x86_64-draco mingw-w64-ucrt-x86_64-freeimage mingw-w64-ucrt-x86_64-tbb mingw-w64-ucrt-x86_64-tk mingw-w64-ucrt-x86_64-tcl mingw-w64-ucrt-x86_64-openvr mingw-w64-ucrt-x86_64-jemalloc mingw-w64-ucrt-x86_64-mesa mingw-w64-ucrt-x86_64-angleproject mingw-w64-ucrt-x86_64-llvm-openmp mingw-w64-ucrt-x86_64-winpthreads-git mingw-w64-ucrt-x86_64-libwinpthread-git mingw-w64-cross-mingwarm64-winpthreads"
|
||||
}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Set up MSYS2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: ${{ matrix.config.name == 'Clang' && 'CLANG64' || matrix.config.name == 'UCRT' && 'UCRT64' || 'MINGW64' }}
|
||||
update: true
|
||||
install: ${{ matrix.config.package }} ${{ matrix.config.dependencies }}
|
||||
|
||||
- name: Setup environment
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
echo "Checking compiler version:"
|
||||
${{ matrix.config.cc }} --version
|
||||
echo "Checking CMake version:"
|
||||
cmake --version
|
||||
echo "Setting up environment variables..."
|
||||
echo "$MSYSTEM_PREFIX/bin" >> $GITHUB_PATH
|
||||
echo "CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure basic
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX \
|
||||
-D CMAKE_CXX_FLAGS="-Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Wall -Wextra" ..
|
||||
|
||||
- name: Build basic
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
shell: pwsh
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
|
||||
- name: Configure full shared
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Shared \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D USE_MMGR_TYPE=JEMALLOC \
|
||||
-D INSTALL_DIR="${{ github.workspace }}/install" \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=OFF \
|
||||
-D USE_TBB=OFF \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Wall -Wextra" ..
|
||||
|
||||
- name: Build full shared
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
shell: pwsh
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
||||
|
||||
- name: Configure full static
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Static \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D USE_MMGR_TYPE=JEMALLOC \
|
||||
-D INSTALL_DIR="${{ github.workspace }}/install" \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=OFF \
|
||||
-D USE_TBB=OFF \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Wall -Wextra" ..
|
||||
|
||||
- name: Build full static
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
shell: pwsh
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
||||
|
||||
- name: Configure full with DEBUG define
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D CMAKE_PREFIX_PATH=$MSYSTEM_PREFIX \
|
||||
-D BUILD_WITH_DEBUG=ON \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Shared \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D INSTALL_DIR="${{ github.workspace }}/install" \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=OFF \
|
||||
-D USE_TBB=OFF \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON ..
|
||||
|
||||
- name: Build full with DEBUG define
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
shell: pwsh
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
213
.github/workflows/build-multiconfig-msvc.yml
vendored
213
.github/workflows/build-multiconfig-msvc.yml
vendored
@@ -1,213 +0,0 @@
|
||||
# This workflow validates the build on Windows using MSVC and Clang compilers.
|
||||
# It is triggered on pushes to the master branch.
|
||||
# The workflow includes steps to install dependencies, configure, build, and clean up the project for different configurations.
|
||||
|
||||
name: MSVC build validation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
main_job:
|
||||
name: Windows MSVC/Clang validation
|
||||
runs-on: windows-2022
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: "MSVC",
|
||||
cc: "cl",
|
||||
cxx: "cl",
|
||||
generator: "Visual Studio 17 2022",
|
||||
toolset: "host=x64",
|
||||
c_flags: "/W4 /WX",
|
||||
cxx_flags: "/W4 /WX"
|
||||
}
|
||||
- {
|
||||
name: "Clang",
|
||||
cc: "clang",
|
||||
cxx: "clang++",
|
||||
generator: "Ninja",
|
||||
toolset: "",
|
||||
c_flags: "-Werror -Wall -Wextra -Wno-unknown-warning-option",
|
||||
cxx_flags: "-Werror -Wall -Wextra -Wno-unknown-warning-option"
|
||||
}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Set up MSVC
|
||||
uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||
with:
|
||||
arch: x64
|
||||
|
||||
- name: Download and extract 3rdparty dependencies
|
||||
run: |
|
||||
Invoke-WebRequest -Uri https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_8_0/3rdparty-vc14-64.zip -OutFile 3rdparty-vc14-64.zip
|
||||
Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath .
|
||||
Remove-Item 3rdparty-vc14-64.zip
|
||||
shell: pwsh
|
||||
|
||||
- name: Download and extract Mesa3D
|
||||
run: |
|
||||
curl -L -o mesa3d.7z https://github.com/pal1000/mesa-dist-win/releases/download/24.3.2/mesa3d-24.3.2-release-mingw.7z
|
||||
7z x mesa3d.7z -omesa3d
|
||||
|
||||
- name: Run system-wide deployment
|
||||
run: |
|
||||
cd mesa3d
|
||||
.\systemwidedeploy.cmd 1
|
||||
.\systemwidedeploy.cmd 5
|
||||
shell: cmd
|
||||
|
||||
- name: Configure basic
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ matrix.config.generator }}" ${{ matrix.config.toolset }} `
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} `
|
||||
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
|
||||
-D CMAKE_CXX_FLAGS="${{ matrix.config.cxx_flags }}" `
|
||||
-D CMAKE_C_FLAGS="${{ matrix.config.c_flags }}" ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build basic
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --config Release
|
||||
shell: pwsh
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
shell: pwsh
|
||||
|
||||
- name: Configure full shared
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ matrix.config.generator }}" ${{ matrix.config.toolset }} `
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} `
|
||||
-D BUILD_USE_PCH=OFF `
|
||||
-D BUILD_INCLUDE_SYMLINK=ON `
|
||||
-D BUILD_OPT_PROFILE=Production `
|
||||
-D BUILD_LIBRARY_TYPE=Shared `
|
||||
-D CMAKE_BUILD_TYPE=Debug `
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install `
|
||||
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
|
||||
-D USE_MMGR_TYPE=JEMALLOC `
|
||||
-D USE_FREETYPE=ON `
|
||||
-D USE_DRACO=ON `
|
||||
-D USE_FFMPEG=ON `
|
||||
-D USE_FREEIMAGE=ON `
|
||||
-D USE_GLES2=ON `
|
||||
-D USE_OPENVR=ON `
|
||||
-D USE_VTK=${{ matrix.config.name == 'MSVC' && 'ON' || 'OFF' }} `
|
||||
-D USE_TBB=ON `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON `
|
||||
-D CMAKE_CXX_FLAGS="${{ matrix.config.cxx_flags }}" `
|
||||
-D CMAKE_C_FLAGS="${{ matrix.config.c_flags }}" ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build full shared
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug
|
||||
shell: pwsh
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
||||
shell: pwsh
|
||||
|
||||
- name: Configure full static
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ matrix.config.generator }}" ${{ matrix.config.toolset }} `
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} `
|
||||
-D BUILD_USE_PCH=OFF `
|
||||
-D BUILD_INCLUDE_SYMLINK=ON `
|
||||
-D BUILD_OPT_PROFILE=Production `
|
||||
-D BUILD_LIBRARY_TYPE=Static `
|
||||
-D CMAKE_BUILD_TYPE=Debug `
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install `
|
||||
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
|
||||
-D USE_MMGR_TYPE=JEMALLOC `
|
||||
-D USE_FREETYPE=ON `
|
||||
-D USE_DRACO=ON `
|
||||
-D USE_FFMPEG=ON `
|
||||
-D USE_FREEIMAGE=ON `
|
||||
-D USE_GLES2=ON `
|
||||
-D USE_OPENVR=ON `
|
||||
-D USE_VTK=OFF `
|
||||
-D USE_TBB=ON `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON `
|
||||
-D CMAKE_CXX_FLAGS="${{ matrix.config.cxx_flags }}" `
|
||||
-D CMAKE_C_FLAGS="${{ matrix.config.c_flags }}" ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build full static
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug
|
||||
shell: pwsh
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
||||
shell: pwsh
|
||||
|
||||
- name: Configure full with DEBUG define
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "${{ matrix.config.generator }}" ${{ matrix.config.toolset }} `
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} `
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} `
|
||||
-D BUILD_WITH_DEBUG=ON `
|
||||
-D BUILD_USE_PCH=OFF `
|
||||
-D BUILD_INCLUDE_SYMLINK=ON `
|
||||
-D BUILD_OPT_PROFILE=Production `
|
||||
-D BUILD_LIBRARY_TYPE=Shared `
|
||||
-D CMAKE_BUILD_TYPE=Debug `
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install `
|
||||
-D 3RDPARTY_DIR=${{ github.workspace }}/3rdparty-vc14-64 `
|
||||
-D USE_FREETYPE=ON `
|
||||
-D USE_DRACO=ON `
|
||||
-D USE_FFMPEG=ON `
|
||||
-D USE_FREEIMAGE=ON `
|
||||
-D USE_GLES2=ON `
|
||||
-D USE_OPENVR=ON `
|
||||
-D USE_VTK=${{ matrix.config.name == 'MSVC' && 'ON' || 'OFF' }} `
|
||||
-D USE_TBB=ON `
|
||||
-D USE_RAPIDJSON=ON `
|
||||
-D USE_OPENGL=ON ` ..
|
||||
shell: pwsh
|
||||
|
||||
- name: Build full with DEBUG define
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug
|
||||
shell: pwsh
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
Remove-Item -Recurse -Force build
|
||||
Remove-Item -Recurse -Force ${{ github.workspace }}/install
|
||||
shell: pwsh
|
179
.github/workflows/build-multiconfig-ubuntu.yml
vendored
179
.github/workflows/build-multiconfig-ubuntu.yml
vendored
@@ -1,179 +0,0 @@
|
||||
# This workflow validates the build on the latest Ubuntu version (24.04) using multiple configurations.
|
||||
# It is triggered on pushes to the master branch.
|
||||
# The workflow includes steps to install dependencies, configure, build, and clean up the project for different configurations.
|
||||
|
||||
name: Ubuntu build validation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
main_job:
|
||||
name: Latest ubuntu validation
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: "GCC",
|
||||
cc: "gcc",
|
||||
cxx: "g++"
|
||||
}
|
||||
- {
|
||||
name: "Clang",
|
||||
cc: "clang",
|
||||
cxx: "clang++"
|
||||
}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y ninja-build tcl-dev tk-dev cmake clang gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev libjemalloc-dev
|
||||
|
||||
- name: Install rapidjson
|
||||
run: |
|
||||
wget https://github.com/Tencent/rapidjson/archive/858451e5b7d1c56cf8f6d58f88cf958351837e53.zip -O rapidjson.zip
|
||||
unzip rapidjson.zip
|
||||
|
||||
- name: Configure basic
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
- name: Build basic
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
rm -rf build
|
||||
|
||||
- name: Configure full shared
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Shared \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D USE_MMGR_TYPE=JEMALLOC \
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install \
|
||||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=ON \
|
||||
-D USE_TBB=ON \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
- name: Build full shared
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
rm -rf build
|
||||
rm -rf ${{ github.workspace }}/install
|
||||
|
||||
- name: Configure full static
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Static \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D USE_MMGR_TYPE=JEMALLOC \
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install \
|
||||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=OFF \
|
||||
-D USE_TBB=ON \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON \
|
||||
-D CMAKE_CXX_FLAGS="-Werror -Wall -Wextra" \
|
||||
-D CMAKE_C_FLAGS="-Werror -Wall -Wextra" ..
|
||||
|
||||
- name: Build full static
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
rm -rf build
|
||||
rm -rf ${{ github.workspace }}/install
|
||||
|
||||
- name: Configure full with DEBUG define
|
||||
run: |
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -G "Ninja" \
|
||||
-D CMAKE_C_COMPILER=${{ matrix.config.cc }} \
|
||||
-D CMAKE_CXX_COMPILER=${{ matrix.config.cxx }} \
|
||||
-D BUILD_WITH_DEBUG=ON \
|
||||
-D BUILD_USE_PCH=OFF \
|
||||
-D BUILD_INCLUDE_SYMLINK=ON \
|
||||
-D BUILD_OPT_PROFILE=Production \
|
||||
-D BUILD_LIBRARY_TYPE=Shared \
|
||||
-D USE_TK=ON \
|
||||
-D CMAKE_BUILD_TYPE=Debug \
|
||||
-D INSTALL_DIR=${{ github.workspace }}/install \
|
||||
-D 3RDPARTY_RAPIDJSON_DIR=${{ github.workspace }}/rapidjson-858451e5b7d1c56cf8f6d58f88cf958351837e53 \
|
||||
-D USE_FREETYPE=ON \
|
||||
-D USE_DRACO=ON \
|
||||
-D USE_FFMPEG=OFF \
|
||||
-D USE_FREEIMAGE=ON \
|
||||
-D USE_GLES2=ON \
|
||||
-D USE_OPENVR=ON \
|
||||
-D USE_VTK=ON \
|
||||
-D USE_TBB=ON \
|
||||
-D USE_RAPIDJSON=ON \
|
||||
-D USE_OPENGL=ON ..
|
||||
|
||||
- name: Build full with DEBUG define
|
||||
run: |
|
||||
cd build
|
||||
cmake --build . --target install --config Debug -- -j 4
|
||||
|
||||
- name: Clear up after build
|
||||
run: |
|
||||
rm -rf build
|
||||
rm -rf ${{ github.workspace }}/install
|
169
.github/workflows/build-occt-with-vcpkg.yml
vendored
169
.github/workflows/build-occt-with-vcpkg.yml
vendored
@@ -1,169 +0,0 @@
|
||||
# This workflow builds OCCT using vcpkg on multiple platforms (Windows, macOS, Linux).
|
||||
# It builds in both Debug and Release modes.
|
||||
# All dependencies except the compiler are installed using vcpkg.
|
||||
# The workflow includes steps to clone vcpkg, install dependencies, configure and build.
|
||||
|
||||
name: Build OCCT with vcpkg
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
USERNAME: Open-Cascade-SAS
|
||||
VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg
|
||||
FEED_URL: https://nuget.pkg.github.com/Open-Cascade-SAS/index.json
|
||||
VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/Open-Cascade-SAS/index.json,readwrite"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04, windows-2022, windows-2019, macos-15, macos-14, macos-13]
|
||||
build_type: [Debug, Release]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Install required packages (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential ninja-build curl zip unzip tar nasm autoconf mono-complete
|
||||
sudo apt-get install -y libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev
|
||||
|
||||
- name: Install required packages (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
brew update || true
|
||||
brew install cmake ninja nasm autoconf mono || true
|
||||
# temporary workaround for missing tcl-tk
|
||||
brew install tcl-tk || true
|
||||
# Force link any conflicting packages
|
||||
brew link --overwrite python@3.12 || true
|
||||
brew link --overwrite python@3.13 || true
|
||||
|
||||
- name: Install required packages (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||
with:
|
||||
arch: x64
|
||||
|
||||
- name: Set up vcpkg (Unix)
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
git clone https://github.com/microsoft/vcpkg.git
|
||||
./vcpkg/bootstrap-vcpkg.sh
|
||||
shell: bash
|
||||
|
||||
- name: Set up vcpkg (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
git clone https://github.com/microsoft/vcpkg.git
|
||||
.\vcpkg\bootstrap-vcpkg.bat
|
||||
shell: cmd
|
||||
|
||||
- name: Add NuGet sources
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
.$(${{ env.VCPKG_EXE }} fetch nuget) `
|
||||
sources add `
|
||||
-Source "${{ env.FEED_URL }}" `
|
||||
-StorePasswordInClearText `
|
||||
-Name GitHubPackages `
|
||||
-UserName "${{ env.USERNAME }}" `
|
||||
-Password "${{ secrets.GITHUB_TOKEN }}"
|
||||
.$(${{ env.VCPKG_EXE }} fetch nuget) `
|
||||
setapikey "${{ secrets.GITHUB_TOKEN }}" `
|
||||
-Source "${{ env.FEED_URL }}"
|
||||
shell: pwsh
|
||||
|
||||
- name: Add NuGet sources
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
|
||||
sources add \
|
||||
-Source "${{ env.FEED_URL }}" \
|
||||
-StorePasswordInClearText \
|
||||
-Name GitHubPackages \
|
||||
-UserName "${{ env.USERNAME }}" \
|
||||
-Password "${{ secrets.GITHUB_TOKEN }}"
|
||||
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
|
||||
setapikey "${{ secrets.GITHUB_TOKEN }}" \
|
||||
-Source "${{ env.FEED_URL }}"
|
||||
shell: bash
|
||||
|
||||
- name: Configure OCCT ${{ matrix.build_type }} (Unix)
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
mkdir build-${{ matrix.build_type }}
|
||||
cd build-${{ matrix.build_type }}
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
|
||||
-DBUILD_USE_VCPKG=ON \
|
||||
-DUSE_MMGR_TYPE=NATIVE \
|
||||
-DUSE_FREETYPE=ON \
|
||||
-DUSE_TK=OFF \
|
||||
-DBUILD_USE_PCH=ON \
|
||||
-DBUILD_INCLUDE_SYMLINK=ON \
|
||||
-DINSTALL_DIR=${{ github.workspace }}/install-${{ matrix.build_type }} \
|
||||
-DUSE_DRACO=ON \
|
||||
-DUSE_FFMPEG=ON \
|
||||
-DUSE_FREEIMAGE=ON \
|
||||
-DUSE_GLES2=OFF \
|
||||
-DUSE_VTK=ON \
|
||||
-DUSE_TBB=ON \
|
||||
-DUSE_RAPIDJSON=ON \
|
||||
-DUSE_OPENGL=ON \
|
||||
-DBUILD_MODULE_Draw=OFF \
|
||||
-DVCPKG_INSTALL_OPTIONS=--clean-buildtrees-after-build \
|
||||
${{ runner.os != 'macOS' && '-DUSE_OPENVR=ON' || '' }} ..
|
||||
shell: bash
|
||||
|
||||
- name: Configure OCCT ${{ matrix.build_type }} (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
mkdir build-${{ matrix.build_type }}
|
||||
cd build-${{ matrix.build_type }}
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake ^
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ^
|
||||
-DBUILD_USE_VCPKG=ON ^
|
||||
-DUSE_MMGR_TYPE=JEMALLOC ^
|
||||
-DUSE_FREETYPE=ON ^
|
||||
-DUSE_TK=OFF ^
|
||||
-DBUILD_USE_PCH=ON ^
|
||||
-DBUILD_INCLUDE_SYMLINK=ON ^
|
||||
-DINSTALL_DIR=${{ github.workspace }}/install-${{ matrix.build_type }} ^
|
||||
-DUSE_DRACO=ON ^
|
||||
-DUSE_FFMPEG=OFF ^
|
||||
-DUSE_FREEIMAGE=ON ^
|
||||
-DUSE_GLES2=ON ^
|
||||
-DUSE_OPENVR=ON ^
|
||||
-DUSE_VTK=ON ^
|
||||
-DUSE_TBB=ON ^
|
||||
-DUSE_RAPIDJSON=ON ^
|
||||
-DVCPKG_INSTALL_OPTIONS=--clean-buildtrees-after-build ^
|
||||
-DUSE_OPENGL=ON ..
|
||||
shell: cmd
|
||||
|
||||
- name: Build OCCT ${{ matrix.build_type }} (Unix)
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
cd build-${{ matrix.build_type }}
|
||||
cmake --build . --target install --config ${{ matrix.build_type }}
|
||||
shell: bash
|
||||
|
||||
- name: Build OCCT ${{ matrix.build_type }} (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
cd build-${{ matrix.build_type }}
|
||||
cmake --build . --target install --config ${{ matrix.build_type }}
|
||||
shell: cmd
|
84
.github/workflows/clang-format-check.yml
vendored
84
.github/workflows/clang-format-check.yml
vendored
@@ -1,84 +0,0 @@
|
||||
# This workflow checks the code formatting of changed files in a pull request using clang-format.
|
||||
# It is triggered on pull requests to the master branch.
|
||||
# The workflow verifies that the clang-format version matches 18.1.8,
|
||||
# checks formatting of modified files, and if formatting issues are found,
|
||||
# creates a patch file that can be applied to fix the formatting.
|
||||
|
||||
name: Clang-Format Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- '**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
format-check:
|
||||
name: Check code formatting
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check clang-format version
|
||||
run: |
|
||||
$version = clang-format --version
|
||||
Write-Output "Detected clang-format version: $version"
|
||||
$version | Select-String "18.1.8" >$null
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
echo "::error::Wrong clang-format version. Expected 18.1.8"
|
||||
Write-Output "Error: Version mismatch - expected 18.1.8"
|
||||
exit 1
|
||||
}
|
||||
shell: pwsh
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
run: |
|
||||
$changedFiles = git diff --name-only origin/${{ github.base_ref }} HEAD |
|
||||
Where-Object { $_ -match '^(src|tools)/' -and $_ -match '\.(cpp|hxx|cxx|lxx|h|pxx|hpp)$' }
|
||||
$changedFiles | Set-Content "changed_files.txt"
|
||||
if ($changedFiles.Count -gt 0) {
|
||||
echo "has_files=true" >> $env:GITHUB_OUTPUT
|
||||
}
|
||||
shell: pwsh
|
||||
|
||||
- name: Check formatting
|
||||
id: check
|
||||
if: steps.changed-files.outputs.has_files == 'true'
|
||||
run: |
|
||||
$files = Get-Content "changed_files.txt"
|
||||
$files | ForEach-Object -ThrottleLimit 8 -Parallel {
|
||||
clang-format -i -style=file $_
|
||||
}
|
||||
shell: pwsh
|
||||
|
||||
- name: Check git status
|
||||
id: git-check
|
||||
if: steps.changed-files.outputs.has_files == 'true'
|
||||
run: |
|
||||
git diff > format.patch
|
||||
if ((Get-Item format.patch).length -gt 0) {
|
||||
echo "has_changes=true" >> $env:GITHUB_OUTPUT
|
||||
}
|
||||
shell: pwsh
|
||||
|
||||
- name: Upload patch
|
||||
if: steps.git-check.outputs.has_changes == 'true'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: format-patch
|
||||
path: format.patch
|
||||
|
||||
- name: Fail with instructions
|
||||
if: steps.git-check.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "::error::Files need formatting. To fix: 1. Download format.patch 2. "git apply format.patch" 3. Commit and push"
|
||||
exit 1
|
||||
shell: pwsh
|
959
CMakeLists.txt
959
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
13
README.md
13
README.md
@@ -28,27 +28,26 @@ You can also find OCCT pre-installed on your system or install it from packages
|
||||
|
||||
Documentation is available at the following links:
|
||||
- [Latest version](https://dev.opencascade.org/doc/overview)
|
||||
- [Version 7.8](https://dev.opencascade.org/doc/occt-7.8.0/overview)
|
||||
- [Version 7.7](https://dev.opencascade.org/doc/occt-7.7.0/overview)
|
||||
|
||||
Documentation can be part of the package. To preview documentation as part of the package, open the file `doc/html/index.html` to browse HTML documentation.
|
||||
|
||||
If HTML documentation is not available in your package, you can:
|
||||
|
||||
- **Generate it from sources:** You need to have Tcl and Doxygen 1.8.4 (or above) installed on your system and accessible in your environment (check the environment variable PATH). Use the batch file `adm/gendoc.bat` on Windows or the Bash script `adm/gendoc` on Linux or OS X to (re)generate documentation.
|
||||
- **Generate together with sources:** You need to have CMake and 1.8.4 (or above) installed on your system. Enable `BUILD_DOC_Overview` CMake parameter and set the path to Doxygen `3RDPARTY_DOXYGEN_EXECUTABLE`. Then build ALL or only `Overview`.
|
||||
- **Read documentation in source plain text (Markdown) format** found in the subfolder `dox` or [GitHub Wiki](https://github.com/Open-Cascade-SAS/OCCT/wiki).
|
||||
- **Generate it from sources:** You need to have Tcl and Doxygen 1.8.4 (or above) installed on your system and accessible in your environment (check the environment variable PATH). Use the batch file `gendoc.bat` on Windows or the Bash script `gendoc` on Linux or OS X to (re)generate documentation.
|
||||
- **Read documentation in source plain text (Markdown) format** found in the subfolder `dox`.
|
||||
|
||||
See [dox/build/build_documentation/building_documentation.md](dox/build/build_documentation/building_documentation.md) or [Building Documentation](https://dev.opencascade.org/doc/occt-7.8.0/overview/html/build_upgrade__building_documentation.html) for details.
|
||||
See `dox/dev_guides/documentation/documentation.md` or [Building Documentation](https://dev.opencascade.org/doc/occt-7.7.0/overview/html/build_upgrade__building_documentation.html) for details.
|
||||
|
||||
## Building
|
||||
|
||||
In most cases, you need to rebuild OCCT on your platform (OS, compiler) before using it in your project to ensure binary compatibility.
|
||||
|
||||
Consult the file [dox/build/build_occt/building_occt.md](dox/build/build_occt/building_occt.md) or [Building OCCT](https://dev.opencascade.org/doc/overview/html/build_upgrade__building_occt.html) or [Building OCCT Wiki](https://github.com/Open-Cascade-SAS/OCCT/wiki/build_upgrade) for instructions on building OCCT from sources on supported platforms.
|
||||
Consult the file `dox/dev_guides/building/building.md` or [Building OCCT](https://dev.opencascade.org/doc/overview/html/build_upgrade__building_occt.html) for instructions on building OCCT from sources on supported platforms.
|
||||
|
||||
## Version
|
||||
|
||||
The current version of OCCT can be found in the file [`src/Standard/Standard_Version.hxx`](src/Standard/Standard_Version.hxx).
|
||||
The current version of OCCT can be found in the file `src/Standard/Standard_Version.hxx`.
|
||||
|
||||
## Development
|
||||
|
||||
|
@@ -6,6 +6,137 @@ endif()
|
||||
set(3RDPARTY_MACRO_ALREADY_INCLUDED 1)
|
||||
|
||||
|
||||
macro(THIRDPARTY_PRODUCT_LIBRARY PRODUCT_NAME LIBRARY_CSF_NAME LIBRARY_PATH_DEBUG_SUFFIX VARIABLE_DEBUG_SUFFIX)
|
||||
OCCT_MAKE_OS_WITH_BITNESS()
|
||||
OCCT_MAKE_COMPILER_SHORT_NAME()
|
||||
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
# if (BUILD_SHARED_LIBS)
|
||||
# library
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a)
|
||||
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES lib${LIBRARY_PATH_DEBUG_SUFFIX})
|
||||
if (WIN32)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} win${COMPILER_BITNESS}/${COMPILER}/lib${LIBRARY_PATH_DEBUG_SUFFIX})
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib${LIBRARY_PATH_DEBUG_SUFFIX}/win${COMPILER_BITNESS})
|
||||
endif()
|
||||
if (ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} libs/${ANDROID_ABI})
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib/linux${COMPILER_BITNESS})
|
||||
endif()
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX}}"))
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
if ("${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}-NOTFOUND")
|
||||
# find directory recursive
|
||||
FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} "${${PRODUCT_NAME}_PATH_SUFFIXES}" SUBDIR_NAME)
|
||||
if (NOT "${SUBDIR_NAME}" STREQUAL "")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX}
|
||||
PATHS "${SUBDIR_NAME}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX})
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
# shared library
|
||||
if (WIN32)
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}")
|
||||
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX}}"))
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}${VARIABLE_DEBUG_SUFFIX}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES bin${LIBRARY_PATH_DEBUG_SUFFIX} win${COMPILER_BITNESS}/${COMPILER}/bin${LIBRARY_PATH_DEBUG_SUFFIX} bin${LIBRARY_PATH_DEBUG_SUFFIX}/win${COMPILER_BITNESS}
|
||||
NO_DEFAULT_PATH)
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} STREQUAL "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}-NOTFOUND")
|
||||
# find directory recursive
|
||||
FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} bin${LIBRARY_PATH_DEBUG_SUFFIX} SUBDIR_NAME)
|
||||
if (NOT "${SUBDIR_NAME}" STREQUAL "")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX}
|
||||
PATHS "${SUBDIR_NAME}"
|
||||
PATH_SUFFIXES bin${LIBRARY_PATH_DEBUG_SUFFIX}
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} NAMES ${LIBRARY_NAME} PATH_SUFFIXES bin${LIBRARY_PATH_DEBUG_SUFFIX})
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS${VARIABLE_DEBUG_SUFFIX} "")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS${VARIABLE_DEBUG_SUFFIX} "")
|
||||
endif()
|
||||
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${3RDPARTY_${PRODUCT_NAME}_DLL_DIRS}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS${VARIABLE_DEBUG_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX} 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}${VARIABLE_DEBUG_SUFFIX})
|
||||
# endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME_DEBUG_SUFFIX)
|
||||
|
||||
if (NOT DEFINED INSTALL_${PRODUCT_NAME} AND BUILD_SHARED_LIBS)
|
||||
@@ -53,12 +184,27 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME})
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
#Debug
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG OR NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG "" CACHE FILEPATH "${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -84,6 +230,25 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
#Debug
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG FILEPATH "the path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}_DEBUG}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}_DEBUG PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG FILEPATH "the path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}_DEBUG}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}_DEBUG PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -116,192 +281,97 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME
|
||||
set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "" CACHE FILEPATH "The path to ${HEADER_NAME}" FORCE)
|
||||
endif()
|
||||
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
# if (BUILD_SHARED_LIBS)
|
||||
# library
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll.a .lib .so .dylib .a)
|
||||
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES lib)
|
||||
if (WIN32)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} win${COMPILER_BITNESS}/${COMPILER}/lib)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib/win${COMPILER_BITNESS})
|
||||
endif()
|
||||
if (ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} libs/${ANDROID_ABI})
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib/linux${COMPILER_BITNESS})
|
||||
endif()
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}"))
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
if ("${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}-NOTFOUND")
|
||||
# find directory recursive
|
||||
FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} "${${PRODUCT_NAME}_PATH_SUFFIXES}" SUBDIR_NAME)
|
||||
if (NOT "${SUBDIR_NAME}" STREQUAL "")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX}
|
||||
PATHS "${SUBDIR_NAME}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
THIRDPARTY_PRODUCT_LIBRARY (${PRODUCT_NAME} ${LIBRARY_CSF_NAME} "" "")
|
||||
if (NOT SINGLE_GENERATOR)
|
||||
THIRDPARTY_PRODUCT_LIBRARY (${PRODUCT_NAME} ${LIBRARY_CSF_NAME} "d" "_DEBUG")
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX})
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
# shared library
|
||||
if (WIN32)
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}")
|
||||
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}"))
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES bin win${COMPILER_BITNESS}/${COMPILER}/bin bin/win${COMPILER_BITNESS}
|
||||
NO_DEFAULT_PATH)
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} STREQUAL "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}-NOTFOUND")
|
||||
# find directory recursive
|
||||
FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} bin SUBDIR_NAME)
|
||||
if (NOT "${SUBDIR_NAME}" STREQUAL "")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX}
|
||||
PATHS "${SUBDIR_NAME}"
|
||||
PATH_SUFFIXES bin
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} PATH_SUFFIXES bin)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX})
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
list (REMOVE_ITEM 3RDPARTY_NO_LIBS 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "")
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
list (REMOVE_ITEM 3RDPARTY_NO_DLLS 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}_DEBUG)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${3RDPARTY_${PRODUCT_NAME}_DLL_DIRS}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "")
|
||||
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "")
|
||||
if (INSTALL_${PRODUCT_NAME})
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "")
|
||||
|
||||
if (INSTALL_${PRODUCT_NAME})
|
||||
OCCT_MAKE_OS_WITH_BITNESS()
|
||||
OCCT_MAKE_COMPILER_SHORT_NAME()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "")
|
||||
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(ABS_PATH ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} REALPATH)
|
||||
|
||||
if ("${PRODUCT_NAME}" STREQUAL "FREEIMAGE")
|
||||
get_filename_component(FREEIMLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR_LIB}" RENAME ${FREEIMLIB}.3)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
# the library directory for using by the executable
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
else()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR ${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}})
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}_DEBUG}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(ABS_PATH ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} REALPATH)
|
||||
|
||||
if ("${PRODUCT_NAME}" STREQUAL "FREEIMAGE")
|
||||
get_filename_component(FREEIMLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR_LIB}" RENAME ${FREEIMLIB}.3)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
|
||||
get_filename_component(FREEIMLIB_DEBUG ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}_DEBUG} NAME)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${FREEIMLIB_DEBUG}.3)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX})
|
||||
# endif()
|
||||
endforeach()
|
||||
endif()
|
||||
else()
|
||||
# the library directory for using by the executable
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
else()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR ${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}})
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro (COMPLIANCE_PRODUCT_CONSISTENCY LIBNAME)
|
||||
|
@@ -1,113 +1,4 @@
|
||||
# Draco - a library for a lossy vertex data compression, used as extension to glTF format.
|
||||
# https://github.com/google/draco
|
||||
|
||||
macro (SEARCH_DRACO_LIB)
|
||||
if (3RDPARTY_DRACO_DIR AND EXISTS "${3RDPARTY_DRACO_DIR}")
|
||||
if (NOT 3RDPARTY_DRACO_LIBRARY OR NOT EXISTS "${3RDPARTY_DRACO_LIBRARY}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .a)
|
||||
set (3RDPARTY_DRACO_LIBRARY "3RDPARTY_DRACO_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to Draco library" FORCE)
|
||||
|
||||
find_library (3RDPARTY_DRACO_LIBRARY NAMES ${CSF_Draco}
|
||||
PATHS "${3RDPARTY_DRACO_DIR}"
|
||||
PATH_SUFFIXES lib
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
if (3RDPARTY_DRACO_LIBRARY AND EXISTS "${3RDPARTY_DRACO_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_DRACO_LIBRARY_DIR "${3RDPARTY_DRACO_LIBRARY}" PATH)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DIR "${3RDPARTY_DRACO_LIBRARY_DIR}" CACHE FILEPATH "The directory containing Draco library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32 AND (NOT 3RDPARTY_DRACO_LIBRARY_DEBUG OR NOT EXISTS "${3RDPARTY_DRACO_LIBRARY_DEBUG}"))
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .a)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DEBUG "3RDPARTY_DRACO_LIBRARY_DEBUG-NOTFOUND" CACHE FILEPATH "The path to debug Draco library" FORCE)
|
||||
|
||||
find_library (3RDPARTY_DRACO_LIBRARY_DEBUG NAMES ${CSF_Draco}
|
||||
PATHS "${3RDPARTY_DRACO_DIR}"
|
||||
PATH_SUFFIXES libd debug/lib
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
if (3RDPARTY_DRACO_LIBRARY_DEBUG AND EXISTS "${3RDPARTY_DRACO_LIBRARY_DEBUG}")
|
||||
get_filename_component (3RDPARTY_DRACO_LIBRARY_DIR_DEBUG "${3RDPARTY_DRACO_LIBRARY_DEBUG}" PATH)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DIR_DEBUG "${3RDPARTY_DRACO_LIBRARY_DIR_DEBUG}" CACHE FILEPATH "The directory containing debug Draco library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package (draco CONFIG REQUIRED)
|
||||
|
||||
set (3RDPARTY_DRACO_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
|
||||
SEARCH_DRACO_LIB()
|
||||
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/draco")
|
||||
return()
|
||||
endif()
|
||||
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_DIR)
|
||||
set (3RDPARTY_DRACO_DIR "" CACHE PATH "The directory containing Draco")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_INCLUDE_DIR)
|
||||
set (3RDPARTY_DRACO_INCLUDE_DIR "" CACHE PATH "The directory containing headers of the Draco")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_LIBRARY)
|
||||
set (3RDPARTY_DRACO_LIBRARY "" CACHE FILEPATH "Draco library")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_LIBRARY_DIR)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DIR "" CACHE PATH "The directory containing Draco library")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_LIBRARY_DEBUG)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DEBUG "" CACHE FILEPATH "Draco debug library")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_DRACO_LIBRARY_DIR_DEBUG)
|
||||
set (3RDPARTY_DRACO_LIBRARY_DIR_DEBUG "" CACHE PATH "The directory containing Draco debug library")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
|
||||
if (NOT 3RDPARTY_DRACO_DIR OR NOT EXISTS "${3RDPARTY_DRACO_DIR}")
|
||||
FIND_PRODUCT_DIR("${3RDPARTY_DIR}" draco DRACO_DIR_NAME)
|
||||
if (DRACO_DIR_NAME)
|
||||
set (3RDPARTY_DRACO_DIR "${3RDPARTY_DIR}/${DRACO_DIR_NAME}" CACHE PATH "The directory containing Draco" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# header
|
||||
if (NOT 3RDPARTY_DRACO_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_DRACO_INCLUDE_DIR}")
|
||||
set (HEADER_NAMES draco)
|
||||
|
||||
# set 3RDPARTY_DRACO_INCLUDE_DIR as notfound, otherwise find_path can't assign a new value to 3RDPARTY_DRACO_INCLUDE_DIR
|
||||
set (3RDPARTY_DRACO_INCLUDE_DIR "3RDPARTY_DRACO_INCLUDE_DIR-NOTFOUND" CACHE FILEPATH "The directory containing headers of the Draco" FORCE)
|
||||
|
||||
if (3RDPARTY_DRACO_DIR AND EXISTS "${3RDPARTY_DRACO_DIR}")
|
||||
find_path (3RDPARTY_DRACO_INCLUDE_DIR NAMES ${HEADER_NAMES}
|
||||
PATHS ${3RDPARTY_DRACO_DIR}
|
||||
PATH_SUFFIXES "include"
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_path (3RDPARTY_DRACO_INCLUDE_DIR NAMES ${HEADER_NAMES}
|
||||
PATHS ${3RDPARTY_DRACO_DIR}
|
||||
PATH_SUFFIXES "include"
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_DRACO_INCLUDE_DIR AND EXISTS "${3RDPARTY_DRACO_INCLUDE_DIR}")
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_DRACO_INCLUDE_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_DRACO_INCLUDE_DIR)
|
||||
endif()
|
||||
|
||||
SEARCH_DRACO_LIB()
|
||||
THIRDPARTY_PRODUCT("DRACO" "draco/draco_features.h" "CSF_Draco" "")
|
||||
|
@@ -1,15 +1,4 @@
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package(FFMPEG REQUIRED)
|
||||
set(CSF_FFmpeg ${FFMPEG_LIBRARIES})
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_FREEIMAGE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
else()
|
||||
set (USED_3RDPARTY_FREEIMAGE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
|
||||
endif()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIRS}")
|
||||
return()
|
||||
endif()
|
||||
# FFmpeg
|
||||
|
||||
if (NOT DEFINED INSTALL_FFMPEG)
|
||||
set (INSTALL_FFMPEG OFF CACHE BOOL "${INSTALL_FFMPEG_DESCR}")
|
||||
|
@@ -1,16 +1,3 @@
|
||||
#freeimage
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package(freeimage CONFIG REQUIRED)
|
||||
set(CSF_FreeImagePlus freeimage::FreeImagePlus)
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_FREEIMAGE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
else()
|
||||
set (USED_3RDPARTY_FREEIMAGE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
|
||||
endif()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/")
|
||||
return()
|
||||
endif()
|
||||
|
||||
THIRDPARTY_PRODUCT("FREEIMAGE" "FreeImage.h" "CSF_FreeImagePlus" "d")
|
||||
|
@@ -1,18 +1,5 @@
|
||||
# freetype
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package (Freetype MODULE REQUIRED)
|
||||
set (CSF_FREETYPE Freetype::Freetype)
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_FREETYPE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
else()
|
||||
set (USED_3RDPARTY_FREETYPE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
|
||||
endif()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED INSTALL_FREETYPE AND BUILD_SHARED_LIBS)
|
||||
set (INSTALL_FREETYPE OFF CACHE BOOL "${INSTALL_FREETYPE_DESCR}")
|
||||
endif()
|
||||
@@ -177,14 +164,6 @@ if (IS_BUILTIN_SEARCH_REQUIRED)
|
||||
set (3RDPARTY_FREETYPE_LIBRARY_DIR "" CACHE PATH "The directory containing freetype library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# In case of MinGW some libraries can have .dll.a extension, so we should check it and use instead of .a
|
||||
if (MINGW AND 3RDPARTY_FREETYPE_LIBRARY AND EXISTS "${3RDPARTY_FREETYPE_LIBRARY}")
|
||||
string (REPLACE ".a" ".dll.a" 3RDPARTY_FREETYPE_LIBRARY_TEST "${3RDPARTY_FREETYPE_LIBRARY}")
|
||||
if (EXISTS "${3RDPARTY_FREETYPE_LIBRARY_TEST}")
|
||||
set (3RDPARTY_FREETYPE_LIBRARY "${3RDPARTY_FREETYPE_LIBRARY_TEST}" CACHE FILEPATH "The path to freetype library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# the SECOND step in search for freetype library and header folders (additional search algorithms)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# JeMalloc
|
||||
|
||||
function (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX)
|
||||
macro (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX)
|
||||
if (NOT 3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB})
|
||||
set (JEMALLOC_PATH_SUFFIXES "lib" "bin")
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} "3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}-NOTFOUND")
|
||||
@@ -23,25 +23,20 @@ function (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX)
|
||||
endif()
|
||||
endif()
|
||||
if (3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB})
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}" PARENT_SCOPE)
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}")
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_DIR "${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}}" CACHE PATH "The directory containing JEMALLOC libraries" FORCE)
|
||||
elseif("${PREFIX}" STREQUAL "SHARED")
|
||||
return()
|
||||
else()
|
||||
message(STATUS "Cannot find ${MMGR_LIB} library in jemalloc 3rdparty")
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} PARENT_SCOPE)
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} "" PARENT_SCOPE)
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB})
|
||||
set (3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} "")
|
||||
endif()
|
||||
|
||||
set(JEMALLOC_IS_STATIC_LIB FALSE)
|
||||
if ("${PREFIX}" STREQUAL "STATIC")
|
||||
set(JEMALLOC_IS_STATIC_LIB TRUE)
|
||||
endif()
|
||||
|
||||
if (${JEMALLOC_IS_STATIC_LIB})
|
||||
set (OLD_CSF_MMGR ${CSF_MMGR})
|
||||
list (APPEND OLD_CSF_MMGR "${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}}")
|
||||
set (CSF_MMGR "${OLD_CSF_MMGR}" PARENT_SCOPE)
|
||||
set (JEMALLOC_IS_STATIC_LIB FALSE)
|
||||
if (((${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} MATCHES "\.lib$")) OR ((${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} MATCHES "\.a$")))
|
||||
get_filename_component(STATIC_LIB_NAME ${3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB}} NAME)
|
||||
list(APPEND CSF_MMGR "${STATIC_LIB_NAME}")
|
||||
set (JEMALLOC_IS_STATIC_LIB TRUE)
|
||||
endif()
|
||||
# install instructions
|
||||
if (INSTALL_JEMALLOC AND NOT JEMALLOC_IS_STATIC_LIB)
|
||||
@@ -62,18 +57,18 @@ function (JEMALLOC_LIB_SEARCH MMGR_LIB PREFIX)
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${JEMALLOC_INSTALL_DESTINATION}i")
|
||||
endif()
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR "" PARENT_SCOPE)
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR "")
|
||||
elseif(NOT JEMALLOC_IS_STATIC_LIB)
|
||||
# the library directory for using by the executable
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR ${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}} PARENT_SCOPE)
|
||||
set (USED_3RDPARTY_JEMALLOC_DIR ${3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB}})
|
||||
endif()
|
||||
unset(3RDPARTY_JEMALLOC_LIBRARY_DIR_${MMGR_LIB} CACHE)
|
||||
unset(3RDPARTY_JEMALLOC_LIBRARY_${PREFIX}_${MMGR_LIB} CACHE)
|
||||
endfunction()
|
||||
endmacro()
|
||||
|
||||
macro (SEARCH_JEMALLOC)
|
||||
# find static jemalloc lib
|
||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".lib" ".a")
|
||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a")
|
||||
if (WIN32)
|
||||
JEMALLOC_LIB_SEARCH ("jemalloc" "STATIC")
|
||||
elseif(NOT WIN32)
|
||||
@@ -90,16 +85,6 @@ endmacro()
|
||||
# Reset CSF variable
|
||||
set (CSF_MMGR "")
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
set (3RDPARTY_JEMALLOC_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
|
||||
OCCT_CHECK_AND_UNSET_GROUP (3RDPARTY_JEMALLOC_LIBRARY_SHARED)
|
||||
OCCT_CHECK_AND_UNSET_GROUP (3RDPARTY_JEMALLOC_LIBRARY_STATIC)
|
||||
SEARCH_JEMALLOC()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/jemalloc")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED INSTALL_JEMALLOC)
|
||||
set (INSTALL_JEMALLOC OFF CACHE BOOL "${INSTALL_INSTALL_JEMALLOC_DESCR}")
|
||||
endif()
|
||||
|
@@ -38,10 +38,6 @@ else()
|
||||
else()
|
||||
add_definitions (-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
endif()
|
||||
if (APPLE)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
|
||||
endif()
|
||||
add_definitions(-DOCC_CONVERT_SIGNALS)
|
||||
endif()
|
||||
|
||||
@@ -151,19 +147,14 @@ elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPIL
|
||||
# /GL (whole program optimization) is similar to -flto (Link Time Optimization) in GCC/Clang.
|
||||
# /GF (eliminate duplicate strings) doesn't have a direct equivalent in GCC/Clang, but the compilers do string pooling automatically.
|
||||
# /Gy (enable function-level linking) is similar to -ffunction-sections in GCC/Clang.
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -fomit-frame-pointer -flto -ffunction-sections")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -fomit-frame-pointer -flto -ffunction-sections")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fomit-frame-pointer -flto -ffunction-sections")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -fomit-frame-pointer -flto -ffunction-sections")
|
||||
|
||||
# Link-Time Code Generation(LTCG) is requared for Whole Program Optimisation(GL)
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -flto")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -flto")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -flto")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto")
|
||||
if (NOT WIN32)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,--gc-sections")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -Wl,--gc-sections")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -Wl,--gc-sections")
|
||||
endif()
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -flto -Wl,--gc-sections")
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -flto -Wl,--gc-sections")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -Wl,--gc-sections")
|
||||
endif()
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
||||
@@ -172,7 +163,7 @@ elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPIL
|
||||
if (APPLE)
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-lm ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
elseif(NOT WIN32)
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-lm -Wl,-Bsymbolic ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-lm ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -182,21 +173,19 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]")
|
||||
# CLang can be used with both libstdc++ and libc++, however on OS X libstdc++ is outdated.
|
||||
set (CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
if (NOT WIN32)
|
||||
# Optimize size of binaries
|
||||
set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
|
||||
endif()
|
||||
endif()
|
||||
if(MINGW)
|
||||
# Optimize size of binaries
|
||||
set (CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
|
||||
elseif(MINGW)
|
||||
add_definitions(-D_WIN32_WINNT=0x0601)
|
||||
# _WIN32_WINNT=0x0601 (use Windows 7 SDK)
|
||||
#set (CMAKE_SYSTEM_VERSION "6.1")
|
||||
# workaround bugs in mingw with vtable export
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wattributes")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wattributes")
|
||||
endif()
|
||||
if (CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE)
|
||||
|
||||
# Optimize size of binaries
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
|
||||
elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
|
||||
# Optimize size of binaries
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
|
||||
|
@@ -414,59 +414,29 @@ function (COLLECT_AND_INSTALL_OCCT_HEADER_FILES THE_ROOT_TARGET_OCCT_DIR THE_OCC
|
||||
foreach(OCCT_PACKAGE ${USED_PACKAGES})
|
||||
EXTRACT_PACKAGE_FILES (${THE_RELATIVE_PATH} ${OCCT_PACKAGE} ALL_FILES _)
|
||||
set (HEADER_FILES_FILTERING ${ALL_FILES})
|
||||
list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|g|p|lxx)")
|
||||
list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|lxx|gxx)")
|
||||
list (APPEND OCCT_HEADER_FILES_COMPLETE ${HEADER_FILES_FILTERING})
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
# Check that copying is done and match the include installation type.
|
||||
# Check by first file in list.
|
||||
list(GET OCCT_HEADER_FILES_COMPLETE 0 FIRST_OCCT_HEADER_FILE)
|
||||
get_filename_component (FIRST_OCCT_HEADER_FILE ${FIRST_OCCT_HEADER_FILE} NAME)
|
||||
set (TO_FORCE_COPY FALSE)
|
||||
if (NOT EXISTS "${THE_ROOT_TARGET_OCCT_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}/${FIRST_OCCT_HEADER_FILE}")
|
||||
set (TO_FORCE_COPY TRUE)
|
||||
else()
|
||||
# get content and check the number of lines inside file.
|
||||
# If more then 1 then it is a symlink.
|
||||
file (STRINGS "${THE_ROOT_TARGET_OCCT_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}/${FIRST_OCCT_HEADER_FILE}" FIRST_OCCT_HEADER_FILE_CONTENT)
|
||||
list (LENGTH FIRST_OCCT_HEADER_FILE_CONTENT FIRST_OCCT_HEADER_FILE_CONTENT_LEN)
|
||||
if (${FIRST_OCCT_HEADER_FILE_CONTENT_LEN} EQUAL 1 AND BUILD_INCLUDE_SYMLINK)
|
||||
set (TO_FORCE_COPY TRUE)
|
||||
elseif(${FIRST_OCCT_HEADER_FILE_CONTENT_LEN} GREATER 1 AND NOT BUILD_INCLUDE_SYMLINK)
|
||||
set (TO_FORCE_COPY TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach (OCCT_HEADER_FILE ${OCCT_HEADER_FILES_COMPLETE})
|
||||
get_filename_component (HEADER_FILE_NAME ${OCCT_HEADER_FILE} NAME)
|
||||
set(TARGET_FILE "${THE_ROOT_TARGET_OCCT_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}/${HEADER_FILE_NAME}")
|
||||
|
||||
# Check if the file already exists in the target directory
|
||||
if (TO_FORCE_COPY OR NOT EXISTS "${TARGET_FILE}")
|
||||
if (BUILD_INCLUDE_SYMLINK)
|
||||
file (CREATE_LINK "${OCCT_HEADER_FILE}" "${TARGET_FILE}" SYMBOLIC)
|
||||
else()
|
||||
set (OCCT_HEADER_FILE_CONTENT "#include \"${OCCT_HEADER_FILE}\"")
|
||||
configure_file ("${TEMPLATE_HEADER_PATH}" "${TARGET_FILE}" @ONLY)
|
||||
endif()
|
||||
if (BUILD_INCLUDE_SYMLINK)
|
||||
file (CREATE_LINK "${OCCT_HEADER_FILE}" "${THE_ROOT_TARGET_OCCT_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}/${HEADER_FILE_NAME}" SYMBOLIC)
|
||||
else()
|
||||
set (OCCT_HEADER_FILE_CONTENT "#include \"${OCCT_HEADER_FILE}\"")
|
||||
configure_file ("${TEMPLATE_HEADER_PATH}" "${THE_ROOT_TARGET_OCCT_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}/${HEADER_FILE_NAME}" @ONLY)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set (OCCT_HEADER_FILES_INSTALLATION ${OCCT_HEADER_FILES_COMPLETE})
|
||||
list (FILTER OCCT_HEADER_FILES_INSTALLATION INCLUDE REGEX ".*[.](h|lxx)")
|
||||
install (FILES ${OCCT_HEADER_FILES_INSTALLATION} DESTINATION "${INSTALL_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}")
|
||||
install (FILES ${OCCT_HEADER_FILES_COMPLETE} DESTINATION "${INSTALL_DIR}/${THE_OCCT_INSTALL_DIR_PREFIX}")
|
||||
endfunction()
|
||||
|
||||
function(ADD_PRECOMPILED_HEADER INPUT_TARGET PRECOMPILED_HEADER THE_IS_PRIVATE)
|
||||
function(ADD_PRECOMPILED_HEADER INPUT_TARGET PRECOMPILED_HEADER)
|
||||
if (NOT BUILD_USE_PCH)
|
||||
return()
|
||||
endif()
|
||||
if (${THE_IS_PRIVATE})
|
||||
target_precompile_headers(${INPUT_TARGET} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${PRECOMPILED_HEADER}>")
|
||||
else()
|
||||
target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:${PRECOMPILED_HEADER}>")
|
||||
endif()
|
||||
target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:${PRECOMPILED_HEADER}>")
|
||||
endfunction()
|
||||
|
||||
macro (OCCT_COPY_FILE_OR_DIR BEING_COPIED_OBJECT DESTINATION_PATH)
|
||||
@@ -729,126 +699,3 @@ macro (OCCT_CREATE_SYMLINK_TO_FILE LIBRARY_NAME LINK_NAME)
|
||||
")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Function to process CSF libraries and append their file names to a specified list.
|
||||
# Additionally, handle library directories for different build configurations.
|
||||
# Arguments:
|
||||
# CURRENT_CSF - The current CSF libraries to process.
|
||||
# LIST_NAME - The name of the list to append the processed library file names to.
|
||||
# TARGET_NAME - The target to which the library directories will be added.
|
||||
function (PROCESS_CSF_LIBRARIES CURRENT_CSF LIST_NAME TARGET_NAME)
|
||||
separate_arguments (CURRENT_CSF)
|
||||
|
||||
# Local variables to collect found libraries and directories
|
||||
set(FOUND_LIBS "")
|
||||
set(FOUND_DEBUG_DIRS "")
|
||||
set(FOUND_RELEASE_DIRS "")
|
||||
|
||||
# Check if the result is already cached
|
||||
string(REPLACE ";" "_" CACHE_KEY "${CURRENT_CSF}")
|
||||
get_property(CACHED_LIBS GLOBAL PROPERTY "CACHED_LIBS_${CACHE_KEY}" SET)
|
||||
get_property(CACHED_DEBUG_DIRS GLOBAL PROPERTY "CACHED_DEBUG_DIRS_${CACHE_KEY}" SET)
|
||||
get_property(CACHED_RELEASE_DIRS GLOBAL PROPERTY "CACHED_RELEASE_DIRS_${CACHE_KEY}" SET)
|
||||
if (CACHED_LIBS AND NOT "${CACHED_LIBS}" STREQUAL "1")
|
||||
list (APPEND FOUND_LIBS ${CACHED_LIBS})
|
||||
if (CACHED_DEBUG_DIRS)
|
||||
list (APPEND FOUND_DEBUG_DIRS ${CACHED_DEBUG_DIRS})
|
||||
endif()
|
||||
if (CACHED_RELEASE_DIRS)
|
||||
list (APPEND FOUND_RELEASE_DIRS ${CACHED_RELEASE_DIRS})
|
||||
endif()
|
||||
else()
|
||||
foreach (CSF_LIBRARY ${CURRENT_CSF})
|
||||
set (LIBRARY_FROM_CACHE 0)
|
||||
set (CSF_LIBRARY_ORIGINAL ${CSF_LIBRARY})
|
||||
string (TOLOWER "${CSF_LIBRARY}" CSF_LIBRARY)
|
||||
string (REPLACE "+" "[+]" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
string (REPLACE "." "" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
|
||||
string (REGEX MATCHALL "(^|;)3RDPARTY_[^;]+_LIBRARY[^;]*" ALL_CACHE_VARIABLES "${ALL_CACHE_VARIABLES}")
|
||||
set (DEBUG_DIR "")
|
||||
set (RELEASE_DIR "")
|
||||
foreach (CACHE_VARIABLE ${ALL_CACHE_VARIABLES})
|
||||
set (CURRENT_CACHE_LIBRARY ${${CACHE_VARIABLE}})
|
||||
string (TOLOWER "${CACHE_VARIABLE}" CACHE_VARIABLE)
|
||||
if (NOT EXISTS "${CURRENT_CACHE_LIBRARY}" OR IS_DIRECTORY "${CURRENT_CACHE_LIBRARY}")
|
||||
continue()
|
||||
endif()
|
||||
string (REGEX MATCH "_${CSF_LIBRARY}$" IS_ENDING "${CACHE_VARIABLE}")
|
||||
string (REGEX MATCH "^([a-z]+)" CSF_WO_VERSION "${CSF_LIBRARY}")
|
||||
string (REGEX MATCH "_${CSF_WO_VERSION}$" IS_ENDING_WO_VERSION "${CACHE_VARIABLE}")
|
||||
|
||||
if ("3rdparty_${CSF_LIBRARY}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
"3rdparty_${CSF_WO_VERSION}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
NOT "x${IS_ENDING}" STREQUAL "x" OR
|
||||
NOT "x${IS_ENDING_WO_VERSION}" STREQUAL "x")
|
||||
get_filename_component(LIBRARY_NAME "${CURRENT_CACHE_LIBRARY}" NAME)
|
||||
list (APPEND FOUND_LIBS "${LIBRARY_NAME}")
|
||||
get_filename_component(LIBRARY_DIR "${CURRENT_CACHE_LIBRARY}" DIRECTORY)
|
||||
set (RELEASE_DIR "${LIBRARY_DIR}")
|
||||
set (LIBRARY_FROM_CACHE 1)
|
||||
elseif ("3rdparty_${CSF_LIBRARY}_library_debug" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
"3rdparty_${CSF_LIBRARY}_debug_library" STREQUAL "${CACHE_VARIABLE}")
|
||||
get_filename_component(LIBRARY_NAME "${CURRENT_CACHE_LIBRARY}" NAME)
|
||||
list (APPEND FOUND_LIBS "${LIBRARY_NAME}")
|
||||
get_filename_component(LIBRARY_DIR "${CURRENT_CACHE_LIBRARY}" DIRECTORY)
|
||||
set (DEBUG_DIR "${LIBRARY_DIR}")
|
||||
set (LIBRARY_FROM_CACHE 1)
|
||||
endif()
|
||||
|
||||
if (DEBUG_DIR AND RELEASE_DIR)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT ${LIBRARY_FROM_CACHE} AND NOT "${CSF_LIBRARY}" STREQUAL "")
|
||||
list (APPEND FOUND_LIBS "${CSF_LIBRARY_ORIGINAL}")
|
||||
continue()
|
||||
endif()
|
||||
if (DEBUG_DIR AND RELEASE_DIR)
|
||||
list (APPEND FOUND_DEBUG_DIRS "${DEBUG_DIR}")
|
||||
list (APPEND FOUND_RELEASE_DIRS "${RELEASE_DIR}")
|
||||
elseif (DEBUG_DIR)
|
||||
list (APPEND FOUND_DEBUG_DIRS "${DEBUG_DIR}")
|
||||
list (APPEND FOUND_RELEASE_DIRS "${DEBUG_DIR}")
|
||||
message (WARNING "Debug directory found but no release directory found. Using debug directory for both configurations.")
|
||||
elseif (RELEASE_DIR)
|
||||
list (APPEND FOUND_DEBUG_DIRS "${RELEASE_DIR}")
|
||||
list (APPEND FOUND_RELEASE_DIRS "${RELEASE_DIR}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Cache the result
|
||||
set_property(GLOBAL PROPERTY "CACHED_LIBS_${CACHE_KEY}" "${FOUND_LIBS}")
|
||||
set_property(GLOBAL PROPERTY "CACHED_DEBUG_DIRS_${CACHE_KEY}" "${FOUND_DEBUG_DIRS}")
|
||||
set_property(GLOBAL PROPERTY "CACHED_RELEASE_DIRS_${CACHE_KEY}" "${FOUND_RELEASE_DIRS}")
|
||||
endif()
|
||||
|
||||
# Append found values to the external variable
|
||||
list(APPEND ${LIST_NAME} ${FOUND_LIBS})
|
||||
set(${LIST_NAME} "${${LIST_NAME}}" PARENT_SCOPE)
|
||||
|
||||
# Handle library directories for different build configurations
|
||||
list (REMOVE_DUPLICATES FOUND_RELEASE_DIRS)
|
||||
list (REMOVE_DUPLICATES FOUND_DEBUG_DIRS)
|
||||
|
||||
foreach (RELEASE_DIR ${FOUND_RELEASE_DIRS})
|
||||
get_filename_component(RELEASE_DIR_ABS "${RELEASE_DIR}" ABSOLUTE)
|
||||
target_link_directories(${TARGET_NAME} PUBLIC "$<$<CONFIG:RELEASE>:${RELEASE_DIR_ABS}>;$<$<CONFIG:RELWITHDEBINFO>:${RELEASE_DIR_ABS}>")
|
||||
endforeach()
|
||||
|
||||
foreach (DEBUG_DIR ${FOUND_DEBUG_DIRS})
|
||||
get_filename_component(DEBUG_DIR_ABS "${DEBUG_DIR}" ABSOLUTE)
|
||||
target_link_directories(${TARGET_NAME} PUBLIC "$<$<CONFIG:DEBUG>:${DEBUG_DIR_ABS}>")
|
||||
endforeach()
|
||||
endfunction()
|
||||
macro(OCCT_ADD_VCPKG_FEATURE THE_FEATURE)
|
||||
if (BUILD_USE_VCPKG)
|
||||
list(APPEND VCPKG_MANIFEST_FEATURES "${THE_FEATURE}" PARENT_SCOPE)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro (OCCT_UNSET_VCPKG_FEATURE THE_FEATURE)
|
||||
if (BUILD_USE_VCPKG)
|
||||
list (REMOVE_ITEM VCPKG_MANIFEST_FEATURES "${THE_FEATURE}" PARENT_SCOPE)
|
||||
endif()
|
||||
endmacro()
|
||||
|
@@ -28,6 +28,9 @@ if ("${USED_PACKAGES}" STREQUAL "")
|
||||
set (USED_PACKAGES ${PROJECT_NAME})
|
||||
endif()
|
||||
|
||||
set (PROJECT_LIBRARIES_DEBUG)
|
||||
set (PROJECT_LIBRARIES_RELEASE)
|
||||
|
||||
if (USE_QT)
|
||||
# Qt dependencies
|
||||
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/qt_macro)
|
||||
@@ -56,6 +59,10 @@ foreach (OCCT_PACKAGE ${USED_PACKAGES})
|
||||
set (OCCT_PACKAGE_NAME "${OCCT_PACKAGE}")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
list (APPEND PRECOMPILED_DEFS "-D__${OCCT_PACKAGE_NAME}_DLL")
|
||||
endif()
|
||||
|
||||
set (SOURCE_FILES)
|
||||
set (HEADER_FILES)
|
||||
|
||||
@@ -64,7 +71,7 @@ foreach (OCCT_PACKAGE ${USED_PACKAGES})
|
||||
set (HEADER_FILES_FILTERING ${ALL_FILES})
|
||||
set (SOURCE_FILES_FILTERING ${ALL_FILES})
|
||||
|
||||
list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|p|g|lxx)")
|
||||
list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|lxx|gxx)")
|
||||
|
||||
if(APPLE)
|
||||
list (FILTER SOURCE_FILES_FILTERING INCLUDE REGEX ".+[.](c|mm)")
|
||||
@@ -199,7 +206,9 @@ set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_D
|
||||
VERSION "${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}")
|
||||
|
||||
set (USED_TOOLKITS_BY_CURRENT_PROJECT)
|
||||
set (USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT)
|
||||
set (USED_EXTERNLIB_AND_TOOLKITS)
|
||||
set (USED_PROJECT_LIBRARIES)
|
||||
|
||||
# SOME EXECUTABLE PROJECTS MAY USE CUSTOM TOOLKITS AND EXTERNAL LIBRARIES
|
||||
if (CUSTOM_EXTERNLIB)
|
||||
@@ -243,9 +252,55 @@ foreach (USED_ITEM ${USED_EXTERNLIB_AND_TOOLKITS})
|
||||
if ("${CURRENT_CSF}" STREQUAL "${CSF_OpenGlesLibs}")
|
||||
add_definitions (-DHAVE_GLES2)
|
||||
endif()
|
||||
PROCESS_CSF_LIBRARIES ("${CURRENT_CSF}" USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT "${PROJECT_NAME}")
|
||||
set (LIBRARY_FROM_CACHE 0)
|
||||
separate_arguments (CURRENT_CSF)
|
||||
foreach (CSF_LIBRARY ${CURRENT_CSF})
|
||||
string (TOLOWER "${CSF_LIBRARY}" CSF_LIBRARY)
|
||||
string (REPLACE "+" "[+]" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
string (REPLACE "." "" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
|
||||
string (REGEX MATCHALL "(^|;)3RDPARTY_[^;]+_LIBRARY[^;]*" ALL_CACHE_VARIABLES "${ALL_CACHE_VARIABLES}")
|
||||
foreach (CACHE_VARIABLE ${ALL_CACHE_VARIABLES})
|
||||
set (CURRENT_CACHE_LIBRARY ${${CACHE_VARIABLE}})
|
||||
string (TOLOWER "${CACHE_VARIABLE}" CACHE_VARIABLE)
|
||||
if (EXISTS "${CURRENT_CACHE_LIBRARY}" AND NOT IS_DIRECTORY "${CURRENT_CACHE_LIBRARY}")
|
||||
string (REGEX MATCH "_${CSF_LIBRARY}(_debug|_release)*$" IS_ENDING "${CACHE_VARIABLE}")
|
||||
string (REGEX MATCH "^([a-z]+)" CSF_WO_VERSION "${CSF_LIBRARY}")
|
||||
string (REGEX MATCH "_${CSF_WO_VERSION}(_debug|_release)*$" IS_ENDING_WO_VERSION "${CACHE_VARIABLE}")
|
||||
if ("3rdparty_${CSF_LIBRARY}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
"3rdparty_${CSF_WO_VERSION}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
NOT "x${IS_ENDING}" STREQUAL "x" OR
|
||||
NOT "x${IS_ENDING_WO_VERSION}" STREQUAL "x")
|
||||
string (REGEX MATCH "_debug$" IS_DEBUG "${CACHE_VARIABLE}")
|
||||
list (APPEND USED_PROJECT_LIBRARIES "${CSF_LIBRARY}")
|
||||
if ("x${IS_DEBUG}" STREQUAL "x")
|
||||
list (APPEND PROJECT_LIBRARIES_RELEASE "${CURRENT_CACHE_LIBRARY}")
|
||||
set (USED_PROJECT_LIBRARY_${CSF_LIBRARY}_RELEASE "${CURRENT_CACHE_LIBRARY}")
|
||||
else()
|
||||
list (APPEND PROJECT_LIBRARIES_DEBUG "${CURRENT_CACHE_LIBRARY}")
|
||||
set (USED_PROJECT_LIBRARY_${CSF_LIBRARY}_DEBUG "${CURRENT_CACHE_LIBRARY}")
|
||||
endif()
|
||||
set (LIBRARY_FROM_CACHE 1)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
if (NOT ${LIBRARY_FROM_CACHE} AND NOT "${CURRENT_CSF}" STREQUAL "")
|
||||
# prepare a list from a string with whitespaces
|
||||
separate_arguments (CURRENT_CSF)
|
||||
list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT ${CURRENT_CSF})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
foreach (USED_ITEM ${USED_PROJECT_LIBRARIES})
|
||||
if (USED_PROJECT_LIBRARY_${USED_ITEM}_RELEASE AND NOT USED_PROJECT_LIBRARY_${USED_ITEM}_DEBUG)
|
||||
list (APPEND PROJECT_LIBRARIES_DEBUG "${USED_PROJECT_LIBRARY_${USED_ITEM}_RELEASE}")
|
||||
endif()
|
||||
unset (USED_PROJECT_LIBRARY_${CSF_LIBRARY}_RELEASE)
|
||||
unset (USED_PROJECT_LIBRARY_${CSF_LIBRARY}_DEBUG)
|
||||
endforeach()
|
||||
unset (USED_PROJECT_LIBRARIES)
|
||||
|
||||
if (APPLE)
|
||||
list (FIND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT X11 IS_X11_FOUND)
|
||||
if (NOT ${IS_X11_FOUND} EQUAL -1)
|
||||
@@ -288,14 +343,12 @@ if (BUILD_SHARED_LIBS OR EXECUTABLE_PROJECT)
|
||||
endif()
|
||||
target_link_libraries (${PROJECT_NAME} ${USED_TOOLKITS_BY_CURRENT_PROJECT} ${USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT})
|
||||
|
||||
if (USE_QT)
|
||||
foreach (PROJECT_LIBRARY_DEBUG ${PROJECT_LIBRARIES_DEBUG})
|
||||
target_link_libraries (${PROJECT_NAME} debug ${PROJECT_LIBRARY_DEBUG})
|
||||
endforeach()
|
||||
foreach (PROJECT_LIBRARY_RELEASE ${PROJECT_LIBRARIES_RELEASE})
|
||||
target_link_libraries (${PROJECT_NAME} optimized ${PROJECT_LIBRARY_RELEASE})
|
||||
endforeach()
|
||||
endif()
|
||||
foreach (PROJECT_LIBRARY_DEBUG ${PROJECT_LIBRARIES_DEBUG})
|
||||
target_link_libraries (${PROJECT_NAME} debug ${PROJECT_LIBRARY_DEBUG})
|
||||
endforeach()
|
||||
foreach (PROJECT_LIBRARY_RELEASE ${PROJECT_LIBRARIES_RELEASE})
|
||||
target_link_libraries (${PROJECT_NAME} optimized ${PROJECT_LIBRARY_RELEASE})
|
||||
endforeach()
|
||||
|
||||
# suppress deprecation warnings inside OCCT itself for old gcc versions with unavailable Standard_DISABLE_DEPRECATION_WARNINGS
|
||||
if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
@@ -2,17 +2,4 @@
|
||||
# OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.
|
||||
# https://github.com/ValveSoftware/openvr
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
set (USED_3RDPARTY_OPENVR_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a)
|
||||
find_library (FIND_OPENVR_LIB NAMES "${CSF_OpenVR}"
|
||||
PATHS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib"
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
set (CSF_OpenVR "${FIND_OPENVR_LIB}")
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/")
|
||||
return()
|
||||
endif()
|
||||
|
||||
THIRDPARTY_PRODUCT("OPENVR" "openvr.h" "CSF_OpenVR" "")
|
||||
|
@@ -1,13 +1,5 @@
|
||||
# RapidJSON
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package(RapidJSON CONFIG REQUIRED)
|
||||
set(CSF_RapidJSON rapidjson)
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/rapidjson")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED INSTALL_RAPIDJSON)
|
||||
set (INSTALL_RAPIDJSON OFF CACHE BOOL "${INSTALL_RAPIDJSON_DESCR}")
|
||||
endif()
|
||||
|
@@ -1,18 +1,5 @@
|
||||
# tbb
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package(TBB CONFIG REQUIRED)
|
||||
set(CSF_TBB TBB::tbb TBB::tbbmalloc)
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_TBB_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
else()
|
||||
set (USED_3RDPARTY_TBB_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
|
||||
endif()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/tbb")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (MSVC AND BUILD_SHARED_LIBS)
|
||||
add_definitions (-D__TBB_NO_IMPLICIT_LINKAGE)
|
||||
add_definitions (-D__TBBMALLOC_NO_IMPLICIT_LINKAGE)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# tcl
|
||||
|
||||
if (NOT DEFINED INSTALL_TCL AND NOT BUILD_USE_VCPKG)
|
||||
if (NOT DEFINED INSTALL_TCL)
|
||||
set (INSTALL_TCL OFF CACHE BOOL "${INSTALL_TCL_DESCR}")
|
||||
endif()
|
||||
|
||||
@@ -14,10 +14,6 @@ if (NOT DEFINED 3RDPARTY_TCL_INCLUDE_DIR)
|
||||
set (3RDPARTY_TCL_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of tcl")
|
||||
endif()
|
||||
|
||||
if (BUILD_USE_VCPKG)
|
||||
set (3RDPARTY_TCL_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE PATH "The directory containing tcl" FORCE)
|
||||
set (3RDPARTY_TCL_INCLUDE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" CACHE FILEPATH "The directory containing headers of tcl" FORCE)
|
||||
endif()
|
||||
|
||||
# tcl library file (with absolute path)
|
||||
if (NOT DEFINED 3RDPARTY_TCL_LIBRARY OR NOT 3RDPARTY_TCL_LIBRARY_DIR)
|
||||
|
@@ -18,12 +18,6 @@ if (NOT DEFINED 3RDPARTY_TK_INCLUDE_DIR)
|
||||
set (3RDPARTY_TK_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of tk")
|
||||
endif()
|
||||
|
||||
# if (BUILD_USE_VCPKG)
|
||||
# set (3RDPARTY_TK_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE PATH "The directory containing tk" FORCE)
|
||||
# set (3RDPARTY_TCLTK_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE PATH "The directory containing tcltk" FORCE)
|
||||
# set (3RDPARTY_TK_INCLUDE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" CACHE FILEPATH "The directory containing headers of tk" FORCE)
|
||||
# endif()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
# tk library file (with absolute path)
|
||||
if (NOT DEFINED 3RDPARTY_TK_LIBRARY OR NOT 3RDPARTY_TK_LIBRARY_DIR)
|
||||
@@ -196,8 +190,7 @@ if (BUILD_SHARED_LIBS)
|
||||
if (3RDPARTY_TK_LIBRARY AND EXISTS "${3RDPARTY_TK_LIBRARY}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_TK_LIBRARY_DIR}")
|
||||
else()
|
||||
set (USE_TK OFF)
|
||||
message(STATUS "Warning: TK library is not found. TK will be disabled.")
|
||||
list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_TK_LIBRARY_DIR)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
|
@@ -1,19 +1,5 @@
|
||||
# vtk
|
||||
|
||||
# vcpkg processing
|
||||
if (BUILD_USE_VCPKG)
|
||||
find_package(VTK REQUIRED)
|
||||
set(CSF_VTK VTK::CommonCore)
|
||||
set(IS_VTK_9XX 1)
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_VTK_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")
|
||||
else()
|
||||
set (USED_3RDPARTY_VTK_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
|
||||
endif()
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED INSTALL_VTK)
|
||||
set (INSTALL_VTK OFF CACHE BOOL "${INSTALL_VTK_DESCR}")
|
||||
endif()
|
||||
|
5
adm/qmake/.gitignore
vendored
Normal file
5
adm/qmake/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*/*.pro
|
||||
/*/*/*.pro
|
||||
*.pro.user
|
||||
custom.pri
|
||||
custom.auto.pri
|
165
adm/qmake/OccCppConfig.pri
Normal file
165
adm/qmake/OccCppConfig.pri
Normal file
@@ -0,0 +1,165 @@
|
||||
# This is project defines C++ compilation rules for building an OCCT Toolkit.
|
||||
|
||||
exists(custom.auto.pri) { include(custom.auto.pri) }
|
||||
exists(custom.pri) { include(custom.pri) }
|
||||
|
||||
# Disable some dummy Qt defaults
|
||||
QT -= core gui
|
||||
CONFIG -= qt app_bundle
|
||||
CONFIG -= qml_debug
|
||||
CONFIG -= debug_and_release
|
||||
|
||||
OccGitRoot = $$_PRO_FILE_PWD_/../../../..
|
||||
|
||||
# Define compilation flags
|
||||
CONFIG += warn_on
|
||||
QMAKE_CFLAGS_WARN_ON = -Wall -Wextra
|
||||
QMAKE_CXXFLAGS_WARN_ON = -Wall -Wextra
|
||||
win32 {
|
||||
QMAKE_CFLAGS_WARN_ON = -W4
|
||||
QMAKE_CXXFLAGS_WARN_ON = -W4
|
||||
QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
|
||||
QMAKE_CXXFLAGS_STL_ON = /EHa
|
||||
|
||||
QMAKE_CXXFLAGS += -fp:precise
|
||||
#QMAKE_CXXFLAGS -= -Zc:throwingNew
|
||||
#QMAKE_CXXFLAGS -= -Zc:rvalueCast
|
||||
|
||||
QMAKE_LFLAGS += -INCREMENTAL:NO
|
||||
|
||||
CONFIG(debug, debug|release) {
|
||||
QMAKE_CXXFLAGS += -Od
|
||||
QMAKE_CXXFLAGS += -Ob1
|
||||
}
|
||||
|
||||
DEFINES -= WIN32
|
||||
DEFINES -= WIN64
|
||||
DEFINES += _CRT_SECURE_NO_WARNINGS
|
||||
DEFINES += _CRT_NONSTDC_NO_DEPRECATE
|
||||
DEFINES += _SCL_SECURE_NO_WARNINGS
|
||||
} else {
|
||||
CONFIG += c++11
|
||||
clang {
|
||||
QMAKE_CFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Wshorten-64-to-32
|
||||
}
|
||||
QMAKE_CFLAGS += -fexceptions
|
||||
QMAKE_CXXFLAGS += -fexceptions
|
||||
QMAKE_CXXFLAGS += -fvisibility=default
|
||||
DEFINES += OCC_CONVERT_SIGNALS
|
||||
mac {
|
||||
iphoneos {
|
||||
QMAKE_IOS_DEPLOYMENT_TARGET = 8.0
|
||||
} else {
|
||||
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14
|
||||
}
|
||||
} else:gcc {
|
||||
# ask linker to report missing library dependencies
|
||||
QMAKE_LFLAGS += -Wl,-z,defs
|
||||
}
|
||||
}
|
||||
!CONFIG(debug, debug|release) {
|
||||
# disable exceptions in Release builds
|
||||
DEFINES += No_Exception
|
||||
HAVE_RelWithDebInfo {
|
||||
win32 {
|
||||
CONFIG += force_debug_info
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Define output folder depending on compiler name
|
||||
MY_BITNESS = 32
|
||||
|
||||
equals(QMAKE_TARGET.arch, x86_64) | equals(QMAKE_HOST.arch, x86_64) { MY_BITNESS = 64 }
|
||||
equals(ANDROID_TARGET_ARCH, arm64-v8a) { MY_BITNESS = 64 }
|
||||
has64Target = $$find(QMAKE_TARGET.arch, "x64")
|
||||
count(has64Target, 1) { MY_BITNESS = 64 }
|
||||
|
||||
MY_PLATFORM = platform
|
||||
CONFIG(iphonesimulator, iphoneos|iphonesimulator) { MY_PLATFORM = iphonesimulator
|
||||
} else:CONFIG(iphoneos, iphoneos|iphonesimulator) { MY_PLATFORM = iphoneos
|
||||
} else:android { MY_PLATFORM = android-$$ANDROID_TARGET_ARCH
|
||||
} else:win32 { MY_PLATFORM = win$$MY_BITNESS
|
||||
} else:mac { MY_PLATFORM = mac
|
||||
} else:linux { MY_PLATFORM = lin
|
||||
} else:unix { MY_PLATFORM = unix
|
||||
} else { warning (Unknown platform. "$$MY_PLATFORM" is used) }
|
||||
|
||||
MY_COMPILER = compiler
|
||||
MY_VC_VER = 0
|
||||
android-g++ {
|
||||
MY_COMPILER = gcc
|
||||
} else:clang {
|
||||
MY_COMPILER = clang
|
||||
} else:gcc {
|
||||
MY_COMPILER = gcc
|
||||
} else:win32-msvc2010 {
|
||||
MY_COMPILER = vc10
|
||||
MY_VC_VER = 10
|
||||
} else:win32-msvc2012 {
|
||||
MY_COMPILER = vc11
|
||||
MY_VC_VER = 11
|
||||
} else:win32-msvc2013 {
|
||||
MY_COMPILER = vc12
|
||||
MY_VC_VER = 12
|
||||
} else:win32-msvc2015 {
|
||||
MY_COMPILER = vc14
|
||||
MY_VC_VER = 14
|
||||
} else:win32-msvc2017 {
|
||||
MY_COMPILER = vc14
|
||||
MY_VC_VER = 14
|
||||
} else:win32-msvc {
|
||||
MY_COMPILER = vc14
|
||||
MY_VC_VER = 14
|
||||
aMsvcVer = $$(VisualStudioVersion)
|
||||
equals(aMsvcVer, 14.0){
|
||||
# VS2015, vc140
|
||||
} else:equals(aMsvcVer, 15.0){
|
||||
# VS2015, vc141
|
||||
} else:equals(aMsvcVer, 16.0){
|
||||
# VS2019, vc142
|
||||
} else:equals(aMsvcVer, 17.0){
|
||||
# VS2022, vc143
|
||||
} else {
|
||||
warning (Unknown msvc version. "$$MY_COMPILER" is used)
|
||||
}
|
||||
} else {
|
||||
warning (Unknown compiler. "$$MY_COMPILER" is used)
|
||||
}
|
||||
MY_PLATFORM_AND_COMPILER = $$MY_PLATFORM/$$MY_COMPILER
|
||||
#warning (The platform is "$$MY_PLATFORM"; bitness is "$$MY_BITNESS"; compiler is "$$MY_COMPILER")
|
||||
|
||||
CONFIG(debug, debug|release) { MY_BUILDTYPE = d }
|
||||
|
||||
DESTDIR = $$OccGitRoot/$${MY_PLATFORM_AND_COMPILER}/lib$${MY_BUILDTYPE}
|
||||
win32 {
|
||||
DESTDIR = $$OccGitRoot/win$${MY_BITNESS}/vc$${MY_VC_VER}/bin$${MY_BUILDTYPE}
|
||||
aLibDest = $$DESTDIR/../lib$${MY_BUILDTYPE}
|
||||
#DLLDESTDIR = $$DESTDIR/../bin$${MY_BUILDTYPE}
|
||||
|
||||
# dummy target creating lib/libd folder
|
||||
occtkgen_libfolder.input = $$_PRO_FILE_PWD_/../../OcctDummy.in
|
||||
occtkgen_libfolder.output = $$aLibDest/dummy.tmp
|
||||
occtkgen_libfolder.config = verbatim
|
||||
QMAKE_SUBSTITUTES += occtkgen_libfolder
|
||||
|
||||
LIBS += -L$$aLibDest
|
||||
equals(TEMPLATE, lib) {
|
||||
QMAKE_CLEAN += $$DESTDIR/$${TARGET}.dll
|
||||
QMAKE_CLEAN += $$aLibDest/$${TARGET}.lib
|
||||
QMAKE_CLEAN += $$aLibDest/$${TARGET}.exp
|
||||
} else {
|
||||
QMAKE_CLEAN += $$DESTDIR/$${TARGET}.exe
|
||||
}
|
||||
QMAKE_CLEAN += $$DESTDIR/$${TARGET}.pdb
|
||||
QMAKE_LFLAGS += -PDB:"$$DESTDIR/$${TARGET}.pdb"
|
||||
QMAKE_LFLAGS += -IMPLIB:"$$aLibDest/$${TARGET}.lib"
|
||||
} else {
|
||||
LIBS += -L$$DESTDIR
|
||||
equals(TEMPLATE, app) {
|
||||
DESTDIR = $$OccGitRoot/$${MY_PLATFORM_AND_COMPILER}/bin$${MY_BUILDTYPE}
|
||||
}
|
||||
}
|
||||
|
||||
OBJECTS_DIR = $$DESTDIR/../obj$${MY_BUILDTYPE}/$${TARGET}
|
42
adm/qmake/OccModule.pri
Normal file
42
adm/qmake/OccModule.pri
Normal file
@@ -0,0 +1,42 @@
|
||||
# This is a project template file defining an OCCT Module.
|
||||
# This project should be included with predefined OCC_MODULE_NAME variable.
|
||||
TEMPLATE = subdirs
|
||||
exists(custom.auto.pri) { include(custom.auto.pri) }
|
||||
exists(custom.pri) { include(custom.pri) }
|
||||
|
||||
# Iterate over Toolkits within current Module and generate sub-project per Toolkit
|
||||
aModuleList = $$cat(../MODULES, lines)
|
||||
for (aModuleIter, aModuleList) {
|
||||
#aTkList = $$list($$aModuleIter) - this doesn't work, qmake bug?
|
||||
aModule = $$first($$list($$aModuleIter))
|
||||
equals (aModule, $$OCC_MODULE_NAME) {
|
||||
for (aToolKit, $$list($$aModuleIter)) {
|
||||
toSkipToolkit = 0
|
||||
equals (aToolKit, $$OCC_MODULE_NAME) { toSkipToolkit = 1 }
|
||||
!HAVE_VTK:equals (aToolKit, "TKIVtk") { toSkipToolkit = 1 }
|
||||
!HAVE_VTK:equals (aToolKit, "TKIVtkDraw") { toSkipToolkit = 1 }
|
||||
#!HAVE_OPENGL: equals (aToolKit, "TKOpenGl") { toSkipToolkit = 1 }
|
||||
#!HAVE_OPENGL: equals (aToolKit, "TKOpenGlTest") { toSkipToolkit = 1 }
|
||||
!HAVE_GLES2: equals (aToolKit, "TKOpenGles") { toSkipToolkit = 1 }
|
||||
!HAVE_GLES2: equals (aToolKit, "TKOpenGlesTest") { toSkipToolkit = 1 }
|
||||
!win32: equals (aToolKit, "TKD3DHost") { toSkipToolkit = 1 }
|
||||
!win32: equals (aToolKit, "TKD3DHostTest") { toSkipToolkit = 1 }
|
||||
equals (toSkipToolkit, 0) {
|
||||
|
||||
#warning(aToolKit($$OCC_MODULE_NAME)=$$aToolKit)
|
||||
eval(occtkgen_$${aToolKit}.input = $$_PRO_FILE_PWD_/../OccToolkit.pro.in)
|
||||
eval(occtkgen_$${aToolKit}.output = $$_PRO_FILE_PWD_/$${aToolKit}/$${aToolKit}.pro)
|
||||
eval(occtkgen_$${aToolKit}.config = verbatim)
|
||||
eval(QMAKE_SUBSTITUTES += occtkgen_$${aToolKit})
|
||||
SUBDIRS += $${aToolKit}
|
||||
|
||||
aModExtList = $$cat(../../src/$${aToolKit}/EXTERNLIB, lines)
|
||||
aTkDepends = $${aToolKit}.depends
|
||||
for (aModExtIter, aModExtList) {
|
||||
contains ($$list($$aModuleIter), $$aModExtIter) { eval ($${aTkDepends} += $$aModExtIter) }
|
||||
}
|
||||
#warning($$aToolKit depends on: $$reverse($${aTkDepends}))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
adm/qmake/OccModule.pro.in
Normal file
2
adm/qmake/OccModule.pro.in
Normal file
@@ -0,0 +1,2 @@
|
||||
OCC_MODULE_NAME = \$\$TARGET
|
||||
include(../OccModule.pri)
|
166
adm/qmake/OccToolkit.pri
Normal file
166
adm/qmake/OccToolkit.pri
Normal file
@@ -0,0 +1,166 @@
|
||||
# This is a project template file defining an OCCT Toolkit.
|
||||
# This project should be included with predefined OCC_TOOLKIT_NAME variable.
|
||||
|
||||
TEMPLATE = lib
|
||||
!exists(../../src/$$OCC_TOOLKIT_NAME/PACKAGES) {
|
||||
TEMPLATE = app
|
||||
CONFIG += console
|
||||
}
|
||||
win32 {
|
||||
# do not append version to DLL name
|
||||
CONFIG += skip_target_version_ext
|
||||
}
|
||||
|
||||
include(OccCppConfig.pri)
|
||||
|
||||
aSrcRoot = $$OccGitRoot/src
|
||||
aHxxRoot = $$OccGitRoot/inc
|
||||
INCLUDEPATH += $$aHxxRoot
|
||||
|
||||
# CSF variables
|
||||
HAVE_FREETYPE { CSF_FREETYPE = -lfreetype }
|
||||
CSF_TclLibs = -ltcl8.6
|
||||
CSF_TclTkLibs = -ltk8.6
|
||||
HAVE_FREEIMAGE { CSF_FreeImagePlus = -lfreeimage } else:win32 { CSF_FreeImagePlus = -lwindowscodecs -lole32 }
|
||||
HAVE_FFMPEG { CSF_FFmpeg = -lavcodec -lavformat -lswscale -lavutil }
|
||||
HAVE_TBB { CSF_TBB = -ltbb -ltbbmalloc }
|
||||
HAVE_ZLIB { CSF_ZLIB = -lzlib }
|
||||
HAVE_LIBLZMA { CSF_LIBLZMA = -lliblzma }
|
||||
HAVE_DRACO { CSF_Draco = -ldraco }
|
||||
win32 {
|
||||
CSF_kernel32 = -lkernel32
|
||||
CSF_advapi32 = -ladvapi32
|
||||
CSF_gdi32 = -lgdi32
|
||||
CSF_user32 = -luser32 -lcomdlg32
|
||||
CSF_shell32 = -lShell32
|
||||
CSF_opengl32 = -lopengl32
|
||||
CSF_wsock32 = -lwsock32
|
||||
CSF_netapi32 = -lnetapi32
|
||||
CSF_OpenGlLibs = -lopengl32
|
||||
CSF_OpenGlesLibs = -llibEGL -llibGLESv2
|
||||
CSF_psapi = -lPsapi
|
||||
CSF_winmm = -lwinmm
|
||||
CSF_d3d9 = -ld3d9
|
||||
CSF_TclLibs = -ltcl86
|
||||
CSF_TclTkLibs = -ltk86
|
||||
CSF_TBB =
|
||||
} else:mac {
|
||||
CSF_dl = -ldl
|
||||
CSF_objc = -lobjc
|
||||
CSF_OpenGlLibs = -framework OpenGL
|
||||
CSF_OpenGlesLibs = -framework OpenGLES
|
||||
iphoneos {
|
||||
CSF_Appkit = -framework UIKit
|
||||
} else {
|
||||
CSF_Appkit = -framework AppKit
|
||||
}
|
||||
CSF_IOKit = -framework IOKit
|
||||
CSF_TclLibs = -framework Tcl
|
||||
CSF_TclTkLibs = -framework Tk
|
||||
} else {
|
||||
CSF_dl = -ldl
|
||||
CSF_ThreadLibs = -lpthread -lrt
|
||||
CSF_OpenGlesLibs = -lEGL -lGLESv2
|
||||
CSF_TclTkLibs = -ltk8.6
|
||||
HAVE_XLIB {
|
||||
CSF_OpenGlLibs = -lGL
|
||||
CSF_XwLibs = -lX11
|
||||
} else {
|
||||
CSF_OpenGlLibs = -lGL -lEGL
|
||||
}
|
||||
HAVE_FREETYPE { CSF_fontconfig = -lfontconfig }
|
||||
}
|
||||
|
||||
for (aCfgIter, CONFIG) {
|
||||
aRes = $$find(aCfgIter, "^HAVE_")
|
||||
!equals(aCfgIter, "HAVE_GLES2") {
|
||||
count(aRes, 1) {
|
||||
DEFINES += $$aCfgIter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Define the list of standard OCCT file extensions
|
||||
aHxxRegex = ^.*\.(hxx|h|lxx|gxx)$
|
||||
aPxxRegex = ^.*\.(pxx)$
|
||||
aCxxRegex = ^.*\.(cxx|cpp|c)$
|
||||
mac { aCxxRegex = ^.*\.(cxx|cpp|c|m|mm)$ }
|
||||
|
||||
# Auxiliary function for probing file extension
|
||||
defineTest (occCheckExtension) {
|
||||
aProbe = $$find(1, "$$2")
|
||||
count(aProbe, 1) { return(true) } else { return(false) }
|
||||
}
|
||||
|
||||
# Auxiliary function for probing compilable files
|
||||
defineTest (occIsCxxFile) { occCheckExtension ($$1, $$aCxxRegex) { return(true) } else { return(false) } }
|
||||
|
||||
# Auxiliary function for probing header files
|
||||
defineTest (occIsHxxFile) { occCheckExtension ($$1, $$aHxxRegex) { return(true) } else { return(false) } }
|
||||
|
||||
aTkFiles = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/FILES, lines)
|
||||
aTkFiles += CMakeLists.txt
|
||||
aPackages = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/PACKAGES, lines)
|
||||
anExternLibs = $$cat($$aSrcRoot/$$OCC_TOOLKIT_NAME/EXTERNLIB, lines)
|
||||
|
||||
for (aTkFileIter, aTkFiles) { OTHER_FILES += $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aTkFileIter }
|
||||
for (anExternLib, anExternLibs) {
|
||||
hasCsf = $$find(anExternLib, CSF_)
|
||||
count(hasCsf, 1) {
|
||||
aList = $$split($$anExternLib, "\n")
|
||||
LIBS += $$aList
|
||||
equals(anExternLib, "CSF_OpenGlLibs") {
|
||||
DEFINES += "HAVE_OPENGL"
|
||||
}
|
||||
equals(anExternLib, "CSF_OpenGlesLibs") {
|
||||
DEFINES += "HAVE_GLES2"
|
||||
}
|
||||
} else {
|
||||
LIBS += -l$$anExternLib
|
||||
}
|
||||
}
|
||||
|
||||
# Iterate over Packages and add compilable files into this project
|
||||
isEmpty (aPackages) { aPackages = $$OCC_TOOLKIT_NAME }
|
||||
for (aPackage, aPackages) {
|
||||
aPackageFolder = $$aSrcRoot/$$OCC_TOOLKIT_NAME/$$aPackage
|
||||
aPackageFiles = $$cat($$aSrcRoot/$$aPackage/FILES, lines)
|
||||
for (aFileIter, aPackageFiles) {
|
||||
occIsCxxFile($$aFileIter) {
|
||||
SOURCES += $$aSrcRoot/$$aPackage/$$aFileIter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
!win32 {
|
||||
aVerList = $$split(VERSION, ".")
|
||||
aVerMaj = $$member(aVerList, 0)
|
||||
aVerMin = $$member(aVerList, 1)
|
||||
aVerMic = $$member(aVerList, 2)
|
||||
|
||||
equals(TEMPLATE, app) {
|
||||
QMAKE_CLEAN += $$DESTDIR/$${TARGET}
|
||||
} else {
|
||||
mac {
|
||||
# override qmake soname versionong logic
|
||||
QMAKE_LFLAGS_SONAME =
|
||||
QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.dylib.$${aVerMaj}.$${aVerMin}
|
||||
|
||||
# extend clean with versioned .dylib files
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.dylib
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.dylib
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.dylib
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.$${aVerMaj}.$${aVerMin}.$${aVerMic}.dylib
|
||||
} else {
|
||||
# override qmake soname versionong logic
|
||||
QMAKE_LFLAGS_SONAME =
|
||||
QMAKE_LFLAGS += -Wl,-soname=lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}
|
||||
|
||||
# extend clean with versioned .so files
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}
|
||||
QMAKE_CLEAN += $$DESTDIR/lib$${TARGET}.so.$${aVerMaj}.$${aVerMin}.$${aVerMic}
|
||||
}
|
||||
}
|
||||
}
|
2
adm/qmake/OccToolkit.pro.in
Normal file
2
adm/qmake/OccToolkit.pro.in
Normal file
@@ -0,0 +1,2 @@
|
||||
OCC_TOOLKIT_NAME = \$\$TARGET
|
||||
include(../../OccToolkit.pri)
|
45
adm/qmake/Occt.pro
Normal file
45
adm/qmake/Occt.pro
Normal file
@@ -0,0 +1,45 @@
|
||||
# This is an experimental Solution project for building entire OCCT framework using qmake.
|
||||
# It can be also used for just source code navigation in Qt Creator without actually building OCCT.
|
||||
# Note, as this is an experimental project, compiler flags might differ from official builds - use it on your own risk!
|
||||
# Building OCCT using CMake is a preferred solution.
|
||||
#
|
||||
# This project GENERATES sub-projects (OCCT modules) dynamically, so to start using it:
|
||||
# - Launch genconf, select Project Format "Qt Project" and configure dependencies; this will also generate "custom.auto.pri".
|
||||
# - Launch genproj to fill in "inc" folder with links to header files.
|
||||
# - Open project in Qt Creator, and call "Run qmake".
|
||||
# - Close the project in Qt Creator, open it again so that you should see the sub-modules in Project tree; call "Run qmake" again.
|
||||
# - "Run qmake" and perform Build.
|
||||
#
|
||||
# Within Debian-based Linux repository Qt Creator can be installed like this:
|
||||
# > sudo apt-get install qtcreator qtbase5-dev
|
||||
|
||||
TEMPLATE = subdirs
|
||||
exists(custom.auto.pri) { include(custom.auto.pri) }
|
||||
exists(custom.pri) { include(custom.pri) }
|
||||
|
||||
OTHER_FILES += OccModule.pro.in \
|
||||
OcctHeaderLink.hxx.in \
|
||||
OccToolkit.pro.in \
|
||||
OccCppConfig.pri \
|
||||
OccModule.pri \
|
||||
OccToolkit.pri \
|
||||
custom.pri.template
|
||||
|
||||
# Iterate over Modules and generate sub-projects
|
||||
aSolModuleList = $$cat(../MODULES, lines)
|
||||
for (aSolModuleIter, aSolModuleList) {
|
||||
aSolModule = $$first($$list($$aSolModuleIter))
|
||||
eval(occtkgen_$${aSolModule}.input = $$_PRO_FILE_PWD_/OccModule.pro.in)
|
||||
eval(occtkgen_$${aSolModule}.output = $$_PRO_FILE_PWD_/$${aSolModule}/$${aSolModule}.pro)
|
||||
eval(occtkgen_$${aSolModule}.config = verbatim)
|
||||
eval(QMAKE_SUBSTITUTES += occtkgen_$${aSolModule})
|
||||
SUBDIRS += $${aSolModule}
|
||||
}
|
||||
|
||||
# These dependencies are manually defined
|
||||
ModelingData.depends = FoundationClasses
|
||||
ModelingAlgorithms.depends = FoundationClasses ModelingData
|
||||
Visualization.depends = FoundationClasses ModelingData ModelingAlgorithms
|
||||
ApplicationFramework.depends = FoundationClasses ModelingData ModelingAlgorithms Visualization
|
||||
DataExchange.depends = FoundationClasses ModelingData ModelingAlgorithms ApplicationFramework
|
||||
Draw.depends = FoundationClasses ModelingData ModelingAlgorithms ApplicationFramework DataExchange Visualization
|
0
adm/qmake/OcctDummy.in
Normal file
0
adm/qmake/OcctDummy.in
Normal file
1
adm/qmake/OcctHeaderLink.hxx.in
Normal file
1
adm/qmake/OcctHeaderLink.hxx.in
Normal file
@@ -0,0 +1 @@
|
||||
#include \"../src/$${OCCT_PACKAGE}/$${OCCT_HEADER}\"
|
17
adm/qmake/custom.pri.template
Normal file
17
adm/qmake/custom.pri.template
Normal file
@@ -0,0 +1,17 @@
|
||||
PRODUCTS_PATH = c:/3rdparty/vc14
|
||||
|
||||
#CONFIG += HAVE_FREEIMAGE
|
||||
#CONFIG += HAVE_FFMPEG
|
||||
#CONFIG += HAVE_TBB
|
||||
#CONFIG += HAVE_GLES2
|
||||
#CONFIG += HAVE_D3D
|
||||
#CONFIG += HAVE_VTK
|
||||
|
||||
aFreeType = $$PRODUCTS_PATH/freetype-2.5.5-vc14-64
|
||||
aTclTk = $$PRODUCTS_PATH/tcltk-86-64
|
||||
|
||||
INCLUDEPATH += $$aFreeType/include
|
||||
LIBS += -L$$aFreeType/lib
|
||||
|
||||
INCLUDEPATH += $$aTclTk/include
|
||||
LIBS += -L$$aTclTk/lib
|
39
adm/qmake/qtcreator-occt-cpp.xml
Normal file
39
adm/qmake/qtcreator-occt-cpp.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.6.1, 2016-05-19T14:46:43. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">true</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">false</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">true</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">true</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">true</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">2</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">true</value>
|
||||
<value type="int" key="PaddingMode">2</value>
|
||||
<value type="bool" key="SpacesForTabs">true</value>
|
||||
<value type="int" key="TabSize">2</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">occt</value>
|
||||
</data>
|
||||
</qtcreator>
|
@@ -16,7 +16,12 @@ if /I "%VCVER%" == "@COMPILER@" (
|
||||
set "FFMPEG_DIR=@3RDPARTY_FFMPEG_DLL_DIR@"
|
||||
set "JEMALLOC_DIR=@3RDPARTY_JEMALLOC_LIBRARY_DIR@"
|
||||
set "OPENVR_DIR=@3RDPARTY_OPENVR_DLL_DIRS@"
|
||||
|
||||
if exist "@3RDPARTY_DRACO_DLL_DIR_draco@%3" (
|
||||
set "DRACO_DIR=@3RDPARTY_DRACO_DLL_DIR_draco@%3"
|
||||
) else (
|
||||
set "DRACO_DIR=@3RDPARTY_DRACO_DLL_DIR_draco@"
|
||||
)
|
||||
|
||||
if not "@3RDPARTY_QT_DIR@" == "" (
|
||||
set "QTDIR=@3RDPARTY_QT_DIR@"
|
||||
)
|
||||
|
@@ -13,6 +13,7 @@ if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
export VTK_DIR="@3RDPARTY_VTK_LIBRARY_DIR@"
|
||||
export FFMPEG_DIR="@3RDPARTY_FFMPEG_LIBRARY_DIR@"
|
||||
export JEMALLOC_DIR="@3RDPARTY_JEMALLOC_LIBRARY_DIR@"
|
||||
export DRACO_DIR="@3RDPARTY_DRACO_LIBRARY_DIRS@"
|
||||
|
||||
if [ "x@3RDPARTY_QT_DIR" != "x" ]; then
|
||||
export QTDIR="@3RDPARTY_QT_DIR@"
|
||||
|
@@ -18,6 +18,11 @@ if /I "%VCVER%" == "@COMPILER@" (
|
||||
set "FFMPEG_DIR=@USED_3RDPARTY_FFMPEG_DIR@"
|
||||
set "JEMALLOC_DIR=@USED_3RDPARTY_JEMALLOC_DIR@"
|
||||
set "OPENVR_DIR=@USED_3RDPARTY_OPENVR_DIR@"
|
||||
if exist "@USED_3RDPARTY_DRACO_DIR@%3" (
|
||||
set "DRACO_DIR=@USED_3RDPARTY_DRACO_DIR@%3"
|
||||
) else (
|
||||
set "DRACO_DIR=@USED_3RDPARTY_DRACO_DIR@"
|
||||
)
|
||||
|
||||
if not "@USED_3RDPARTY_QT_DIR@" == "" (
|
||||
set "QTDIR=@USED_3RDPARTY_QT_DIR@"
|
||||
|
@@ -13,6 +13,7 @@ if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
export VTK_DIR="@USED_3RDPARTY_VTK_DIR@"
|
||||
export FFMPEG_DIR="@USED_3RDPARTY_FFMPEG_DIR@"
|
||||
export JEMALLOC_DIR="@USED_3RDPARTY_JEMALLOC_DIR@"
|
||||
export DRACO_DIR="@USED_3RDPARTY_DRACO_DIR@"
|
||||
|
||||
if [ "x@USED_3RDPARTY_QT_DIR@" != "x" ]; then
|
||||
export QTDIR="@USED_3RDPARTY_QT_DIR@"
|
||||
|
@@ -160,6 +160,7 @@ if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%"
|
||||
if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%"
|
||||
if not ["%JEMALLOC_DIR%"] == [""] set "PATH=%JEMALLOC_DIR%;%PATH%"
|
||||
if not ["%OPENVR_DIR%"] == [""] set "PATH=%OPENVR_DIR%;%PATH%"
|
||||
if not ["%DRACO_DIR%"] == [""] set "PATH=%DRACO_DIR%;%PATH%"
|
||||
|
||||
rem ----- Set path to 3rd party and OCCT libraries -----
|
||||
if not "%CSF_OCCTBinPath%" == "" (
|
||||
|
@@ -21,7 +21,7 @@ shopt -u nocasematch
|
||||
|
||||
# ----- Set path to 3rd party and OCCT libraries -----
|
||||
anArch=`uname -m`
|
||||
if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ] && [ "$anArch" != "aarch64"]; then
|
||||
if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
|
||||
export ARCH="32";
|
||||
else
|
||||
export ARCH="64";
|
||||
|
@@ -23,7 +23,7 @@ shopt -u nocasematch
|
||||
|
||||
# ----- Set path to 3rd party and OCCT libraries -----
|
||||
anArch=`uname -m`
|
||||
if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ] && [ "$anArch" != "aarch64"]; then
|
||||
if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
|
||||
export ARCH="32";
|
||||
else
|
||||
export ARCH="64";
|
||||
|
@@ -1,25 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 89af70d..405680e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -5480,15 +5480,17 @@ case $target_os in
|
||||
;;
|
||||
win32|win64)
|
||||
disable symver
|
||||
- if enabled shared; then
|
||||
+# if enabled shared; then
|
||||
# Link to the import library instead of the normal static library
|
||||
# for shared libs.
|
||||
LD_LIB='%.lib'
|
||||
# Cannot build both shared and static libs with MSVC or icl.
|
||||
- disable static
|
||||
- fi
|
||||
+# disable static
|
||||
+# fi
|
||||
enabled x86_32 && check_ldflags -LARGEADDRESSAWARE
|
||||
shlibdir_default="$bindir_default"
|
||||
+ LIBPREF=""
|
||||
+ LIBSUF=".lib"
|
||||
SLIBPREF=""
|
||||
SLIBSUF=".dll"
|
||||
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
|
||||
index fe424b6..2df70df 100644
|
||||
--- a/fftools/cmdutils.c
|
||||
+++ b/fftools/cmdutils.c
|
||||
@@ -60,6 +60,8 @@
|
||||
#include <sys/resource.h>
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
+#define _WIN32_WINNT 0x0502
|
||||
+#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
@@ -1,40 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 405680e..cc5bf29 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4111,6 +4111,9 @@ for opt do
|
||||
--libfuzzer=*)
|
||||
libfuzzer_path="$optval"
|
||||
;;
|
||||
+ --debug)
|
||||
+ enable debug_configure
|
||||
+ ;;
|
||||
*)
|
||||
optname="${opt%%=*}"
|
||||
optname="${optname#--}"
|
||||
@@ -6316,7 +6319,11 @@ fi
|
||||
|
||||
enabled zlib && { check_pkg_config zlib zlib "zlib.h" zlibVersion ||
|
||||
check_lib zlib zlib.h zlibVersion -lz; }
|
||||
-enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2
|
||||
+if enabled debug_configure; then
|
||||
+ enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2d
|
||||
+else
|
||||
+ enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2
|
||||
+fi
|
||||
enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma
|
||||
|
||||
# On some systems dynamic loading requires no extra linker flags
|
||||
@@ -6434,7 +6441,11 @@ enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8
|
||||
enabled libshine && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer
|
||||
enabled libsmbclient && { check_pkg_config libsmbclient smbclient libsmbclient.h smbc_init ||
|
||||
require libsmbclient libsmbclient.h smbc_init -lsmbclient; }
|
||||
-enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++
|
||||
+if enabled debug_configure; then
|
||||
+ enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++
|
||||
+else
|
||||
+ enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++
|
||||
+fi
|
||||
enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
|
||||
enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init
|
||||
enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init
|
@@ -1,49 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index cc5bf29..ee26559 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6406,7 +6406,8 @@ if enabled libmfx; then
|
||||
fi
|
||||
|
||||
enabled libmodplug && require_pkg_config libmodplug libmodplug libmodplug/modplug.h ModPlug_Load
|
||||
-enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs
|
||||
+enabled libmp3lame && { check_lib libmp3lame lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs ||
|
||||
+ require libmp3lame lame/lame.h lame_set_VBR_quality -llibmp3lame-static -llibmpghip-static $libm_extralibs; }
|
||||
enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_neighborhood_init_withstepdefine ||
|
||||
require libmysofa mysofa.h mysofa_neighborhood_init_withstepdefine -lmysofa $zlib_extralibs; }
|
||||
enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei ||
|
||||
@@ -6446,7 +6447,7 @@ if enabled debug_configure; then
|
||||
else
|
||||
enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++
|
||||
fi
|
||||
-enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
|
||||
+enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr -lm
|
||||
enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init
|
||||
enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init
|
||||
enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket
|
||||
@@ -6527,6 +6528,8 @@ enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal"
|
||||
enabled opencl && { check_pkg_config opencl OpenCL CL/cl.h clEnqueueNDRangeKernel ||
|
||||
check_lib opencl OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL ||
|
||||
check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL ||
|
||||
+ check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL -lAdvapi32 -lOle32 -lCfgmgr32||
|
||||
+ check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL -pthread -ldl ||
|
||||
die "ERROR: opencl not found"; } &&
|
||||
{ test_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" ||
|
||||
test_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" ||
|
||||
@@ -6550,6 +6553,7 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OP
|
||||
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
||||
check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
||||
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
|
||||
+ check_lib openssl openssl/ssl.h OPENSSL_init_ssl -llibssl -llibcrypto -lws2_32 -lgdi32 -lcrypt32 -lAdvapi32 -lUser32||
|
||||
die "ERROR: openssl not found"; }
|
||||
enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init
|
||||
enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create &&
|
||||
@@ -6811,7 +6815,7 @@ enabled amf &&
|
||||
if enabled libc_iconv; then
|
||||
check_func_headers iconv.h iconv
|
||||
elif enabled iconv; then
|
||||
- check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv
|
||||
+ check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv || check_lib iconv iconv.h iconv -liconv -llibcharset
|
||||
fi
|
||||
|
||||
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
|
@@ -1,15 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index ee26559..f2c83b7 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4496,6 +4496,10 @@ msvc_common_flags(){
|
||||
-march=*) ;;
|
||||
-lz) echo zlib.lib ;;
|
||||
-lx264) echo libx264.lib ;;
|
||||
+ -lx265) echo libx265.lib ;;
|
||||
+ -lmp3lame) echo libmp3lame.lib ;;
|
||||
+ -liconv) echo iconv.lib ;;
|
||||
+ -lm) ;;
|
||||
-lstdc++) ;;
|
||||
-l*) echo ${flag#-l}.lib ;;
|
||||
-LARGEADDRESSAWARE) echo $flag ;;
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index f2c83b7..5e42b12 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6379,7 +6379,7 @@ enabled libdavs2 && require_pkg_config libdavs2 "davs2 >= 1.6.0" davs2.
|
||||
enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 dc1394/dc1394.h dc1394_new
|
||||
enabled libdrm && require_pkg_config libdrm libdrm xf86drm.h drmGetVersion
|
||||
enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen ||
|
||||
- { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac &&
|
||||
+ { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac -lm -lstdc++ &&
|
||||
warn "using libfdk without pkg-config"; } }
|
||||
flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite"
|
||||
enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 5e42b12..d8f059f 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6497,7 +6497,7 @@ enabled libwebp && {
|
||||
enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion
|
||||
enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; }
|
||||
enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode ||
|
||||
- { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" &&
|
||||
+ { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs -ldl" &&
|
||||
warn "using libx264 without pkg-config"; } } &&
|
||||
require_cpp_condition libx264 x264.h "X264_BUILD >= 118" &&
|
||||
check_cpp_condition libx262 x264.h "X264_MPEG2"
|
@@ -1,16 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index d8f059f..f3688ad 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6501,7 +6501,10 @@ enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x
|
||||
warn "using libx264 without pkg-config"; } } &&
|
||||
require_cpp_condition libx264 x264.h "X264_BUILD >= 118" &&
|
||||
check_cpp_condition libx262 x264.h "X264_MPEG2"
|
||||
-enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get &&
|
||||
+enabled libx265 && { check_pkg_config libx265 x265 x265.h x265_api_get ||
|
||||
+ { { check_lib libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++ -lgcc_s -lgcc -lrt -lnuma" ||
|
||||
+ require libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++"; } &&
|
||||
+ warn "using libx265 without pkg-config"; } } &&
|
||||
require_cpp_condition libx265 x265.h "X265_BUILD >= 70"
|
||||
enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs"
|
||||
enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get
|
@@ -1,12 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index f3688ad..26e512e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6556,6 +6556,7 @@ enabled omx_rpi && { test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoR
|
||||
enabled omx && require_headers OMX_Core.h
|
||||
enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||
|
||||
check_pkg_config openssl openssl openssl/ssl.h SSL_library_init ||
|
||||
+ check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto $pthreads_extralibs -ldl ||
|
||||
check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||
|
||||
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
||||
check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
@@ -1,16 +0,0 @@
|
||||
diff --git a/libavcodec/mf_utils.c b/libavcodec/mf_utils.c
|
||||
index eeabd0c..ea3a03b 100644
|
||||
--- a/libavcodec/mf_utils.c
|
||||
+++ b/libavcodec/mf_utils.c
|
||||
@@ -22,6 +22,11 @@
|
||||
#define _WIN32_WINNT 0x0602
|
||||
#endif
|
||||
|
||||
+#if !defined(WINVER) || WINVER < 0x0602
|
||||
+#undef WINVER
|
||||
+#define WINVER 0x0602
|
||||
+#endif
|
||||
+
|
||||
#include "mf_utils.h"
|
||||
#include "libavutil/pixdesc.h"
|
||||
|
@@ -1,23 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 26e512e..c0377b6 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -3674,6 +3674,18 @@ vpp_qsv_filter_select="qsvvpp"
|
||||
xfade_opencl_filter_deps="opencl"
|
||||
yadif_cuda_filter_deps="ffnvcodec"
|
||||
yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
|
||||
+ametadata_filter_deps="avformat"
|
||||
+metadata_filter_deps="avformat"
|
||||
+headphone_filter_deps="avcodec"
|
||||
+headphone_filter_select="fft"
|
||||
+showspatial_filter_deps="avcodec"
|
||||
+showspatial_filter_select="fft"
|
||||
+superequalizer_filter_deps="avcodec"
|
||||
+superequalizer_filter_select="rdft"
|
||||
+surround_filter_deps="avcodec"
|
||||
+surround_filter_select="rdft"
|
||||
+sinc_filter_deps="avcodec"
|
||||
+sinc_filter_select="rdft"
|
||||
|
||||
# examples
|
||||
avio_list_dir_deps="avformat avutil"
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index c0377b6..62753ef 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6526,7 +6526,7 @@ enabled libzmq && require_pkg_config libzmq "libzmq >= 4.2.1" zmq.h z
|
||||
enabled libzvbi && require_pkg_config libzvbi zvbi-0.2 libzvbi.h vbi_decoder_new &&
|
||||
{ test_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" ||
|
||||
enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; }
|
||||
-enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlCheckVersion
|
||||
+enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml/xmlversion.h xmlCheckVersion
|
||||
enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt.h mbedtls_x509_crt_init ||
|
||||
check_pkg_config mbedtls mbedtls mbedtls/ssl.h mbedtls_ssl_init ||
|
||||
check_lib mbedtls mbedtls/ssl.h mbedtls_ssl_init -lmbedtls -lmbedx509 -lmbedcrypto ||
|
@@ -1,30 +0,0 @@
|
||||
diff --git a/compat/cuda/ptx2c.sh b/compat/cuda/ptx2c.sh
|
||||
index 48452379c2..1c486dc30e 100755
|
||||
--- a/compat/cuda/ptx2c.sh
|
||||
+++ b/compat/cuda/ptx2c.sh
|
||||
@@ -26,9 +26,10 @@ OUT="$1"
|
||||
IN="$2"
|
||||
NAME="$(basename "$IN" | sed 's/\..*//')"
|
||||
|
||||
-printf "const char %s_ptx[] = \\" "$NAME" > "$OUT"
|
||||
+printf "const char %s_ptx[] = {\\" "$NAME" > "$OUT"
|
||||
echo >> "$OUT"
|
||||
-sed -e "$(printf 's/\r//g')" -e 's/["\\]/\\&/g' -e "$(printf 's/^/\t"/')" -e 's/$/\\n"/' < "$IN" >> "$OUT"
|
||||
-echo ";" >> "$OUT"
|
||||
+xxd -i < "$IN" >> "$OUT"
|
||||
+echo " ,0x00" >> "$OUT"
|
||||
+echo "};" >> "$OUT"
|
||||
|
||||
exit 0
|
||||
diff --git a/configure b/configure
|
||||
index 6190d06b0b..48fb73738e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1046,6 +1046,7 @@ test_nvcc(){
|
||||
tmpo_=$TMPO
|
||||
[ -x "$(command -v cygpath)" ] && tmpcu_=$(cygpath -m $tmpcu_) && tmpo_=$(cygpath -m $tmpo_)
|
||||
test_cmd $nvcc $nvccflags "$@" $NVCC_C $(nvcc_o $tmpo_) $tmpcu_
|
||||
+ test_cmd xxd
|
||||
}
|
||||
|
||||
check_nvcc() {
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c
|
||||
index 1fc0a00..06b2ff0 100644
|
||||
--- a/libavcodec/libaomdec.c
|
||||
+++ b/libavcodec/libaomdec.c
|
||||
@@ -224,7 +224,7 @@ static av_cold int aom_free(AVCodecContext *avctx)
|
||||
|
||||
static av_cold int av1_init(AVCodecContext *avctx)
|
||||
{
|
||||
- return aom_init(avctx, &aom_codec_av1_dx_algo);
|
||||
+ return aom_init(avctx, aom_codec_av1_dx());
|
||||
}
|
||||
|
||||
AVCodec ff_libaom_av1_decoder = {
|
@@ -1,33 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 62753ef..018764e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6508,11 +6508,8 @@ enabled libvpx && {
|
||||
enabled libwebp && {
|
||||
enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion
|
||||
enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; }
|
||||
-enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode ||
|
||||
- { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs -ldl" &&
|
||||
- warn "using libx264 without pkg-config"; } } &&
|
||||
- require_cpp_condition libx264 x264.h "X264_BUILD >= 118" &&
|
||||
- check_cpp_condition libx262 x264.h "X264_MPEG2"
|
||||
+enabled libx264 && check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode &&
|
||||
+ require_cpp_condition libx264 x264.h "X264_BUILD >= 158"
|
||||
enabled libx265 && { check_pkg_config libx265 x265 x265.h x265_api_get ||
|
||||
{ { check_lib libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++ -lgcc_s -lgcc -lrt -lnuma" ||
|
||||
require libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++"; } &&
|
||||
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
|
||||
index 4ddc497..0152d30 100644
|
||||
--- a/libavcodec/libx264.c
|
||||
+++ b/libavcodec/libx264.c
|
||||
@@ -32,10 +32,6 @@
|
||||
#include "packet_internal.h"
|
||||
#include "atsc_a53.h"
|
||||
|
||||
-#if defined(_MSC_VER)
|
||||
-#define X264_API_IMPORTS 1
|
||||
-#endif
|
||||
-
|
||||
#include <x264.h>
|
||||
#include <float.h>
|
||||
#include <math.h>
|
@@ -1,28 +0,0 @@
|
||||
diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/libswscale/aarch64/yuv2rgb_neon.S
|
||||
index f4b220f..af677af 100644
|
||||
--- a/libswscale/aarch64/yuv2rgb_neon.S
|
||||
+++ b/libswscale/aarch64/yuv2rgb_neon.S
|
||||
@@ -169,19 +169,19 @@ function ff_\ifmt\()_to_\ofmt\()_neon, export=1
|
||||
sqdmulh v26.8H, v26.8H, v0.8H // ((Y1*(1<<3) - y_offset) * y_coeff) >> 15
|
||||
sqdmulh v27.8H, v27.8H, v0.8H // ((Y2*(1<<3) - y_offset) * y_coeff) >> 15
|
||||
|
||||
-.ifc \ofmt,argb // 1 2 3 0
|
||||
+.ifc \ofmt,argb
|
||||
compute_rgba v5.8B,v6.8B,v7.8B,v4.8B, v17.8B,v18.8B,v19.8B,v16.8B
|
||||
.endif
|
||||
|
||||
-.ifc \ofmt,rgba // 0 1 2 3
|
||||
+.ifc \ofmt,rgba
|
||||
compute_rgba v4.8B,v5.8B,v6.8B,v7.8B, v16.8B,v17.8B,v18.8B,v19.8B
|
||||
.endif
|
||||
|
||||
-.ifc \ofmt,abgr // 3 2 1 0
|
||||
+.ifc \ofmt,abgr
|
||||
compute_rgba v7.8B,v6.8B,v5.8B,v4.8B, v19.8B,v18.8B,v17.8B,v16.8B
|
||||
.endif
|
||||
|
||||
-.ifc \ofmt,bgra // 2 1 0 3
|
||||
+.ifc \ofmt,bgra
|
||||
compute_rgba v6.8B,v5.8B,v4.8B,v7.8B, v18.8B,v17.8B,v16.8B,v19.8B
|
||||
.endif
|
||||
|
@@ -1,43 +0,0 @@
|
||||
From c534d9f72a89542ed639071b1ae15893aadf1f18 Mon Sep 17 00:00:00 2001
|
||||
From: rcombs <rcombs@rcombs.me>
|
||||
Date: Sat, 16 Apr 2022 03:41:29 -0500
|
||||
Subject: [PATCH] lavc/h264_ps: always include the stop bit in [s|p]ps->data
|
||||
|
||||
The VideoToolbox hwaccel needs the entire NAL (including the stop bit),
|
||||
but ff_h2645_packet_split may remove it. Detect this case by looking for
|
||||
bit counts divisible by 8 and insert a stop-bit-only 0x80 byte.
|
||||
|
||||
Signed-off-by: rcombs <rcombs@rcombs.me>
|
||||
---
|
||||
libavcodec/h264_ps.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
|
||||
index 051f06692c..e16da68dec 100644
|
||||
--- a/libavcodec/h264_ps.c
|
||||
+++ b/libavcodec/h264_ps.c
|
||||
@@ -351,6 +351,10 @@ int ff_h264_decode_seq_parameter_set(GetBitContext *gb, AVCodecContext *avctx,
|
||||
}
|
||||
memcpy(sps->data, gb->buffer, sps->data_size);
|
||||
|
||||
+ // Re-add the removed stop bit (may be used by hwaccels).
|
||||
+ if (!(gb->size_in_bits & 7) && sps->data_size < sizeof(sps->data))
|
||||
+ sps->data[sps->data_size++] = 0x80;
|
||||
+
|
||||
profile_idc = get_bits(gb, 8);
|
||||
constraint_set_flags |= get_bits1(gb) << 0; // constraint_set0_flag
|
||||
constraint_set_flags |= get_bits1(gb) << 1; // constraint_set1_flag
|
||||
@@ -775,6 +779,10 @@ int ff_h264_decode_picture_parameter_set(GetBitContext *gb, AVCodecContext *avct
|
||||
}
|
||||
memcpy(pps->data, gb->buffer, pps->data_size);
|
||||
|
||||
+ // Re-add the removed stop bit (may be used by hwaccels).
|
||||
+ if (!(bit_length & 7) && pps->data_size < sizeof(pps->data))
|
||||
+ pps->data[pps->data_size++] = 0x80;
|
||||
+
|
||||
pps->sps_id = get_ue_golomb_31(gb);
|
||||
if ((unsigned)pps->sps_id >= MAX_SPS_COUNT ||
|
||||
!ps->sps_list[pps->sps_id]) {
|
||||
--
|
||||
2.20.1
|
||||
|
@@ -1,22 +0,0 @@
|
||||
Subject: [PATCH] fix d3d11
|
||||
---
|
||||
Index: qsv.c
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
|
||||
--- a/libavcodec/qsv.c
|
||||
+++ b/libavcodec/qsv.c
|
||||
@@ -383,7 +383,11 @@
|
||||
int ff_qsv_init_internal_session(AVCodecContext *avctx, QSVSession *qs,
|
||||
const char *load_plugins, int gpu_copy)
|
||||
{
|
||||
+#if CONFIG_D3D11VA
|
||||
+ mfxIMPL impl = MFX_IMPL_AUTO_ANY | MFX_IMPL_VIA_D3D11;
|
||||
+#else
|
||||
mfxIMPL impl = MFX_IMPL_AUTO_ANY;
|
||||
+#endif
|
||||
mfxVersion ver = { { QSV_VERSION_MINOR, QSV_VERSION_MAJOR } };
|
||||
mfxInitParam init_par = { MFX_IMPL_AUTO_ANY };
|
||||
|
@@ -1,165 +0,0 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License.
|
||||
#
|
||||
#.rst:
|
||||
# FindFFMPEG
|
||||
# --------
|
||||
#
|
||||
# Find the FFPMEG libraries
|
||||
#
|
||||
# Result Variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# The following variables will be defined:
|
||||
#
|
||||
# ``FFMPEG_FOUND``
|
||||
# True if FFMPEG found on the local system
|
||||
#
|
||||
# ``FFMPEG_INCLUDE_DIRS``
|
||||
# Location of FFMPEG header files
|
||||
#
|
||||
# ``FFMPEG_LIBRARY_DIRS``
|
||||
# Location of FFMPEG libraries
|
||||
#
|
||||
# ``FFMPEG_LIBRARIES``
|
||||
# List of the FFMPEG libraries found
|
||||
#
|
||||
#
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
include(SelectLibraryConfigurations)
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(NOT FFMPEG_FOUND)
|
||||
|
||||
# Compute the installation path relative to this file.
|
||||
get_filename_component(SEARCH_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(SEARCH_PATH "${SEARCH_PATH}" PATH)
|
||||
get_filename_component(SEARCH_PATH "${SEARCH_PATH}" PATH)
|
||||
if(SEARCH_PATH STREQUAL "/")
|
||||
set(SEARCH_PATH "")
|
||||
endif()
|
||||
|
||||
set(FFMPEG_VERSION "@FFMPEG_VERSION@")
|
||||
|
||||
function(append_dependencies out)
|
||||
cmake_parse_arguments(PARSE_ARGV 1 "arg" "DEBUG" "NAMES" "")
|
||||
if(${arg_DEBUG})
|
||||
set(config DEBUG)
|
||||
set(path "${CURRENT_INSTALLED_DIR}/debug/lib/")
|
||||
else()
|
||||
set(config RELEASE)
|
||||
set(path "${CURRENT_INSTALLED_DIR}/lib/")
|
||||
endif()
|
||||
foreach(lib_name ${arg_NAMES})
|
||||
if("${lib_name}" STREQUAL "-pthread")
|
||||
list(APPEND ${out} "-pthread")
|
||||
elseif("${lib_name}" STREQUAL "-pthreads")
|
||||
list(APPEND ${out} "-pthreads")
|
||||
elseif("${lib_name}" STREQUAL "gcc")
|
||||
list(APPEND ${out} "-lgcc")
|
||||
elseif("${lib_name}" STREQUAL "gcc_s")
|
||||
list(APPEND ${out} "-lgcc_s")
|
||||
elseif("${lib_name}" STREQUAL "stdc++")
|
||||
list(APPEND ${out} "-lstdc++")
|
||||
else()
|
||||
# first look in ${path} specifically to ensure we find the right release/debug variant
|
||||
find_library(FFMPEG_DEPENDENCY_${lib_name}_${config} NAMES "${lib_name}" PATHS "${path}" NO_DEFAULT_PATH)
|
||||
# if not found there, must be a system dependency, so look elsewhere
|
||||
find_library(FFMPEG_DEPENDENCY_${lib_name}_${config} NAMES "${lib_name}" REQUIRED)
|
||||
list(APPEND ${out} "${FFMPEG_DEPENDENCY_${lib_name}_${config}}")
|
||||
endif()
|
||||
endforeach()
|
||||
set("${out}" "${${out}}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
macro(FFMPEG_FIND varname shortname headername)
|
||||
if(NOT FFMPEG_${varname}_INCLUDE_DIRS)
|
||||
find_path(FFMPEG_${varname}_INCLUDE_DIRS NAMES lib${shortname}/${headername} ${headername} PATHS ${SEARCH_PATH}/include NO_DEFAULT_PATH)
|
||||
endif()
|
||||
if(NOT FFMPEG_${varname}_LIBRARY)
|
||||
find_library(FFMPEG_${varname}_LIBRARY_RELEASE NAMES ${shortname} PATHS ${SEARCH_PATH}/lib/ NO_DEFAULT_PATH)
|
||||
find_library(FFMPEG_${varname}_LIBRARY_DEBUG NAMES ${shortname}d ${shortname} PATHS ${SEARCH_PATH}/debug/lib/ NO_DEFAULT_PATH)
|
||||
get_filename_component(FFMPEG_${varname}_LIBRARY_RELEASE_DIR ${FFMPEG_${varname}_LIBRARY_RELEASE} DIRECTORY)
|
||||
get_filename_component(FFMPEG_${varname}_LIBRARY_DEBUG_DIR ${FFMPEG_${varname}_LIBRARY_DEBUG} DIRECTORY)
|
||||
select_library_configurations(FFMPEG_${varname})
|
||||
set(FFMPEG_${varname}_LIBRARY ${FFMPEG_${varname}_LIBRARY} CACHE STRING "")
|
||||
endif()
|
||||
if (FFMPEG_${varname}_LIBRARY AND FFMPEG_${varname}_INCLUDE_DIRS)
|
||||
set(FFMPEG_${varname}_FOUND TRUE BOOL)
|
||||
list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_${varname}_INCLUDE_DIRS})
|
||||
list(APPEND FFMPEG_LIBRARIES ${FFMPEG_${varname}_LIBRARY})
|
||||
list(APPEND FFMPEG_LIBRARY_DIRS ${FFMPEG_${varname}_LIBRARY_RELEASE_DIR} ${FFMPEG_${varname}_LIBRARY_DEBUG_DIR})
|
||||
endif()
|
||||
endmacro(FFMPEG_FIND)
|
||||
|
||||
if(@ENABLE_AVDEVICE@)
|
||||
FFMPEG_FIND(libavdevice avdevice avdevice.h)
|
||||
endif()
|
||||
if(@ENABLE_AVFILTER@)
|
||||
FFMPEG_FIND(libavfilter avfilter avfilter.h)
|
||||
endif()
|
||||
if(@ENABLE_AVFORMAT@)
|
||||
FFMPEG_FIND(libavformat avformat avformat.h)
|
||||
endif()
|
||||
if(@ENABLE_AVCODEC@)
|
||||
FFMPEG_FIND(libavcodec avcodec avcodec.h)
|
||||
endif()
|
||||
if(@ENABLE_AVRESAMPLE@)
|
||||
FFMPEG_FIND(libavresample avresample avresample.h)
|
||||
endif()
|
||||
if(@ENABLE_POSTPROC@)
|
||||
FFMPEG_FIND(libpostproc postproc postprocess.h)
|
||||
endif()
|
||||
if(@ENABLE_SWRESAMPLE@)
|
||||
FFMPEG_FIND(libswresample swresample swresample.h)
|
||||
endif()
|
||||
if(@ENABLE_SWSCALE@)
|
||||
FFMPEG_FIND(libswscale swscale swscale.h)
|
||||
endif()
|
||||
FFMPEG_FIND(libavutil avutil avutil.h)
|
||||
|
||||
if (FFMPEG_libavutil_FOUND)
|
||||
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES FFMPEG_LIBRARY_DIRS)
|
||||
set(FFMPEG_libavutil_VERSION "@LIBAVUTIL_VERSION@" CACHE STRING "")
|
||||
|
||||
if(FFMPEG_libavcodec_FOUND)
|
||||
set(FFMPEG_libavcodec_VERSION "@LIBAVCODEC_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libavdevice_FOUND)
|
||||
set(FFMPEG_libavdevice_VERSION "@LIBAVDEVICE_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libavfilter_FOUND)
|
||||
set(FFMPEG_libavfilter_VERSION "@LIBAVFILTER_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libavformat_FOUND)
|
||||
set(FFMPEG_libavformat_VERSION "@LIBAVFORMAT_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libavresample_FOUND)
|
||||
set(FFMPEG_libavresample_VERSION "@LIBAVRESAMPLE_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libswresample_FOUND)
|
||||
set(FFMPEG_libswresample_VERSION "@LIBSWRESAMPLE_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
if(FFMPEG_libswscale_FOUND)
|
||||
set(FFMPEG_libswscale_VERSION "@LIBSWSCALE_VERSION@" CACHE STRING "")
|
||||
endif()
|
||||
|
||||
append_dependencies(FFMPEG_DEPS_LIBRARY_RELEASE NAMES "@FFMPEG_DEPENDENCIES_RELEASE@")
|
||||
append_dependencies(FFMPEG_DEPS_LIBRARY_DEBUG NAMES "@FFMPEG_DEPENDENCIES_DEBUG@" DEBUG)
|
||||
if(FFMPEG_DEPS_LIBRARY_RELEASE OR FFMPEG_DEPS_LIBRARY_DEBUG)
|
||||
select_library_configurations(FFMPEG_DEPS)
|
||||
list(APPEND FFMPEG_LIBRARIES ${FFMPEG_DEPS_LIBRARY})
|
||||
endif()
|
||||
|
||||
set(FFMPEG_LIBRARY ${FFMPEG_LIBRARIES})
|
||||
|
||||
set(FFMPEG_FOUND TRUE CACHE BOOL "")
|
||||
set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "")
|
||||
set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "")
|
||||
set(FFMPEG_LIBRARY_DIRS ${FFMPEG_LIBRARY_DIRS} CACHE STRING "")
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_LIBRARY_DIRS FFMPEG_INCLUDE_DIRS)
|
||||
|
||||
endif()
|
@@ -1,126 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
export PATH="/usr/bin:$PATH"
|
||||
|
||||
command -v cygpath >/dev/null && have_cygpath=1
|
||||
|
||||
cygpath() {
|
||||
if [ -n "$have_cygpath" ]; then
|
||||
command cygpath "$@"
|
||||
else
|
||||
eval _p='$'$#
|
||||
printf '%s\n' "$_p"
|
||||
fi
|
||||
}
|
||||
|
||||
move_binary() {
|
||||
SOURCE=$1
|
||||
TARGET=$2
|
||||
BINARY=$3
|
||||
|
||||
# run lipo over the command to check whether it really
|
||||
# is a binary that we need to merge architectures
|
||||
lipo $SOURCE/$BINARY -info &> /dev/null || return 0
|
||||
|
||||
# get the directory name the file is in
|
||||
DIRNAME=$(dirname $BINARY)
|
||||
|
||||
# ensure the directory to move the binary to exists
|
||||
mkdir -p $TARGET/$DIRNAME
|
||||
|
||||
# now finally move the binary
|
||||
mv $SOURCE/$BINARY $TARGET/$BINARY
|
||||
}
|
||||
|
||||
move_binaries() {
|
||||
SOURCE=$1
|
||||
TARGET=$2
|
||||
|
||||
[ ! -d $SOURCE ] && return 0
|
||||
pushd $SOURCE
|
||||
|
||||
for BINARY in $(find . -type f); do
|
||||
move_binary $SOURCE $TARGET $BINARY
|
||||
done
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
merge_binaries() {
|
||||
TARGET=$1
|
||||
SOURCE=$2
|
||||
|
||||
shift
|
||||
shift
|
||||
|
||||
pushd $SOURCE/$1
|
||||
BINARIES=$(find . -type f)
|
||||
popd
|
||||
|
||||
for BINARY in $BINARIES; do
|
||||
COMMAND="lipo -create -output $TARGET/$BINARY"
|
||||
|
||||
for ARCH in $@; do
|
||||
COMMAND="$COMMAND -arch $ARCH $SOURCE/$ARCH/$BINARY"
|
||||
done
|
||||
|
||||
$($COMMAND)
|
||||
done
|
||||
}
|
||||
|
||||
export PKG_CONFIG_PATH="$(cygpath -p "${PKG_CONFIG_PATH}")"
|
||||
|
||||
# Export HTTP(S)_PROXY as http(s)_proxy:
|
||||
[ -n "$HTTP_PROXY" ] && export http_proxy="$HTTP_PROXY"
|
||||
[ -n "$HTTPS_PROXY" ] && export https_proxy="$HTTPS_PROXY"
|
||||
|
||||
PATH_TO_BUILD_DIR=$( cygpath "@BUILD_DIR@")
|
||||
PATH_TO_SRC_DIR=$( cygpath "@SOURCE_PATH@")
|
||||
PATH_TO_PACKAGE_DIR=$(cygpath "@INST_PREFIX@")
|
||||
|
||||
JOBS=@VCPKG_CONCURRENCY@
|
||||
|
||||
OSX_ARCHS="@OSX_ARCHS@"
|
||||
OSX_ARCH_COUNT=0@OSX_ARCH_COUNT@
|
||||
|
||||
# Default to hardware concurrency if unset.
|
||||
: ${JOBS:=$(nproc)}
|
||||
|
||||
build_ffmpeg() {
|
||||
echo "=== CONFIGURING ==="
|
||||
|
||||
sh "$PATH_TO_SRC_DIR/configure" "--prefix=$PATH_TO_PACKAGE_DIR" "--cc=$CC" @CONFIGURE_OPTIONS@ $@
|
||||
|
||||
echo "=== BUILDING ==="
|
||||
|
||||
make -j${JOBS} V=1
|
||||
|
||||
echo "=== INSTALLING ==="
|
||||
|
||||
make install
|
||||
}
|
||||
|
||||
cd "$PATH_TO_BUILD_DIR"
|
||||
|
||||
if [ $OSX_ARCH_COUNT -gt 1 ]; then
|
||||
for ARCH in $OSX_ARCHS; do
|
||||
echo "=== CLEANING FOR $ARCH ==="
|
||||
|
||||
make clean && make distclean
|
||||
|
||||
build_ffmpeg --enable-cross-compile --arch=$ARCH --extra-cflags=-arch --extra-cflags=$ARCH --extra-ldflags=-arch --extra-ldflags=$ARCH
|
||||
|
||||
echo "=== COLLECTING BINARIES FOR $ARCH ==="
|
||||
|
||||
move_binaries $PATH_TO_PACKAGE_DIR/lib $PATH_TO_BUILD_DIR/stage/$ARCH/lib
|
||||
move_binaries $PATH_TO_PACKAGE_DIR/bin $PATH_TO_BUILD_DIR/stage/$ARCH/bin
|
||||
done
|
||||
|
||||
echo "=== MERGING ARCHITECTURES ==="
|
||||
|
||||
merge_binaries $PATH_TO_PACKAGE_DIR $PATH_TO_BUILD_DIR/stage $OSX_ARCHS
|
||||
else
|
||||
build_ffmpeg
|
||||
fi
|
@@ -1,826 +0,0 @@
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
set(PATCHES 0017-Patch-for-ticket-9019-CUDA-Compile-Broken-Using-MSVC.patch) # https://trac.ffmpeg.org/ticket/9019
|
||||
endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO ffmpeg/ffmpeg
|
||||
REF n4.4.5
|
||||
SHA512 09338a10b31f0e551735b9aa57e2c22ceae15bbbca1ee04535587ff55f181e187a77ede4e70d8cd0e1e7c85fb27a7e513c93b91848013e997263d58780b8fa49
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
0001-create-lib-libraries.patch
|
||||
0003-fix-windowsinclude.patch
|
||||
0004-fix-debug-build.patch
|
||||
0006-fix-StaticFeatures.patch
|
||||
0007-fix-lib-naming.patch
|
||||
0009-Fix-fdk-detection.patch
|
||||
0010-Fix-x264-detection.patch
|
||||
0011-Fix-x265-detection.patch
|
||||
#0012-Fix-ssl-110-detection.patch
|
||||
0013-define-WINVER.patch
|
||||
0014-avfilter-dependency-fix.patch # https://ffmpeg.org/pipermail/ffmpeg-devel/2021-February/275819.html
|
||||
0015-Fix-xml2-detection.patch
|
||||
${PATCHES}
|
||||
0018-libaom-Dont-use-aom_codec_av1_dx_algo.patch
|
||||
0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch
|
||||
0020-fix-aarch64-libswscale.patch
|
||||
0022-fix-m1-hardware-decode-nal-bits.patch # remove in next version
|
||||
0023-fix-qsv-init.patch # remove in next version (5.x)
|
||||
)
|
||||
|
||||
if (SOURCE_PATH MATCHES " ")
|
||||
message(FATAL_ERROR "Error: ffmpeg will not build with spaces in the path. Please use a directory with no spaces")
|
||||
endif()
|
||||
|
||||
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
# ffmpeg nasm build gives link error on x86, so fall back to yasm
|
||||
vcpkg_find_acquire_program(YASM)
|
||||
get_filename_component(YASM_EXE_PATH "${YASM}" DIRECTORY)
|
||||
vcpkg_add_to_path("${YASM_EXE_PATH}")
|
||||
else()
|
||||
vcpkg_find_acquire_program(NASM)
|
||||
get_filename_component(NASM_EXE_PATH "${NASM}" DIRECTORY)
|
||||
vcpkg_add_to_path("${NASM_EXE_PATH}")
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
|
||||
#We're assuming that if we're building for Windows we're using MSVC
|
||||
set(INCLUDE_VAR "INCLUDE")
|
||||
set(LIB_PATH_VAR "LIB")
|
||||
else()
|
||||
set(INCLUDE_VAR "CPATH")
|
||||
set(LIB_PATH_VAR "LIBRARY_PATH")
|
||||
endif()
|
||||
|
||||
set(OPTIONS "--enable-pic --disable-doc --enable-debug --enable-runtime-cpudetect")
|
||||
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
|
||||
set(OPTIONS "${OPTIONS} --disable-asm --disable-x86asm")
|
||||
endif()
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
||||
set(OPTIONS "${OPTIONS} --enable-asm --disable-x86asm")
|
||||
endif()
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(OPTIONS "${OPTIONS} --enable-asm --enable-x86asm")
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
vcpkg_acquire_msys(MSYS_ROOT)
|
||||
set(SHELL "${MSYS_ROOT}/usr/bin/bash.exe")
|
||||
else()
|
||||
set(SHELL /bin/sh)
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_MINGW)
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
string(APPEND OPTIONS " --target-os=mingw32")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
string(APPEND OPTIONS " --target-os=mingw64")
|
||||
endif()
|
||||
elseif(VCPKG_TARGET_IS_LINUX)
|
||||
string(APPEND OPTIONS " --target-os=linux")
|
||||
elseif(VCPKG_TARGET_IS_WINDOWS)
|
||||
string(APPEND OPTIONS " --target-os=win32")
|
||||
elseif(VCPKG_TARGET_IS_OSX)
|
||||
string(APPEND OPTIONS " --target-os=darwin")
|
||||
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
string(APPEND OPTIONS " --target-os=android")
|
||||
else()
|
||||
endif()
|
||||
|
||||
vcpkg_cmake_get_vars(cmake_vars_file)
|
||||
include("${cmake_vars_file}")
|
||||
|
||||
if(VCPKG_DETECTED_MSVC)
|
||||
set(OPTIONS "--toolchain=msvc ${OPTIONS}")
|
||||
# This is required because ffmpeg depends upon optimizations to link correctly
|
||||
string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " -O2")
|
||||
string(REGEX REPLACE "(^| )-RTC1( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}")
|
||||
string(REGEX REPLACE "(^| )-Od( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}")
|
||||
string(REGEX REPLACE "(^| )-Ob0( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}")
|
||||
endif()
|
||||
|
||||
string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " -I \"${CURRENT_INSTALLED_DIR}/include\"")
|
||||
string(APPEND VCPKG_COMBINED_C_FLAGS_RELEASE " -I \"${CURRENT_INSTALLED_DIR}/include\"")
|
||||
|
||||
set(_csc_PROJECT_PATH ffmpeg)
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
|
||||
|
||||
set(FFMPEG_PKGCONFIG_MODULES libavutil)
|
||||
|
||||
if("nonfree" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-nonfree")
|
||||
endif()
|
||||
|
||||
if("gpl" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-gpl")
|
||||
endif()
|
||||
|
||||
if("version3" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-version3")
|
||||
endif()
|
||||
|
||||
if("amf" IN_LIST FEATURES)
|
||||
# Do nothing
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-amf")
|
||||
endif()
|
||||
|
||||
if("ffmpeg" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-ffmpeg")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-ffmpeg")
|
||||
endif()
|
||||
|
||||
if("ffplay" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-ffplay")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-ffplay")
|
||||
endif()
|
||||
|
||||
if("ffprobe" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-ffprobe")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-ffprobe")
|
||||
endif()
|
||||
|
||||
if (NOT "alsa" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --disable-alsa")
|
||||
endif()
|
||||
|
||||
if("avcodec" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avcodec")
|
||||
set(ENABLE_AVCODEC ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libavcodec)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-avcodec")
|
||||
set(ENABLE_AVCODEC OFF)
|
||||
endif()
|
||||
|
||||
if("avdevice" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avdevice")
|
||||
set(ENABLE_AVDEVICE ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libavdevice)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-avdevice")
|
||||
set(ENABLE_AVDEVICE OFF)
|
||||
endif()
|
||||
|
||||
if("avformat" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avformat")
|
||||
set(ENABLE_AVFORMAT ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libavformat)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-avformat")
|
||||
set(ENABLE_AVFORMAT OFF)
|
||||
endif()
|
||||
|
||||
if("avfilter" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avfilter")
|
||||
set(ENABLE_AVFILTER ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libavfilter)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-avfilter")
|
||||
set(ENABLE_AVFILTER OFF)
|
||||
endif()
|
||||
|
||||
if("postproc" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-postproc")
|
||||
set(ENABLE_POSTPROC ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libpostproc)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-postproc")
|
||||
set(ENABLE_POSTPROC OFF)
|
||||
endif()
|
||||
|
||||
if("swresample" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-swresample")
|
||||
set(ENABLE_SWRESAMPLE ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libswresample)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-swresample")
|
||||
set(ENABLE_SWRESAMPLE OFF)
|
||||
endif()
|
||||
|
||||
if("swscale" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-swscale")
|
||||
set(ENABLE_SWSCALE ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libswscale)
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-swscale")
|
||||
set(ENABLE_SWSCALE OFF)
|
||||
endif()
|
||||
|
||||
set(ENABLE_AVRESAMPLE OFF)
|
||||
if("avresample" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avresample")
|
||||
set(ENABLE_AVRESAMPLE ON)
|
||||
list(APPEND FFMPEG_PKGCONFIG_MODULES libavresample)
|
||||
endif()
|
||||
|
||||
set(STATIC_LINKAGE OFF)
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
set(STATIC_LINKAGE ON)
|
||||
endif()
|
||||
|
||||
if("aom" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libaom")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libaom")
|
||||
endif()
|
||||
|
||||
if("ass" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libass")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libass")
|
||||
endif()
|
||||
|
||||
if("avisynthplus" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-avisynth")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-avisynth")
|
||||
endif()
|
||||
|
||||
if("bzip2" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-bzlib")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-bzlib")
|
||||
endif()
|
||||
|
||||
if("dav1d" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libdav1d")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libdav1d")
|
||||
endif()
|
||||
|
||||
if("fdk-aac" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libfdk-aac")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libfdk-aac")
|
||||
endif()
|
||||
|
||||
if("fontconfig" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libfontconfig")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libfontconfig")
|
||||
endif()
|
||||
|
||||
if("freetype" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libfreetype")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libfreetype")
|
||||
endif()
|
||||
|
||||
if("fribidi" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libfribidi")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libfribidi")
|
||||
endif()
|
||||
|
||||
if("iconv" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-iconv")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-iconv")
|
||||
endif()
|
||||
|
||||
if("ilbc" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libilbc")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libilbc")
|
||||
endif()
|
||||
|
||||
if("lzma" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-lzma")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-lzma")
|
||||
endif()
|
||||
|
||||
if("mp3lame" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libmp3lame")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libmp3lame")
|
||||
endif()
|
||||
|
||||
if("modplug" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libmodplug")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libmodplug")
|
||||
endif()
|
||||
|
||||
if("nvcodec" IN_LIST FEATURES)
|
||||
#Note: the --enable-cuda option does not actually require the cuda sdk or toolset port dependency as ffmpeg uses runtime detection and dynamic loading
|
||||
set(OPTIONS "${OPTIONS} --enable-cuda --enable-nvenc --enable-nvdec --enable-cuvid --enable-ffnvcodec")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-cuda --disable-nvenc --disable-nvdec --disable-cuvid --disable-ffnvcodec")
|
||||
endif()
|
||||
|
||||
if("opencl" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-opencl")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-opencl")
|
||||
endif()
|
||||
|
||||
if("opengl" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-opengl")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-opengl")
|
||||
endif()
|
||||
|
||||
if("openh264" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libopenh264")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libopenh264")
|
||||
endif()
|
||||
|
||||
if("openjpeg" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libopenjpeg")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libopenjpeg")
|
||||
endif()
|
||||
|
||||
if("openmpt" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libopenmpt")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libopenmpt")
|
||||
endif()
|
||||
|
||||
if("openssl" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-openssl")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-openssl")
|
||||
endif()
|
||||
|
||||
if("opus" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libopus")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libopus")
|
||||
endif()
|
||||
|
||||
if("sdl2" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-sdl2")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-sdl2")
|
||||
endif()
|
||||
|
||||
if("snappy" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libsnappy")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libsnappy")
|
||||
endif()
|
||||
|
||||
if("soxr" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libsoxr")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libsoxr")
|
||||
endif()
|
||||
|
||||
if("speex" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libspeex")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libspeex")
|
||||
endif()
|
||||
|
||||
if("ssh" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libssh")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libssh")
|
||||
endif()
|
||||
|
||||
if("tensorflow" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libtensorflow")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libtensorflow")
|
||||
endif()
|
||||
|
||||
if("tesseract" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libtesseract")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libtesseract")
|
||||
endif()
|
||||
|
||||
if("theora" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libtheora")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libtheora")
|
||||
endif()
|
||||
|
||||
if("vorbis" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libvorbis")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libvorbis")
|
||||
endif()
|
||||
|
||||
if("vpx" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libvpx")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libvpx")
|
||||
endif()
|
||||
|
||||
if("webp" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libwebp")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libwebp")
|
||||
endif()
|
||||
|
||||
if("x264" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libx264")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libx264")
|
||||
endif()
|
||||
|
||||
if("x265" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libx265")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libx265")
|
||||
endif()
|
||||
|
||||
if("xml2" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libxml2")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libxml2")
|
||||
endif()
|
||||
|
||||
if("zlib" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-zlib")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-zlib")
|
||||
endif()
|
||||
|
||||
if ("srt" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libsrt")
|
||||
else()
|
||||
set(OPTIONS "${OPTIONS} --disable-libsrt")
|
||||
endif()
|
||||
|
||||
if ("qsv" IN_LIST FEATURES)
|
||||
set(OPTIONS "${OPTIONS} --enable-libmfx --enable-encoder=h264_qsv --enable-decoder=h264_qsv")
|
||||
endif()
|
||||
|
||||
if (VCPKG_TARGET_IS_OSX)
|
||||
set(OPTIONS "${OPTIONS} --disable-vdpau") # disable vdpau in OSX
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_IOS)
|
||||
set(OPTIONS "${OPTIONS} --disable-audiotoolbox") # disable AudioToolbox on iOS
|
||||
endif()
|
||||
|
||||
set(OPTIONS_CROSS " --enable-cross-compile")
|
||||
|
||||
# ffmpeg needs --cross-prefix option to use appropriate tools for cross-compiling.
|
||||
if(VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "([^\/]*-)gcc$")
|
||||
string(APPEND OPTIONS_CROSS " --cross-prefix=${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
string(APPEND OPTIONS_CROSS " --arch=x86_64")
|
||||
else()
|
||||
string(APPEND OPTIONS_CROSS " --arch=${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
|
||||
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
vcpkg_find_acquire_program(GASPREPROCESSOR)
|
||||
foreach(GAS_PATH ${GASPREPROCESSOR})
|
||||
get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY)
|
||||
set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${GAS_ITEM_PATH}")
|
||||
endforeach(GAS_PATH)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_UWP)
|
||||
set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\")
|
||||
string(APPEND OPTIONS " --disable-programs")
|
||||
string(APPEND OPTIONS " --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00")
|
||||
string(APPEND OPTIONS " --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib")
|
||||
endif()
|
||||
|
||||
# Note: --disable-optimizations can't be used due to https://ffmpeg.org/pipermail/libav-user/2013-March/003945.html
|
||||
set(OPTIONS_DEBUG "--debug")
|
||||
set(OPTIONS_RELEASE "")
|
||||
|
||||
set(OPTIONS "${OPTIONS} ${OPTIONS_CROSS}")
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
set(OPTIONS "${OPTIONS} --disable-static --enable-shared")
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_MINGW)
|
||||
set(OPTIONS "${OPTIONS} --extra_cflags=-D_WIN32_WINNT=0x0601")
|
||||
elseif(VCPKG_TARGET_IS_WINDOWS)
|
||||
set(OPTIONS "${OPTIONS} --extra-cflags=-DHAVE_UNISTD_H=0")
|
||||
endif()
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
set(OPTIONS "${OPTIONS} --pkg-config-flags=--static")
|
||||
endif()
|
||||
|
||||
set(ENV_LIB_PATH "$ENV{${LIB_PATH_VAR}}")
|
||||
|
||||
get_filename_component(CC_path "${VCPKG_DETECTED_CMAKE_C_COMPILER}" DIRECTORY)
|
||||
get_filename_component(CC_filename "${VCPKG_DETECTED_CMAKE_C_COMPILER}" NAME)
|
||||
set(ENV{CC} "${CC_filename}")
|
||||
if(CC_path)
|
||||
vcpkg_add_to_path(PREPEND "${CC_path}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Building Options: ${OPTIONS}")
|
||||
|
||||
# Release build
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
message(STATUS "Building Release Options: ${OPTIONS_RELEASE}")
|
||||
set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/lib${VCPKG_HOST_PATH_SEPARATOR}${ENV_LIB_PATH}")
|
||||
set(ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig")
|
||||
message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
|
||||
file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
||||
# We use response files here as the only known way to handle spaces in paths
|
||||
set(crsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/cflags.rsp")
|
||||
file(WRITE "${crsp}" "${VCPKG_COMBINED_C_FLAGS_RELEASE}")
|
||||
set(ldrsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/ldflags.rsp")
|
||||
file(WRITE "${ldrsp}" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE}")
|
||||
set(ENV{CFLAGS} "@${crsp}")
|
||||
# All tools except the msvc arm{,64} assembler accept @... as response file syntax.
|
||||
# For that assembler, there is no known way to pass in flags. We must hope that not passing flags will work acceptably.
|
||||
if(NOT VCPKG_DETECTED_MSVC OR NOT VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")
|
||||
set(ENV{ASFLAGS} "@${crsp}")
|
||||
endif()
|
||||
set(ENV{LDFLAGS} "@${ldrsp}")
|
||||
|
||||
set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
||||
set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_RELEASE}")
|
||||
set(INST_PREFIX "${CURRENT_PACKAGES_DIR}")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY)
|
||||
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND "${SHELL}" ./build.sh
|
||||
WORKING_DIRECTORY "${BUILD_DIR}"
|
||||
LOGNAME "build-${TARGET_TRIPLET}-rel"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Debug build
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
message(STATUS "Building Debug Options: ${OPTIONS_DEBUG}")
|
||||
set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/debug/lib${VCPKG_HOST_PATH_SEPARATOR}${ENV_LIB_PATH}")
|
||||
set(ENV{LDFLAGS} "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}")
|
||||
set(ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig")
|
||||
message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
|
||||
file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
|
||||
set(crsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/cflags.rsp")
|
||||
file(WRITE "${crsp}" "${VCPKG_COMBINED_C_FLAGS_DEBUG}")
|
||||
set(ldrsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/ldflags.rsp")
|
||||
file(WRITE "${ldrsp}" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}")
|
||||
set(ENV{CFLAGS} "@${crsp}")
|
||||
if(NOT VCPKG_DETECTED_MSVC OR NOT VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")
|
||||
set(ENV{ASFLAGS} "@${crsp}")
|
||||
endif()
|
||||
set(ENV{LDFLAGS} "@${ldrsp}")
|
||||
|
||||
set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
|
||||
set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_DEBUG}")
|
||||
set(INST_PREFIX "${CURRENT_PACKAGES_DIR}/debug")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY)
|
||||
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND "${SHELL}" ./build.sh
|
||||
WORKING_DIRECTORY "${BUILD_DIR}"
|
||||
LOGNAME "build-${TARGET_TRIPLET}-dbg"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
file(GLOB DEF_FILES "${CURRENT_PACKAGES_DIR}/lib/*.def" "${CURRENT_PACKAGES_DIR}/debug/lib/*.def")
|
||||
|
||||
if(NOT VCPKG_TARGET_IS_MINGW)
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
|
||||
set(LIB_MACHINE_ARG /machine:ARM)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
||||
set(LIB_MACHINE_ARG /machine:ARM64)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
set(LIB_MACHINE_ARG /machine:x86)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(LIB_MACHINE_ARG /machine:x64)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported target architecture")
|
||||
endif()
|
||||
|
||||
foreach(DEF_FILE ${DEF_FILES})
|
||||
get_filename_component(DEF_FILE_DIR "${DEF_FILE}" DIRECTORY)
|
||||
get_filename_component(DEF_FILE_NAME "${DEF_FILE}" NAME)
|
||||
string(REGEX REPLACE "-[0-9]*\\.def" "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" OUT_FILE_NAME "${DEF_FILE_NAME}")
|
||||
file(TO_NATIVE_PATH "${DEF_FILE}" DEF_FILE_NATIVE)
|
||||
file(TO_NATIVE_PATH "${DEF_FILE_DIR}/${OUT_FILE_NAME}" OUT_FILE_NATIVE)
|
||||
message(STATUS "Generating ${OUT_FILE_NATIVE}")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND lib.exe "/def:${DEF_FILE_NATIVE}" "/out:${OUT_FILE_NATIVE}" ${LIB_MACHINE_ARG}
|
||||
WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}"
|
||||
LOGNAME "libconvert-${TARGET_TRIPLET}"
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
file(GLOB EXP_FILES "${CURRENT_PACKAGES_DIR}/lib/*.exp" "${CURRENT_PACKAGES_DIR}/debug/lib/*.exp")
|
||||
file(GLOB LIB_FILES "${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}")
|
||||
if(VCPKG_TARGET_IS_MINGW)
|
||||
file(GLOB LIB_FILES_2 "${CURRENT_PACKAGES_DIR}/bin/*.lib" "${CURRENT_PACKAGES_DIR}/debug/bin/*.lib")
|
||||
endif()
|
||||
set(files_to_remove ${EXP_FILES} ${LIB_FILES} ${LIB_FILES_2} ${DEF_FILES})
|
||||
if(files_to_remove)
|
||||
file(REMOVE ${files_to_remove})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("ffmpeg" IN_LIST FEATURES)
|
||||
vcpkg_copy_tools(TOOL_NAMES ffmpeg AUTO_CLEAN)
|
||||
endif()
|
||||
if("ffprobe" IN_LIST FEATURES)
|
||||
vcpkg_copy_tools(TOOL_NAMES ffprobe AUTO_CLEAN)
|
||||
endif()
|
||||
if("ffplay" IN_LIST FEATURES)
|
||||
vcpkg_copy_tools(TOOL_NAMES ffplay AUTO_CLEAN)
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
endif()
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
if (VCPKG_TARGET_IS_WINDOWS)
|
||||
set(_dirs "/")
|
||||
if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
list(APPEND _dirs "/debug/")
|
||||
endif()
|
||||
foreach(_debug IN LISTS _dirs)
|
||||
foreach(PKGCONFIG_MODULE IN LISTS FFMPEG_PKGCONFIG_MODULES)
|
||||
set(PKGCONFIG_FILE "${CURRENT_PACKAGES_DIR}${_debug}lib/pkgconfig/${PKGCONFIG_MODULE}.pc")
|
||||
# remove redundant cygwin style -libpath entries
|
||||
execute_process(
|
||||
COMMAND "${MSYS_ROOT}/usr/bin/cygpath.exe" -u "${CURRENT_INSTALLED_DIR}"
|
||||
OUTPUT_VARIABLE CYG_INSTALLED_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
vcpkg_replace_string("${PKGCONFIG_FILE}" "-libpath:${CYG_INSTALLED_DIR}${_debug}lib/pkgconfig/../../lib " "")
|
||||
# transform libdir, includedir, and prefix paths from cygwin style to windows style
|
||||
file(READ "${PKGCONFIG_FILE}" PKGCONFIG_CONTENT)
|
||||
foreach(PATH_NAME prefix libdir includedir)
|
||||
string(REGEX MATCH "${PATH_NAME}=[^\n]*" PATH_VALUE "${PKGCONFIG_CONTENT}")
|
||||
string(REPLACE "${PATH_NAME}=" "" PATH_VALUE "${PATH_VALUE}")
|
||||
if(NOT PATH_VALUE)
|
||||
message(FATAL_ERROR "failed to find pkgconfig variable ${PATH_NAME}")
|
||||
endif()
|
||||
execute_process(
|
||||
COMMAND "${MSYS_ROOT}/usr/bin/cygpath.exe" -w "${PATH_VALUE}"
|
||||
OUTPUT_VARIABLE FIXED_PATH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
file(TO_CMAKE_PATH "${FIXED_PATH}" FIXED_PATH)
|
||||
vcpkg_replace_string("${PKGCONFIG_FILE}" "${PATH_NAME}=${PATH_VALUE}" "${PATH_NAME}=${FIXED_PATH}")
|
||||
endforeach()
|
||||
# list libraries with -l flag (so pkgconf knows they are libraries and not just linker flags)
|
||||
foreach(LIBS_ENTRY Libs Libs.private)
|
||||
string(REGEX MATCH "${LIBS_ENTRY}: [^\n]*" LIBS_VALUE "${PKGCONFIG_CONTENT}")
|
||||
if(NOT LIBS_VALUE)
|
||||
message(FATAL_ERROR "failed to find pkgconfig entry ${LIBS_ENTRY}")
|
||||
endif()
|
||||
string(REPLACE "${LIBS_ENTRY}: " "" LIBS_VALUE "${LIBS_VALUE}")
|
||||
if(LIBS_VALUE)
|
||||
set(LIBS_VALUE_OLD "${LIBS_VALUE}")
|
||||
string(REGEX REPLACE "([^ ]+)[.]lib" "-l\\1" LIBS_VALUE "${LIBS_VALUE}")
|
||||
set(LIBS_VALUE_NEW "${LIBS_VALUE}")
|
||||
vcpkg_replace_string("${PKGCONFIG_FILE}" "${LIBS_ENTRY}: ${LIBS_VALUE_OLD}" "${LIBS_ENTRY}: ${LIBS_VALUE_NEW}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
# Handle dependencies
|
||||
|
||||
x_vcpkg_pkgconfig_get_modules(PREFIX FFMPEG_PKGCONFIG MODULES ${FFMPEG_PKGCONFIG_MODULES} LIBS)
|
||||
|
||||
function(append_dependencies_from_libs out)
|
||||
cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "LIBS" "")
|
||||
string(REGEX REPLACE "[ ]+" ";" contents "${arg_LIBS}")
|
||||
list(FILTER contents EXCLUDE REGEX "^-framework$")
|
||||
list(FILTER contents EXCLUDE REGEX "^-L.+")
|
||||
list(FILTER contents EXCLUDE REGEX "^-libpath:.+")
|
||||
list(TRANSFORM contents REPLACE "^-Wl,-framework," "-l")
|
||||
list(FILTER contents EXCLUDE REGEX "^-Wl,.+")
|
||||
list(TRANSFORM contents REPLACE "^-l" "")
|
||||
list(FILTER contents EXCLUDE REGEX "^avresample$")
|
||||
list(FILTER contents EXCLUDE REGEX "^avutil$")
|
||||
list(FILTER contents EXCLUDE REGEX "^avcodec$")
|
||||
list(FILTER contents EXCLUDE REGEX "^avdevice$")
|
||||
list(FILTER contents EXCLUDE REGEX "^avfilter$")
|
||||
list(FILTER contents EXCLUDE REGEX "^avformat$")
|
||||
list(FILTER contents EXCLUDE REGEX "^postproc$")
|
||||
list(FILTER contents EXCLUDE REGEX "^swresample$")
|
||||
list(FILTER contents EXCLUDE REGEX "^swscale$")
|
||||
list(FILTER contents EXCLUDE REGEX "^atomic$")
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
list(TRANSFORM contents TOLOWER)
|
||||
endif()
|
||||
if(contents)
|
||||
list(APPEND "${out}" "${contents}")
|
||||
set("${out}" "${${out}}" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
append_dependencies_from_libs(FFMPEG_DEPENDENCIES_RELEASE LIBS "${FFMPEG_PKGCONFIG_LIBS_RELEASE}")
|
||||
append_dependencies_from_libs(FFMPEG_DEPENDENCIES_DEBUG LIBS "${FFMPEG_PKGCONFIG_LIBS_DEBUG}")
|
||||
|
||||
# must remove duplicates from the front to respect link order so reverse first
|
||||
list(REVERSE FFMPEG_DEPENDENCIES_RELEASE)
|
||||
list(REVERSE FFMPEG_DEPENDENCIES_DEBUG)
|
||||
list(REMOVE_DUPLICATES FFMPEG_DEPENDENCIES_RELEASE)
|
||||
list(REMOVE_DUPLICATES FFMPEG_DEPENDENCIES_DEBUG)
|
||||
list(REVERSE FFMPEG_DEPENDENCIES_RELEASE)
|
||||
list(REVERSE FFMPEG_DEPENDENCIES_DEBUG)
|
||||
|
||||
message(STATUS "Dependencies (release): ${FFMPEG_DEPENDENCIES_RELEASE}")
|
||||
message(STATUS "Dependencies (debug): ${FFMPEG_DEPENDENCIES_DEBUG}")
|
||||
|
||||
# Handle version strings
|
||||
|
||||
function(extract_regex_from_file out)
|
||||
cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "FILE;REGEX" "")
|
||||
file(READ "${arg_FILE}" contents)
|
||||
if (contents MATCHES "${arg_REGEX}")
|
||||
if(NOT CMAKE_MATCH_COUNT EQUAL 1)
|
||||
message(FATAL_ERROR "Could not identify match group in regular expression \"${arg_REGEX}\"")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find line matching \"${arg_REGEX}\" in file \"${arg_FILE}\"")
|
||||
endif()
|
||||
set("${out}" "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(extract_version_from_component out)
|
||||
cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "COMPONENT" "")
|
||||
string(TOLOWER "${arg_COMPONENT}" component_lower)
|
||||
string(TOUPPER "${arg_COMPONENT}" component_upper)
|
||||
extract_regex_from_file(major_version
|
||||
FILE "${SOURCE_PATH}/${component_lower}/version.h"
|
||||
REGEX "#define ${component_upper}_VERSION_MAJOR[ ]+([0-9]+)"
|
||||
)
|
||||
extract_regex_from_file(minor_version
|
||||
FILE "${SOURCE_PATH}/${component_lower}/version.h"
|
||||
REGEX "#define ${component_upper}_VERSION_MINOR[ ]+([0-9]+)"
|
||||
)
|
||||
extract_regex_from_file(micro_version
|
||||
FILE "${SOURCE_PATH}/${component_lower}/version.h"
|
||||
REGEX "#define ${component_upper}_VERSION_MICRO[ ]+([0-9]+)"
|
||||
)
|
||||
set("${out}" "${major_version}.${minor_version}.${micro_version}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
extract_regex_from_file(FFMPEG_VERSION
|
||||
FILE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libavutil/ffversion.h"
|
||||
REGEX "#define FFMPEG_VERSION[ ]+\"(.+)\""
|
||||
)
|
||||
|
||||
extract_version_from_component(LIBAVUTIL_VERSION
|
||||
COMPONENT libavutil)
|
||||
extract_version_from_component(LIBAVCODEC_VERSION
|
||||
COMPONENT libavcodec)
|
||||
extract_version_from_component(LIBAVDEVICE_VERSION
|
||||
COMPONENT libavdevice)
|
||||
extract_version_from_component(LIBAVFILTER_VERSION
|
||||
COMPONENT libavfilter)
|
||||
extract_version_from_component( LIBAVFORMAT_VERSION
|
||||
COMPONENT libavformat)
|
||||
extract_version_from_component(LIBAVRESAMPLE_VERSION
|
||||
COMPONENT libavresample)
|
||||
extract_version_from_component(LIBSWRESAMPLE_VERSION
|
||||
COMPONENT libswresample)
|
||||
extract_version_from_component(LIBSWSCALE_VERSION
|
||||
COMPONENT libswscale)
|
||||
|
||||
# Handle copyright
|
||||
file(STRINGS "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-out.log" LICENSE_STRING REGEX "License: .*" LIMIT_COUNT 1)
|
||||
if(LICENSE_STRING STREQUAL "License: LGPL version 2.1 or later")
|
||||
set(LICENSE_FILE "COPYING.LGPLv2.1")
|
||||
elseif(LICENSE_STRING STREQUAL "License: LGPL version 3 or later")
|
||||
set(LICENSE_FILE "COPYING.LGPLv3")
|
||||
elseif(LICENSE_STRING STREQUAL "License: GPL version 2 or later")
|
||||
set(LICENSE_FILE "COPYING.GPLv2")
|
||||
elseif(LICENSE_STRING STREQUAL "License: GPL version 3 or later")
|
||||
set(LICENSE_FILE "COPYING.GPLv3")
|
||||
elseif(LICENSE_STRING STREQUAL "License: nonfree and unredistributable")
|
||||
set(LICENSE_FILE "COPYING.NONFREE")
|
||||
file(WRITE "${SOURCE_PATH}/${LICENSE_FILE}" "${LICENSE_STRING}")
|
||||
else()
|
||||
message(FATAL_ERROR "Failed to identify license (${LICENSE_STRING})")
|
||||
endif()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/FindFFMPEG.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/FindFFMPEG.cmake" @ONLY)
|
||||
file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
file(INSTALL "${SOURCE_PATH}/${LICENSE_FILE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user