kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #33632
Re: [PATCH] Allow OpenCASCADE standard edition
Hi Seth
The second patch seems more broken.
I get something like this when configuring:
...
-- Found OCC: /opt/oce/lib/oce-0.18/../../include/oce (found version
"6.9.1")
-- Found OpenCASCADE Community Edition version: 6.9.1
-- ++ OpenCASCADE Community Edition include directory: /opt/oce/include/oce
-- ++ OpenCASCADE Community Edition shared libraries directory:
/home/nickoe/kicad-source-mirror
...
CMake Error: The following variables are used in this project, but they are
set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake
files:
OCC_TEMP_LIB
linked by target "s3d_plugin_oce" in directory
/home/nickoe/kicad-source-mirror/plugins/3d/oce
...
linked by target "s3d_plugin_oce" in directory
/home/nickoe/kicad-source-mirror/plugins/3d/oce
linked by target "kicad2step" in directory
/home/nickoe/kicad-source-mirror/utils/kicad2step
...
linked by target "kicad2step" in directory
/home/nickoe/kicad-source-mirror/utils/kicad2step
-- Configuring incomplete, errors occurred!
See also "/home/nickoe/kicad-source-mirror/test/CMakeFiles/CMakeOutput.log".
See also "/home/nickoe/kicad-source-mirror/test/CMakeFiles/CMakeError.log".
If you like I can share a Dockerfile which tries to replicate my
environment with archlinux.
2018-01-30 20:12 GMT+01:00 Seth Hillbrand <seth.hillbrand@xxxxxxxxx>:
> 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>:
>
>> 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/../../in
>> clude/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>:
>>
>>> 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
>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>
Follow ups
References