← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Allow OpenCASCADE standard edition

 

Hi Seth,

I tried to test your patch. It bascially works. Some observations follows:

I think the message printed from cmake
"from /opt/oce/lib/libTKernel.so I found /opt/oce/lib"
should be removed from the output, it looks liek a debug message to me. I
guess the same information is available in the CMakeCache.txt if needed
later on.

It defaults to OCE as expected, builds, and runs.

If I remove OCE it will find my normal opencascade installation, builds and
runs.

I think it also did use OCC if I set KICAD_USE_OCC=ON, where it built and
ran fine. But when this happens I still see KICAD_USE_OCE=ON in the cache.
This might be ok, but could be confusing.

I canẗ make it use an alterntive install location of OCC, I tried to set
OCC_INCLUDE_DIR=/opt/opencascade7/inc. This fails. What variable do I need
to set to select another version of opencascade?

I tested this on archlinux. I think it could be improved to be less
errorprone, but could possibly be comitted as is if that debug log is
removed. It seems to work fine if you are not switching between OCE and OCC
in the same build dir, that is, a clean config.

Nick

2018-03-17 0:51 GMT+01:00 Nick Østergaard <oe.nick@xxxxxxxxx>:

> Thank you very much, I will try to remember it after the weekend.
>
> 2018-03-17 <20%2018%2003%2017> 0:46 GMT+01:00 Seth Hillbrand <
> seth.hillbrand@xxxxxxxxx>:
>
>> Hi Nick-
>>
>> I finally found a moment to figure out Docker and get this up and running
>> in your build configuration.
>>
>> Please take a look when you have a chance and let me know if you have any
>> issues with this patch.
>>
>> Best-
>> Seth
>>
>> 2018-02-10 <20%2018%2002%2010> 7:12 GMT-08:00 Seth Hillbrand <
>> seth.hillbrand@xxxxxxxxx>:
>>
>>> Nick was having an unknown issue but I haven't heard back from him on
>>> whether the issue was resolved by doing a clean cmake.  If it isn't then
>>> I'll need to address that.
>>>
>>> Nick did you have a chance to test that?
>>>
>>> -S
>>>
>>> 2018-02-10 <20%2018%2002%2010> 6:18 GMT-08:00 Wayne Stambaugh <
>>> stambaughw@xxxxxxxxx>:
>>>
>>>> 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_patc
>>>> h_occt/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
>>>> >     -- Looking for
>>>> >     /home/amazingdude/kicad-source-mirror/build_seths_occt_patc
>>>> h_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
>>>> >
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>
>>>
>>
>> _______________________________________________
>> 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