1

Im trying to install Autodesk FBX SDK and it requires you to build bindings using sip. When I run the command python PythonBindings.py Python3_x64, it runs the command

=>   RUN COMMAND       : "/home/user1/miniconda3/envs/rl37/bin/sip" -o -t FBX_X64  -c /home/user1/Downloads/fbx_installed/build/Python37_x64 -b /home/user1/Downloads/fbx_installed/build/Python37_x64/fbx_module.sbf -I /home/user1/Downloads/fbx_installed/sip /home/user1/Downloads/fbx_installed/sip/fbx_module.sip

which throws the error

sip: /home/user1/Downloads/fbx_installed/sip/fbxtypes.sip:32: syntax error
Error: Unable to open
"/home/user1/Downloads/fbx_installed/build/Python37_x64/fbx_module.sbf"

the code at line 32 in fbxtypes.sip is :

enum EFbxType
{
    eFbxUndefined,  //!< Unidentified.
    eFbxChar,       //!< 8 bit signed integer.
    eFbxUChar,      //!< 8 bit unsigned integer.
    eFbxShort,      //!< 16 bit signed integer.
    eFbxUShort,     //!< 16 bit unsigned integer.
    eFbxUInt,       //!< 32 bit unsigned integer.
    eFbxLongLong,   //!< 64 bit signed integer.
    eFbxULongLong,  //!< 64 bit unsigned integer.
    eFbxHalfFloat,  //!< 16 bit floating point.
    eFbxBool,       //!< Boolean.
    eFbxInt,        //!< 32 bit signed integer.
    eFbxFloat,      //!< Floating point value.
    eFbxDouble,     //!< Double width floating point value.
    eFbxDouble2,    //!< Vector of two double values.
    eFbxDouble3,    //!< Vector of three double values.
    eFbxDouble4,    //!< Vector of four double values.
    eFbxDouble4x4,  //!< Four vectors of four double values.
    eFbxEnum,       //!< Enumeration.
    eFbxString,     //!< String.
    eFbxTime,       //!< Time value.
    eFbxReference,  //!< Reference to object or property.
    eFbxBlob,       //!< Binary data block type.
    eFbxDistance,   //!< Distance.
    eFbxDateTime,   //!< Date and time.
    eFbxTypeCount   //!< Indicates the number of type identifiers constants.
};

%Feature SIZE_T_AS_ULONGLONG
%If (FBX_X86)
typedef unsigned int size_t; // <<<<<<    <<<<<<<<<<<   <<<<<<<<<<< line 32
%End

%If (FBX_X64)
    %If (SIZE_T_AS_ULONGLONG)
        typedef unsigned long long size_t;
    %End
    %If (!SIZE_T_AS_ULONGLONG)
        typedef unsigned long size_t;
    %End
%End

The sip version is 4.19.25 which I built from source.

I think the reason is revised syntax as the sip files in Autodesk's FBX python bindings seem to be created a long time ago - in the file fbx_module.sip:

%Timeline {FBX_2013_0}

%Copying
Copyright (C) 2009 Autodesk, Inc. and/or its licensors.
All Rights Reserved.

I can't find what the incorrectness in syntax is.

uniqueid
  • 175
  • 1
  • 10

1 Answers1

0

Based on this reference for a custom build of the bindings, it sounds like for the 2020 fbx sdk, sip 4.19.25 is not supported. This might be the issue you're encountering, in which case as per that article you could try sip version 4.19.3 or earlier.

dphil
  • 31
  • 3
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - [From Review](/review/late-answers/32973605) – h0tw1r3 Oct 21 '22 at 17:33