kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #35036
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