← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Allow OpenCASCADE standard edition

 

The occ patch makes the build fail on macos when enabling oce. I don't
understanf why the error message suggest the occ path instead of the occ
one. Also I don't understand why the defualt would not work as before.

http://ci.kicad-pcb.org/job/osx-kicad-adam-head/659/console


tir. 20. mar. 2018 00.50 skrev Seth Hillbrand <seth.hillbrand@xxxxxxxxx>:

> 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_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
>>>>>> >
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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