2014-12-09 00:48:57 -08:00
|
|
|
#!/bin/bash
|
|
|
|
|
#This script should be able to generate the JNI
|
|
|
|
|
# bindings for NIVision. At some point,
|
|
|
|
|
# it should be integrated into the build system.
|
|
|
|
|
# Assumes running from allwpilib/wpilibj/wpilibJavaJNI/nivision
|
2014-12-12 22:52:31 -08:00
|
|
|
|
|
|
|
|
# Get structure sizes.
|
|
|
|
|
python gen_struct_sizer.py ../../../wpilibc/wpilibC++Devices/include/nivision.h nivision_2011.ini
|
|
|
|
|
arm-frc-linux-gnueabi-gcc -I../../../wpilibc/wpilibC++Devices/include -S struct_sizer.c
|
|
|
|
|
cat struct_sizer.s | python get_struct_size.py > nivision_arm.ini
|
|
|
|
|
|
|
|
|
|
python gen_struct_sizer.py ../../../wpilibc/wpilibC++Devices/include/NIIMAQdx.h imaqdx.ini
|
|
|
|
|
arm-frc-linux-gnueabi-gcc -I../../../wpilibc/wpilibC++Devices/include -S struct_sizer.c
|
|
|
|
|
cat struct_sizer.s | python get_struct_size.py > imaqdx_arm.ini
|
|
|
|
|
|
2015-01-14 23:49:37 -08:00
|
|
|
# Get functions actually in the .so; some functions are in the header but
|
|
|
|
|
# not the shared library!
|
|
|
|
|
arm-frc-linux-gnueabi-nm -D ../../../ni-libraries/libnivision.so.14.0.0 | cut -c 12- | grep ^imaq > nivision_funcs.txt
|
|
|
|
|
echo Priv_ReadJPEGString_C >> nivision_funcs.txt
|
|
|
|
|
arm-frc-linux-gnueabi-nm -D ../../../ni-libraries/libniimaqdx.so.14.0.0 | cut -c 12- | grep ^IMAQdx > imaqdx_funcs.txt
|
|
|
|
|
|
2014-12-09 00:48:57 -08:00
|
|
|
# Run python generator.
|
2014-12-12 22:52:31 -08:00
|
|
|
python gen_java.py \
|
|
|
|
|
../../../wpilibc/wpilibC++Devices/include/nivision.h \
|
|
|
|
|
nivision_arm.ini \
|
|
|
|
|
nivision_2011.ini \
|
2015-01-14 23:49:37 -08:00
|
|
|
nivision_funcs.txt \
|
2014-12-12 22:52:31 -08:00
|
|
|
\
|
|
|
|
|
../../../wpilibc/wpilibC++Devices/include/NIIMAQdx.h \
|
|
|
|
|
imaqdx_arm.ini \
|
2015-01-02 23:14:02 -08:00
|
|
|
imaqdx.ini \
|
2015-01-14 23:49:37 -08:00
|
|
|
imaqdx_funcs.txt \
|
|
|
|
|
\
|
2015-01-02 23:14:02 -08:00
|
|
|
dxattr.h \
|
|
|
|
|
imaqdx_arm.ini \
|
2015-01-14 23:49:37 -08:00
|
|
|
dxattr.ini \
|
|
|
|
|
dxattr_funcs.txt
|
2014-12-12 22:52:31 -08:00
|
|
|
|
2014-12-09 00:48:57 -08:00
|
|
|
# Stick generated files into appropriate places.
|
|
|
|
|
cp NIVision.cpp ../lib/NIVisionJNI.cpp
|
|
|
|
|
mkdir -p ../../wpilibJavaDevices/src/main/java/com/ni/vision
|
|
|
|
|
cp *.java ../../wpilibJavaDevices/src/main/java/com/ni/vision/
|