← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Allow OpenCASCADE standard edition

 

Nick, as always, thanks for the detailed helpful comments.  To specify the
installation, we will need to set -DOCC_LIBRARY_DIR and -DOCC_INCLUDE_DIR.
That works on my machine and the docker file.

I'll implement your suggestions and give people another few days to test if
they're interested in this topic before merging.

Best-
Seth

2018-03-18 15:57 GMT-07:00 Nick Østergaard <oe.nick@xxxxxxxxx>:

> 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