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