mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
- Fix sliceByteBuffer, getBytes, and putBytes implementations, which had functional errors. Also, getBytes and putBytes now use the ByteBuffer get/put byte[] functions, which should improve performance. - Don't generate wrappers for functions that are not available in the shared library. Change-Id: Iaf45814b34720d3fdcd58adf99ad9c3ff2703bc3
43 lines
1.7 KiB
Bash
Executable File
43 lines
1.7 KiB
Bash
Executable File
#!/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
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Run python generator.
|
|
python gen_java.py \
|
|
../../../wpilibc/wpilibC++Devices/include/nivision.h \
|
|
nivision_arm.ini \
|
|
nivision_2011.ini \
|
|
nivision_funcs.txt \
|
|
\
|
|
../../../wpilibc/wpilibC++Devices/include/NIIMAQdx.h \
|
|
imaqdx_arm.ini \
|
|
imaqdx.ini \
|
|
imaqdx_funcs.txt \
|
|
\
|
|
dxattr.h \
|
|
imaqdx_arm.ini \
|
|
dxattr.ini \
|
|
dxattr_funcs.txt
|
|
|
|
# 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/
|