diff --git a/srcpkgs/librepcb/patches/TKDESTEP.patch b/srcpkgs/librepcb/patches/TKDESTEP.patch new file mode 100644 index 00000000000..dbdcb2f8cca --- /dev/null +++ b/srcpkgs/librepcb/patches/TKDESTEP.patch @@ -0,0 +1,56 @@ +From a68d5d361c7cb920b92ee9e12c7505cbc9986e56 Mon Sep 17 00:00:00 2001 +From: "U. Bruhin" +Date: Sun, 10 Mar 2024 15:57:41 +0100 +Subject: [PATCH] CMake: Fix linking with OCCT 7.8.x + +--- + cmake/FindOpenCascade.cmake | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/cmake/FindOpenCascade.cmake b/cmake/FindOpenCascade.cmake +index 9a30f9759c..1ce3c21689 100644 +--- a/cmake/FindOpenCascade.cmake ++++ b/cmake/FindOpenCascade.cmake +@@ -1,6 +1,3 @@ +-# Specify OpenCascade libraries needed for LibrePCB +-set(OCC_LIBRARIES TKXCAF TKXDESTEP) +- + # Add library + add_library(open_cascade INTERFACE) + add_library(OpenCascade::OpenCascade ALIAS open_cascade) +@@ -15,7 +12,22 @@ endif() + # Try to find OCCT shared library on the system + find_package(OpenCASCADE CONFIG QUIET) + if(OpenCASCADE_FOUND) +- message(STATUS "Using system OpenCASCADE (OCCT)") ++ message(STATUS "Using system OpenCASCADE (OCCT ${OpenCASCADE_VERSION})") ++ ++ # Specify OpenCascade libraries needed for LibrePCB ++ # https://github.com/LibrePCB/LibrePCB/issues/1315 ++ if(OpenCASCADE_VERSION VERSION_GREATER 7.8.0) ++ set(OCC_LIBRARIES TKCAF TKDESTEP) ++ elseif(OpenCASCADE_VERSION VERSION_EQUAL 7.8.0) ++ message( ++ FATAL_ERROR ++ "Cannot use OpenCascade 7.8.0 because it contains a critical bug. \ ++ Please use a different version (or if this is not possible, try OCE \ ++ instead of OCCT)." ++ ) ++ else() ++ set(OCC_LIBRARIES TKXCAF TKXDESTEP) ++ endif() + + # Populate target + target_include_directories( +@@ -32,7 +44,10 @@ endif() + # Try to find OCE shared library on the system + find_package(OCE CONFIG QUIET) + if(OCE_FOUND) +- message(STATUS "Using system OpenCASCADE (OCE)") ++ message(STATUS "Using system OpenCASCADE (OCE ${OCE_VERSION})") ++ ++ # Specify OpenCascade libraries needed for LibrePCB ++ set(OCC_LIBRARIES TKXCAF TKXDESTEP) + + # Populate target + target_include_directories( diff --git a/srcpkgs/librepcb/template b/srcpkgs/librepcb/template index eb46149e284..aa32d7f1ad2 100644 --- a/srcpkgs/librepcb/template +++ b/srcpkgs/librepcb/template @@ -1,7 +1,7 @@ # Template file for 'librepcb' pkgname=librepcb version=1.0.0 -revision=1 +revision=2 build_style=cmake configure_args="-DBUILD_QTQUICK_TEST=OFF" hostmakedepends="unzip qt5-qmake qt5-host-tools"