Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build-occt/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ runs:
shell: bash

- name: Upload install directory
uses: actions/upload-artifact@v4.6.2
uses: ./.github/actions/upload-artifacts
with:
name: ${{ inputs.artifact-name }}
path: install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/build-sample-csharp/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/build-sample-mfc/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/build-sample-qt/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/build-tinspector/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
using: "composite"
steps:
- name: Download OCCT installation
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: occt-install
Expand Down
73 changes: 73 additions & 0 deletions .github/actions/download-artifacts/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: 'Download Platform Artifacts'
description: 'Download and extract artifacts with proper file permissions and symlinks (cross-platform)'
inputs:
name:
description: 'Artifact name'
required: true
path:
description: 'Path to extract to (optional)'
required: false
default: '.'

runs:
using: 'composite'
steps:
# For Windows, use standard GitHub action - no symlink issues
- name: Download artifacts (Windows)
if: runner.os == 'Windows'
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}

# For Linux/Unix, use custom workaround to handle symlinks properly
- name: Download archive (Unix)
if: runner.os != 'Windows'
uses: actions/download-artifact@v4.3.0
with:
name: ${{ inputs.name }}
path: ./download-temp

- name: Extract archive (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
EXTRACT_PATH="${{ inputs.path }}"
ARCHIVE_FILE="./download-temp/${{ inputs.name }}.tar.gz"

if [ ! -f "$ARCHIVE_FILE" ]; then
echo "Error: Archive file $ARCHIVE_FILE not found"
ls -la ./download-temp/
exit 1
fi

echo "Extracting $ARCHIVE_FILE to $EXTRACT_PATH"

# Extract and handle directory structure properly
if [ "$EXTRACT_PATH" != "." ]; then
# Extract to temp location first
mkdir -p temp-extract
tar -xzf "$ARCHIVE_FILE" -C temp-extract

# Move the extracted content to the desired path
if [ -d "temp-extract/install" ]; then
# Remove target directory if it exists to avoid nesting
rm -rf "$EXTRACT_PATH"
mv "temp-extract/install" "$EXTRACT_PATH"
else
# If archive doesn't contain install/, move everything
mkdir -p "$EXTRACT_PATH"
mv temp-extract/* "$EXTRACT_PATH/"
fi

# Clean up temp directory
rm -rf temp-extract
else
tar -xzf "$ARCHIVE_FILE" -C "$EXTRACT_PATH"
fi

echo "Extraction complete"
ls -la "$EXTRACT_PATH"

# Clean up temporary download directory
rm -rf ./download-temp
2 changes: 1 addition & 1 deletion .github/actions/retest-failures/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ runs:

- name: Download and extract install directory
if: steps.check_failures.outputs.failed_count > 0
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/run-gtest/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ runs:
using: "composite"
steps:
- name: Download and extract install directory
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/run-tests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ runs:
shell: bash

- name: Download and extract install directory
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: ${{ inputs.install-artifact-name }}
path: install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/test-summary/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ runs:
shell: bash

- name: Download and extract install directory
uses: actions/download-artifact@v4.3.0
uses: ./.github/actions/download-artifacts
with:
name: install-linux-clang-x64
path: install
Expand Down
53 changes: 53 additions & 0 deletions .github/actions/upload-artifacts/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: 'Upload Platform Artifacts'
description: 'Upload artifacts with proper file permissions and symlinks (cross-platform)'
inputs:
name:
description: 'Artifact name'
required: true
path:
description: 'Path to archive'
required: true
retention-days:
description: 'Number of days to retain artifact'
required: false
default: '30'

runs:
using: 'composite'
steps:
# For Windows, use standard GitHub action - no symlink issues
- name: Upload artifacts (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
retention-days: ${{ inputs.retention-days }}

# For Linux/Unix, use custom workaround to handle symlinks properly
- name: Create archive (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
BASE_PATH="${{ inputs.path }}"
ARCHIVE_NAME="${{ inputs.name }}.tar.gz"

if [ -d "$BASE_PATH" ]; then
tar -czf "$ARCHIVE_NAME" -C "$(dirname "$BASE_PATH")" "$(basename "$BASE_PATH")"
elif [ -f "$BASE_PATH" ]; then
tar -czf "$ARCHIVE_NAME" -C "$(dirname "$BASE_PATH")" "$(basename "$BASE_PATH")"
else
echo "Error: Path $BASE_PATH does not exist"
exit 1
fi

echo "Created archive: $ARCHIVE_NAME"
ls -la "$ARCHIVE_NAME"

- name: Upload archive (Unix)
if: runner.os != 'Windows'
uses: actions/upload-artifact@v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ inputs.name }}.tar.gz
retention-days: ${{ inputs.retention-days }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ win64
*.VC.opendb
*.ipch
*.aps
*.DS_Store

# test results
/results*
Expand Down
2 changes: 1 addition & 1 deletion adm/cmake/version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@
set (OCC_VERSION_MAJOR 8 )
set (OCC_VERSION_MINOR 0 )
set (OCC_VERSION_MAINTENANCE 0 )
set (OCC_VERSION_DEVELOPMENT "rc1" )
set (OCC_VERSION_DEVELOPMENT "rc2" )
7 changes: 7 additions & 0 deletions src/DataExchange/TKDE/DE/DE_ConfigurationNode.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,13 @@ bool DE_ConfigurationNode::IsExportSupported() const

//=================================================================================================

bool DE_ConfigurationNode::IsStreamSupported() const
{
return false;
}

//=================================================================================================

bool DE_ConfigurationNode::CheckExtension(const TCollection_AsciiString& theExtension) const
{
TCollection_AsciiString anExtension(theExtension);
Expand Down
12 changes: 8 additions & 4 deletions src/DataExchange/TKDE/DE/DE_ConfigurationNode.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,18 @@ public:
const Standard_Boolean theToKeep);

public:
//! Checks the import supporting
//! @return Standard_True if import is support
//! Checks for import support.
//! @return Standard_True if import is supported
Standard_EXPORT virtual bool IsImportSupported() const;

//! Checks the export supporting
//! @return Standard_True if export is support
//! Checks for export support.
//! @return Standard_True if export is supported
Standard_EXPORT virtual bool IsExportSupported() const;

//! Checks for stream support.
//! @return Standard_True if streams are supported
Standard_EXPORT virtual bool IsStreamSupported() const;

//! Gets CAD format name of associated provider
//! @return provider CAD format
Standard_EXPORT virtual TCollection_AsciiString GetFormat() const = 0;
Expand Down
121 changes: 121 additions & 0 deletions src/DataExchange/TKDE/DE/DE_Provider.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#include <DE_ConfigurationNode.hxx>
#include <Message.hxx>
#include <NCollection_IndexedDataMap.hxx>

IMPLEMENT_STANDARD_RTTIEXT(DE_Provider, Standard_Transient)

Expand Down Expand Up @@ -148,3 +149,123 @@ Standard_Boolean DE_Provider::Write(const TCollection_AsciiString& thePath,
<< " doesn't support write operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Read(ReadStreamList& theStreams,
const Handle(TDocStd_Document)& theDocument,
Handle(XSControl_WorkSession)& theWS,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theDocument;
(void)theWS;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream read operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Write(WriteStreamList& theStreams,
const Handle(TDocStd_Document)& theDocument,
Handle(XSControl_WorkSession)& theWS,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theDocument;
(void)theWS;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream write operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Read(ReadStreamList& theStreams,
TopoDS_Shape& theShape,
Handle(XSControl_WorkSession)& theWS,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theShape;
(void)theWS;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream read operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Write(WriteStreamList& theStreams,
const TopoDS_Shape& theShape,
Handle(XSControl_WorkSession)& theWS,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theShape;
(void)theWS;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream write operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Read(ReadStreamList& theStreams,
const Handle(TDocStd_Document)& theDocument,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theDocument;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream read operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Write(WriteStreamList& theStreams,
const Handle(TDocStd_Document)& theDocument,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theDocument;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream write operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Read(ReadStreamList& theStreams,
TopoDS_Shape& theShape,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theShape;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream read operation";
return Standard_False;
}

//=================================================================================================

Standard_Boolean DE_Provider::Write(WriteStreamList& theStreams,
const TopoDS_Shape& theShape,
const Message_ProgressRange& theProgress)
{
(void)theStreams;
(void)theShape;
(void)theProgress;
Message::SendFail() << "Error: provider " << GetFormat() << " " << GetVendor()
<< " doesn't support stream write operation";
return Standard_False;
}
Loading
Loading