lib and header paths truncated
Mark Brethen
mark.brethen at gmail.com
Sat Jul 12 08:38:23 PDT 2014
On Jul 12, 2014, at 9:43 AM, Mark Brethen <mark.brethen at gmail.com> wrote:
> I'm seeing several errors at 71% build of freecad, such as:
>
> :info:build /opt/local/var/macports/build/_Users_marbre_ports_cad_freecad/freecad/work/freecad-0.14.3692/src/Main/FreeCADGuiPy.cpp:34:10: fatal error: 'Inventor/Qt/SoQt.h' file not found
> :info:build #include <Inventor/Qt/SoQt.h>
> :info:build ^
> :info:build In file included from /opt/local/var/macports/build/_Users_marbre_ports_cad_freecad/freecad/work/freecad-0.14.3692/src/Mod/Test/Gui/UnitTestPy.cpp:26:
>
> In the Portfile, I pass these arguments to cmake:
>
> -DCOIN3D_LIBRARY=${frameworks_dir}/Inventor.framework/Inventor \
> -DCOIN3D_INCLUDE_DIR=${frameworks_dir}/Inventor.framework/Headers \
> -DSOQT_LIBRARY=${frameworks_dir}/SoQt.framework/SoQt \
>
> I think the paths are getting truncated at the period between 'Inventor.framework'. i.e. the correct path to SoQt,h is '${frameworks_dir}/Inventor.framework/Headers/Qt/SoQt.h' I'm not certain where this is occurring. How does tcl treat periods?
>
>
> Mark
>
>
>
>
In 'freecad-0.14.3692/cMake/FindCoin3D.cmake' I find:
IF(APPLE)
FIND_PATH(COIN3D_INCLUDE_DIR Inventor/So.h
/Library/Frameworks/Inventor.framework/Headers
/usr/local/include
/usr/include
)
FIND_LIBRARY(COIN3D_LIBRARY Coin
/Library/Frameworks/Inventor.framework/Libraries
/usr/lib
/usr/local/lib
)
SET(COIN3D_LIBRARY "-framework Coin3d" CACHE STRING "Coin3D library for OSX")
ELSE(APPLE)
However all the coin3D header files use the 'Inventor' prefix, for example in So.h:
#include <Inventor/SoDB.h>
#include <Inventor/SoInput.h>
#include <Inventor/SoOffscreenRenderer.h>
#include <Inventor/SoOutput.h>
#include <Inventor/SoPath.h>
#include <Inventor/SoPickedPoint.h>
#include <Inventor/SoPrimitiveVertex.h>
#include <Inventor/misc/SoState.h>
#include <Inventor/SoLists.h>
#include <Inventor/actions/SoActions.h>
#include <Inventor/details/SoDetails.h>
#include <Inventor/elements/SoElements.h>
#include <Inventor/engines/SoEngines.h>
#include <Inventor/errors/SoErrors.h>
#include <Inventor/events/SoEvents.h>
#include <Inventor/fields/SoFields.h>
#include <Inventor/nodes/SoNodes.h>
#include <Inventor/sensors/SoSensorManager.h>
#include <Inventor/sensors/SoSensors.h>
So it seems to me that the framework wasn't set up properly -- there isn't an 'Inventor' directory. I'm guessing the headers were written for a non-framework installation?
Mark
More information about the macports-dev
mailing list