← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Allow OpenCASCADE standard edition

 

Seth,

What is the current status of this patch?  I would like to get it merged
before rc1 so the package devs can test it.

Cheers,

Wayne

On 01/30/2018 02:12 PM, Seth Hillbrand wrote:
> Nick-
> 
> Thanks for the test.  I'm attaching revised patch that allows multiple
> OpenCASCADE installations on a single machine.
> 
> I've tested with a few different OpenCASCADE versions down to 6.8 with
> no issues installed alongside OCE 0.17.  You can choose which you want
> to link by using either "-DKICAD_USE_OCE" or "-DKICAD_USE_OCC".  If both
> are specified, "-DKICAD_USE_OCC" will override.  
> 
> I corrected the cmake message display to be less doubled and correctly
> show the library location.
> 
> I've also added the OCC version and type to the about window version info.
> 
> The "Based on" line was taken from
> (https://github.com/FreeCAD/FreeCAD/blob/master/src/FCConfig.h) when
> trying to determine how FreeCAD likes to refer to themselves.  The
> actual FindOpenCascade.cmake file did not have a copyright header
> attached but falls under the license from
> (https://github.com/FreeCAD/FreeCAD/blob/master/COPYING).  I note that I
> had it written as "FreeCAD CADx development system".  I've corrected
> this to read "FreeCAD CAx development system".
> 
> I'm not sure to what the "CheckSymbolExists" line is referring.  I don't
> see it on my machine.
> 
> -Seth
> 
> 2018-01-29 14:30 GMT-08:00 Nick Østergaard <oe.nick@xxxxxxxxx
> <mailto:oe.nick@xxxxxxxxx>>:
> 
>     Hi Seth,
> 
>     I just took the patch for a testrun and will state some comments below.
> 
>     This looks a bit strange:
> 
>     -- Boost version: 1.66.0
>     -- -- OpenCASCADE Community Edition has been found.
>     -- -- Found OCE/OpenCASCADE version: 6.8.0
>     -- -- OCE/OpenCASCADE include directory:
>     /opt/oce/lib/oce-0.17/../../include/oce
>     -- -- OCE/OpenCASCADE shared libraries directory:
>     -- Check for installed Python Interpreter -- found
> 
>     The messages are with double -- and the shared libs.
> 
>     But an improvement with your patch over what is currently in kicad
>     is that it found OCE on my system without explicitly specifind
>     OCE_DIR. But how do I make it use OCCT when I also have OCE installed?
> 
>     What does CADx mean in that header?
> 
>     What is this about?
>     -- Looking for
>     /home/amazingdude/kicad-source-mirror/build_seths_occt_patch_occt/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
>     -- Looking for
>     /home/amazingdude/kicad-source-mirror/build_seths_occt_patch_occt/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
>     - not found
> 
>     I tried to test it with removing oce and just have occt installed
>     and got something like this:
>     -- Found OCC: /opt/opencascade/inc (found version "6.9.1")
>     -- -- Found OCE/OpenCASCADE version: 6.9.1
>     -- -- OCE/OpenCASCADE include directory: /opt/opencascade/inc
>     -- -- OCE/OpenCASCADE shared libraries directory: /opt/opencascade/lib
> 
>     It did not build against community/opencascade 6.9.1-7. I got the
>     following error in a clean build dir.
> 
>     $ make kicad2step -j1
>     [  0%] Linking CXX executable kicad2step
>     /usr/bin/ld: cannot find -lTKMesh
>     /usr/bin/ld: cannot find -lTKernel
>     /usr/bin/ld: cannot find -lTKG2d
>     /usr/bin/ld: cannot find -lTKG3d
>     /usr/bin/ld: cannot find -lTKMath
>     /usr/bin/ld: cannot find -lTKIGES
>     /usr/bin/ld: cannot find -lTKSTL
>     /usr/bin/ld: cannot find -lTKXSBase
>     /usr/bin/ld: cannot find -lTKBin
>     /usr/bin/ld: cannot find -lTKBO
>     /usr/bin/ld: cannot find -lTKCDF
>     /usr/bin/ld: cannot find -lTKBRep
>     /usr/bin/ld: cannot find -lTKTopAlgo
>     /usr/bin/ld: cannot find -lTKGeomAlgo
>     /usr/bin/ld: cannot find -lTKGeomBase
>     /usr/bin/ld: cannot find -lTKPrim
>     /usr/bin/ld: cannot find -lTKSTEP
>     /usr/bin/ld: cannot find -lTKSTEPBase
>     /usr/bin/ld: cannot find -lTKSTEPAttr
>     /usr/bin/ld: cannot find -lTKFeat
>     /usr/bin/ld: cannot find -lTKCAF
>     /usr/bin/ld: cannot find -lTKXCAF
>     /usr/bin/ld: cannot find -lTKLCAF
>     /usr/bin/ld: cannot find -lTKXDESTEP
>     /usr/bin/ld: cannot find -lTKXDEIGES
>     collect2: error: ld returned 1 exit status
>     make[3]: ***
>     [utils/kicad2step/CMakeFiles/kicad2step.dir/build.make:355:
>     utils/kicad2step/kicad2step] Error 1
>     make[2]: *** [CMakeFiles/Makefile2:3007:
>     utils/kicad2step/CMakeFiles/kicad2step.dir/all] Error 2
>     make[1]: *** [CMakeFiles/Makefile2:3019:
>     utils/kicad2step/CMakeFiles/kicad2step.dir/rule] Error 2
>     make: *** [Makefile:979: kicad2step] Error 2
> 
>     But those libs do existm, searched for the last one;
>     $ yaourt  -Ql opencascade | grep TKXDEIGES
>     opencascade /opt/opencascade/lib/libTKXDEIGES.so
>     opencascade /opt/opencascade/lib/libTKXDEIGES.so.0
>     opencascade /opt/opencascade/lib/libTKXDEIGES.so.0.0.0
> 
>     I got these variables set in the CMakeCache
> 
>     cat CMakeCache.txt  | grep "OCE\|OCC"
>     KICAD_USE_OCE:BOOL=ON
>     OCC_INCLUDE_DIR:PATH=/opt/opencascade/inc
>     OCC_LIBRARY:FILEPATH=/opt/opencascade/lib/libTKernel.so
>     //The directory containing a CMake configuration file for OCE.
>     OCE_DIR:PATH=OCE_DIR-NOTFOUND
>     //Details about finding OCC
>     FIND_PACKAGE_MESSAGE_DETAILS_OCC:INTERNAL=[/opt/opencascade/inc][v6.9.1()]
> 
>     This is tested on archlinux.
> 
>     2018-01-29 19:54 GMT+01:00 Seth Hillbrand <seth.hillbrand@xxxxxxxxx
>     <mailto:seth.hillbrand@xxxxxxxxx>>:
> 
>         ​Hi All-
> 
>         Currently, the build requires the opencascade community
>         edition.  For various reasons, I need to have the current
>         non-community edition of OpenCASCADE installed on my work machine.
> 
>         The attached patch allows compiling KiCad with either the
>         OpenCASCADE community edition or standard edition.  
> 
>         I've tested on a homebrew-based Mac install as well as Linux but
>         haven't verified MSW, if someone would be willing to test it
>         there, that would be great!  The basic search routines are
>         lightly modified from FreeCAD's logic and keep their LGPL
>         copyright on the CMake file.
> 
>         -Seth​
> 
> 
>         _______________________________________________
>         Mailing list: https://launchpad.net/~kicad-developers
>         <https://launchpad.net/~kicad-developers>
>         Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>         <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>         Unsubscribe : https://launchpad.net/~kicad-developers
>         <https://launchpad.net/~kicad-developers>
>         More help   : https://help.launchpad.net/ListHelp
>         <https://help.launchpad.net/ListHelp>
> 
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


Follow ups

References