try to use swig as interface generator
swig doesn't seem to be used very often to generate c++ bindings for lisp
i now look at smoke: http://sbcl10.sbcl.org/materials/dlichteblau/smoke.pdf
i can't figure out how to call smoke for non-kde libs
calling the pylon c++ libraries from within cling kind of works. but apparenty some of the headers can't be parsed with llvm

martin@localhost /dev/shm/cling-Fedora20-x86_64-d42f77918d/bin $ /dev/shm/cling-Fedora20-x86_64-d42f77918d/bin/cling -DUSE_GIGE -L$PYLON_ROOT/lib64 -L$GENICAM_ROOT/bin/Linux64_x64 -L$GENICAM_ROOT/bin/Linux64_x64/GenApi/Generic -Wl,-E -lpylonbase -lGenApi_gcc40_v2_3 -lGCBase_gcc40_v2_3 -lLog_gcc40_v2_3 -lMathParser_gcc40_v2_3 -lXerces-C_gcc40_v2_7 -llog4cpp_gcc40_v2_3
Warning in cling::CIFactory::createCI():
  C++ ABI mismatch, compiled with __GLIBCXX__ v20131212 running with v20130411
warning: -Wl,-E: 'linker' input unused

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ .I /home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include
[cling]$ .I /home/martin/pylon-3.2.1-x86_64/pylon3/include
[cling]$ .L Base/GCString.h
[cling]$ .L pylon/TlFactory.h
[cling]$ .L pylon/InstantCamera.h
In file included from input_line_5:1:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/InstantCamera.h:21:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/Synch.h:35:
/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:266:53: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("Value = %"FMT_I64"d must be equal or greater than Min = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Min)); \
                                                    ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:266:101: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("Value = %"FMT_I64"d must be equal or greater than Min = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Min)); \
                                                                                                    ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:268:53: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("Value = %"FMT_I64"d must be equal or smaller than Max = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Max)); \
                                                    ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:268:101: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("Value = %"FMT_I64"d must be equal or smaller than Max = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Max)); \
                                                                                                    ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:272:76: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("The difference between Value = %"FMT_I64"d and Min = %"FMT_I64"d must be dividable without rest by Inc = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Min), (int64_...
                                                                           ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:272:98: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("The difference between Value = %"FMT_I64"d and Min = %"FMT_I64"d must be dividable without rest by Inc = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Min), (int64_...
                                                                                                 ^

/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/../Base/GCException.h:272:150: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
            throw OUT_OF_RANGE_EXCEPTION("The difference between Value = %"FMT_I64"d and Min = %"FMT_I64"d must be dividable without rest by Inc = %"FMT_I64"d", (int64_t)(_Value), (int64_t)(_Min), (int64_...
                                                                                                                                                     ^

In file included from input_line_5:1:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/InstantCamera.h:23:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/ImageEventHandler.h:21:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/GrabResultPtr.h:22:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/GrabResultData.h:22:
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:179:17: warning: 48 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:194:17: warning: 48 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:290:17: warning: 48 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:304:17: warning: 51 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:315:17: warning: 43 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:334:17: warning: 51 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:345:17: warning: 47 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:383:17: warning: 49 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_Mono8', 'PixelType_Mono8signed'... [-Wswitch]
        switch (pixelType)
                ^
/home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/PixelType.h:531:17: warning: 16 enumeration values not handled in switch: 'PixelType_Undefined', 'PixelType_YUV411packed', 'PixelType_YUV422packed'...
      [-Wswitch]
        switch (pixelType)
                ^
In file included from input_line_5:1:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/InstantCamera.h:43:
In file included from /home/martin/pylon-3.2.1-x86_64/pylon3/include/pylon/_InstantCameraParams.h:27:
/home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include/GenApi/IEnumerationT.h:338:62: error: invalid suffix on literal; C++11 requires a space between literal and identifier
      [-Wreserved-user-defined-literal]
                  throw ACCESS_EXCEPTION("Unknown IntValue %"FMT_I64"d", IntValue);
                                                             ^

[cling]$ using namespace Pylon;
[cling]$ using namespace std;
[cling]$
[cling]$ PylonInitialize()
[cling]$
[cling]$ CTlFactory &tlFactory = CTlFactory::GetInstance()
(Pylon::CTlFactory &) @0x4e46e10
[cling]$ DeviceInfoList_t devices;
[cling]$ tlFactory.EnumerateDevices(devices)
(int) 3
[cling]$ CInstantCameraArray cameras(3);
input_line_12:2:2: error: unknown type name 'CInstantCameraArray'
 CInstantCameraArray cameras(3);
 ^
after fixing a few typos in the pylon headers they can be parsed by llvm and i can acquire images in cling:

.I /home/martin/pylon-3.2.1-x86_64/pylon3/genicam/library/CPP/include
.I /home/martin/pylon-3.2.1-x86_64/pylon3/include
.L Base/GCString.h
.L pylon/TlFactory.h
.L pylon/InstantCamera.h
.L pylon/PylonIncludes.h

using namespace Pylon;
using namespace std;

PylonInitialize()
// don't forget this before closing cling:
// PylonTerminate();

CTlFactory &tlFactory = CTlFactory::GetInstance()
DeviceInfoList_t devices;
tlFactory.EnumerateDevices(devices)
CInstantCameraArray cameras(3);
for ( size_t i = 0; i < cameras.GetSize(); ++i) cameras[ i ].Attach( tlFactory.CreateDevice( devices[ i ]));

CGrabResultPtr ptrGrabResult
cameras.StartGrabbing()
cameras.IsGrabbing()
cameras.RetrieveResult( 5000, ptrGrabResult, TimeoutHandling_ThrowException)
intptr_t cameraContextValue = ptrGrabResult->GetCameraContext()

cout << "Camera " <<  cameraContextValue << ": " << cameras[ cameraContextValue ].GetDeviceInfo().GetModelName() << endl;
cout << "GrabSucceeded: " << ptrGrabResult->GrabSucceeded() << endl;
cout << "SizeX: " << ptrGrabResult->GetWidth() << endl;
cout << "SizeY: " << ptrGrabResult->GetHeight() << endl;
const uint8_t *pImageBuffer = (uint8_t *) ptrGrabResult->GetBuffer();
cout << "Gray value of first pixel: " << (uint32_t) pImageBuffer[0] << endl << endl;