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