Build wpilib with cmake instead of gradle (#15)

* Move java lib install to /usr/local/frc/java
* Build and install both debug and normal OpenCV libraries
* Install OpenCV cmake files
* Build OpenCV Java with version 8 target
* Build static OpenCV for static allwpilib binaries
* Move netconsoleTee install to /usr/local/frc/bin
* Move multiCameraServer default app install to /usr/local/frc/bin
* Install more FRC binaries
* Fix /home/pi/zips/java-multiCameraServer.zip owner to pi:pi
* Remove azure 60 minute timeout
* Add openjdk-8-jdk to Azure docker image (this is needed for cmake to find javah as only cmake 3.9 is available)
pull/311/head
Peter Johnson 2018-12-30 02:07:22 -08:00 committed by GitHub
parent 0c1008defa
commit 43c710ec39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 266 additions and 97 deletions

3
.gitmodules vendored
View File

@ -7,6 +7,3 @@
[submodule "deps/allwpilib"]
path = deps/allwpilib
url = https://github.com/wpilibsuite/allwpilib.git
[submodule "deps/thirdparty-opencv"]
path = deps/thirdparty-opencv
url = https://github.com/wpilibsuite/thirdparty-opencv.git

View File

@ -7,6 +7,6 @@ RUN apt-get -y update \
git vim parted \
quilt realpath qemu-user-static debootstrap zerofree pxz zip dosfstools \
bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file \
build-essential cmake python3 ant sudo \
build-essential cmake python3 ant sudo openjdk-8-jdk \
&& apt-get -y -t stretch-backports install openjdk-11-jdk \
&& rm -rf /var/lib/apt/lists/*

View File

@ -9,6 +9,8 @@ jobs:
pool:
vmImage: 'Ubuntu 16.04'
timeoutInMinutes: 0
container: pi-gen
steps:

17
deps/02-extract.sh vendored
View File

@ -32,7 +32,22 @@ popd
# opencv sources
tar xzf ../01-download/3.4.4.tar.gz
mv opencv-3.4.4 opencv
cp ../thirdparty-opencv/arm-pi-gnueabihf.toolchain.cmake .
sed -i -e 's/javac sourcepath/javac target="1.8" source="1.8" sourcepath/' opencv/modules/java/jar/build.xml.in
# toolchain setup for opencv and wpilib
cp ../arm-pi-gnueabihf.toolchain.cmake .
cp -R ../thirdparty-opencv/jni .
tar xzf ../01-download/jdk_11*.tar.gz jdk/include
mkdir -p cmake-modules
cat > cmake-modules/FindJNI.cmake << EOF
set(JNI_INCLUDE_DIRS "${PWD}/jdk/include" "${PWD}/jdk/include/linux")
set(JNI_LIBRARIES )
set(JNI_FOUND YES)
set(JAVA_AWT_LIBRARY )
set(JAVA_JVM_LIBRARY )
set(JAVA_INCLUDE_PATH "${PWD}/jdk/include")
set(JAVA_INCLUDE_PATH2 "${PWD}/jdk/include/linux")
set(JAVA_AWT_INCLUDE_PATH )
EOF
popd

160
deps/03-build.sh vendored
View File

@ -2,53 +2,133 @@
export PATH=${PWD}/02-extract/raspbian9/bin:${PATH}
split_debug () {
arm-raspbian9-linux-gnueabihf-objcopy --only-keep-debug $1 $1.debug
arm-raspbian9-linux-gnueabihf-strip -g $1
arm-raspbian9-linux-gnueabihf-objcopy --add-gnu-debuglink=$1.debug $1
}
split_debug_so () {
pushd $1
for lib in *.so
do
split_debug $lib
done
popd
}
split_debug_exe () {
pushd $1
for exe in *
do
split_debug $exe
done
popd
}
# opencv
build_opencv () {
cmake ../../02-extract/opencv \
-DWITH_CUDA=OFF \
-DWITH_IPP=OFF \
-DWITH_ITT=OFF \
-DWITH_OPENCL=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_GSTREAMER=OFF \
-DWITH_LAPACK=OFF \
-DWITH_GTK=ON \
-DWITH_1394=OFF \
-DWITH_JASPER=OFF \
-DWITH_TIFF=OFF \
-DBUILD_JPEG=ON \
-DBUILD_PNG=ON \
-DBUILD_ZLIB=ON \
-DBUILD_TESTS=OFF \
-DPython_ADDITIONAL_VERSIONS=3.5 \
-DWITH_WEBP=OFF \
-DBUILD_JAVA=$2 \
-DBUILD_WITH_STATIC_CRT=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_DIRECTX=OFF \
-DENABLE_CXX11=ON \
-DBUILD_SHARED_LIBS=$2 \
-DCMAKE_BUILD_TYPE=$1 \
-DCMAKE_DEBUG_POSTFIX=d \
-DCMAKE_TOOLCHAIN_FILE=${PWD}/../../02-extract/arm-pi-gnueabihf.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=make \
-DENABLE_NEON=ON \
-DENABLE_VFPV3=ON \
-DBUILD_opencv_python3=$2 \
-DPYTHON3_INCLUDE_PATH=${PWD}/../../02-extract/raspbian9/arm-raspbian9-linux-gnueabihf/usr/include/python3.5m \
-DPYTHON3_NUMPY_INCLUDE_DIRS=${PWD}/../../02-extract/raspbian9/arm-raspbian9-linux-gnueabihf/usr/include/python3.5m/numpy \
-DOPENCV_EXTRA_FLAGS_DEBUG=-Og \
-DCMAKE_MODULE_PATH=${PWD}/../../02-extract/cmake-modules \
|| exit 1
make -j3 || exit 1
make install || exit 1
if [ "$1" == "RelWithDebugInfo" ]
then
cp -p install/share/OpenCV/java/libopencv_java*.so install/lib/
fi
split_debug_so install/lib
}
mkdir -p 03-build/opencv-build
pushd 03-build/opencv-build
cmake ../../02-extract/opencv \
-DWITH_CUDA=OFF \
-DWITH_IPP=OFF \
-DWITH_ITT=OFF \
-DWITH_OPENCL=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_GSTREAMER=OFF \
-DWITH_LAPACK=OFF \
-DWITH_GTK=ON \
-DWITH_1394=OFF \
-DWITH_JASPER=OFF \
-DWITH_TIFF=OFF \
-DBUILD_JPEG=ON \
-DBUILD_PNG=ON \
-DBUILD_ZLIB=ON \
-DBUILD_TESTS=OFF \
-DPython_ADDITIONAL_VERSIONS=3.5 \
-DWITH_WEBP=OFF \
-DBUILD_JAVA=ON \
-DBUILD_WITH_STATIC_CRT=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_DIRECTX=OFF \
-DENABLE_CXX11=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${PWD}/../../02-extract/arm-pi-gnueabihf.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=make \
-DENABLE_NEON=ON \
-DENABLE_VFPV3=ON \
-DBUILD_opencv_python3=ON \
-DPYTHON3_INCLUDE_PATH=${PWD}/../../02-extract/raspbian9/arm-raspbian9-linux-gnueabihf/usr/include/python3.5m \
-DPYTHON3_NUMPY_INCLUDE_DIRS=${PWD}/../../02-extract/raspbian9/arm-raspbian9-linux-gnueabihf/usr/include/python3.5m/numpy \
-DOPENCV_EXTRA_FLAGS_DEBUG=-Og \
-DCMAKE_MODULE_PATH=${PWD}/../../thirdparty-opencv/arm-frc-modules \
|| exit 1
make -j3 || exit 1
make install || exit 1
build_opencv RelWithDebugInfo ON || exit 1
popd
mkdir -p 03-build/opencv-build-debug
pushd 03-build/opencv-build-debug
build_opencv Debug ON || exit 1
popd
mkdir -p 03-build/opencv-static
pushd 03-build/opencv-static
build_opencv RelWithDebugInfo OFF || exit 1
popd
# wpiutil, cscore, ntcore, cameraserver
pushd allwpilib
./gradlew -PonlyRaspbian :wpiutil:build :cscore:build :ntcore:build :cameraserver:build :cameraserver:multiCameraServer:build || exit 1
# always use the release version of opencv jar/jni
build_wpilib () {
cmake ../../allwpilib \
-DCMAKE_BUILD_TYPE=$1 \
-DCMAKE_TOOLCHAIN_FILE=${PWD}/../../02-extract/arm-pi-gnueabihf.toolchain.cmake \
-DCMAKE_MODULE_PATH=${PWD}/../../02-extract/cmake-modules \
-DOPENCV_JAR_FILE=`ls ${PWD}/../opencv-build/install/share/OpenCV/java/opencv-*.jar` \
-DOPENCV_JNI_FILE=`ls ${PWD}/../opencv-build/install/share/OpenCV/java/libopencv_java*.so` \
-DOpenCV_DIR=${PWD}/../$2/install/share/OpenCV \
-DTHREADS_PTHREAD_ARG=-pthread \
|| exit 1
make -j3 || exit 1
split_debug_so lib
}
mkdir -p 03-build/allwpilib-build
pushd 03-build/allwpilib-build
build_wpilib RelWithDebugInfo opencv-build || exit 1
popd
mkdir -p 03-build/allwpilib-build-debug
pushd 03-build/allwpilib-build-debug
build_wpilib Debug opencv-build-debug || exit 1
popd
# static (for tools)
mkdir -p 03-build/allwpilib-static
pushd 03-build/allwpilib-static
cmake ../../allwpilib \
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
-DCMAKE_TOOLCHAIN_FILE=${PWD}/../../02-extract/arm-pi-gnueabihf.toolchain.cmake \
-DCMAKE_MODULE_PATH=${PWD}/../../02-extract/cmake-modules \
-DOpenCV_DIR=${PWD}/../opencv-static/install/share/OpenCV \
-DWITHOUT_JAVA=ON \
-DBUILD_SHARED_LIBS=OFF \
-DTHREADS_PTHREAD_ARG=-pthread \
|| exit 1
make -j3 || exit 1
split_debug_exe bin
popd
# tools

36
deps/04-copy.sh vendored
View File

@ -21,7 +21,9 @@ sh -c 'cd examples && zip -r - python-multiCameraServer' > ${DEST}/python-multiC
cp tools/setuidgids ${DEST}/
cp tools/_cscore.so ${DEST}/_cscore.cpython-35m-arm-linux-gnueabihf.so
cp tools/_cscore.so.debug ${DEST}/
cp tools/rpiConfigServer ${DEST}/
cp tools/rpiConfigServer.debug ${DEST}/
#
# openjdk
@ -30,15 +32,19 @@ cp tools/rpiConfigServer ${DEST}/
cp 01-download/jdk_11.0.1-strip.tar.gz ${DEST}/
#
# thirdparty-opencv
# opencv
#
sh -c 'cd 03-build/opencv-build/install/lib && tar czf - libopencv*' > ${DEST}/libopencv.tar.gz
sh -c 'cd 03-build/opencv-build-debug/install/lib && tar czf - libopencv*' > ${DEST}/libopencv-debug.tar.gz
sh -c 'cd 03-build/opencv-build/install/include && tar czf - .' > ${DEST}/opencv-include.tar.gz
cp 03-build/opencv-build/install/share/OpenCV/java/opencv-*.jar ${DEST}/
sh -c 'cd 03-build/opencv-build/install/share/OpenCV && tar czf - *.cmake' > ${DEST}/opencv-cmake.tar.gz
sh -c 'cd 03-build/opencv-build-debug/install/share/OpenCV && tar czf - *.cmake' > ${DEST}/opencv-cmake-debug.tar.gz
# the opencv build names the python .so with the build platform name instead
# of the target platform, so rename it
cp 03-build/opencv-build/install/python/cv2/python-*/cv2.*.so ${DEST}/cv2.cpython-35m-arm-linux-gnueabihf.so
@ -59,32 +65,14 @@ sh -c 'cd pynetworktables && tar czf - networktables ntcore' > ${DEST}/pynetwork
# allwpilib
#
cp \
allwpilib/wpiutil/build/libs/wpiutil/shared/release/libwpiutil.so* \
allwpilib/wpiutil/build/libs/wpiutil/shared/debug/libwpiutild.so* \
allwpilib/wpiutil/build/libs/wpiutil.jar \
allwpilib/cscore/build/libs/cscore/shared/release/libcscore.so* \
allwpilib/cscore/build/libs/cscore/shared/debug/libcscored.so* \
allwpilib/cscore/build/libs/cscoreJNIShared/shared/release/libcscorejni.so* \
allwpilib/cscore/build/libs/cscore.jar \
allwpilib/ntcore/build/libs/ntcore/shared/release/libntcore.so* \
allwpilib/ntcore/build/libs/ntcore/shared/debug/libntcored.so* \
allwpilib/ntcore/build/libs/ntcoreJNIShared/shared/release/libntcorejni.so* \
allwpilib/ntcore/build/libs/ntcore.jar \
allwpilib/cameraserver/build/libs/cameraserver/shared/release/libcameraserver.so* \
allwpilib/cameraserver/build/libs/cameraserver/shared/debug/libcameraserverd.so* \
allwpilib/cameraserver/build/libs/cameraserver.jar \
${DEST}/
sh -c 'cd 03-build/allwpilib-build/lib && tar czf - lib*' > ${DEST}/wpilib.tar.gz
sh -c 'cd 03-build/allwpilib-build-debug/lib && tar czf - lib*' > ${DEST}/wpilib-debug.tar.gz
cp 03-build/allwpilib-build/jar/*.jar ${DEST}/
sh -c 'cd allwpilib/wpiutil/src/main/native/include && tar czf - uv.h uv wpi' > ${DEST}/wpiutil-include.tar.gz
sh -c 'cd allwpilib/cscore/src/main/native/include && tar czf - .' > ${DEST}/cscore-include.tar.gz
sh -c 'cd allwpilib/ntcore/src/main/native/include && tar czf - .' > ${DEST}/ntcore-include.tar.gz
sh -c 'cd allwpilib/cameraserver/src/main/native/include && tar czf - cameraserver vision' > ${DEST}/cameraserver-include.tar.gz
cp \
allwpilib/cameraserver/multiCameraServer/build/exe/multiCameraServerCpp/multiCameraServerCpp \
${DEST}/multiCameraServer
cp \
allwpilib/wpiutil/build/exe/netconsoleTee/netconsoleTee \
${DEST}/
sh -c 'cd 03-build/allwpilib-static/bin && tar czf - cscore_* multiCameraServer* netconsoleTee*' > ${DEST}/wpilib-bin.tar.gz

2
deps/allwpilib vendored

@ -1 +1 @@
Subproject commit 7d7af287f6718c0fcb2123aca1b2cebc3177ade5
Subproject commit 300eeb330d78e2ef605d30644efbc4dd8bcdad61

77
deps/arm-pi-gnueabihf.toolchain.cmake vendored Normal file
View File

@ -0,0 +1,77 @@
if(COMMAND toolchain_save_config)
return() # prevent recursive call
endif()
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
set(GNU_MACHINE "arm-raspbian9-linux-gnueabi" CACHE STRING "GNU compiler triple")
set(SOFTFP no)
set(FLOAT_ABI_SUFFIX "hf")
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR arm)
include("${CMAKE_CURRENT_LIST_DIR}/opencv/platforms/linux/gnu.toolchain.cmake")
if(NOT DEFINED CMAKE_C_COMPILER)
find_program(CMAKE_C_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-gcc${__GCC_VER_SUFFIX})
else()
#message(WARNING "CMAKE_C_COMPILER=${CMAKE_C_COMPILER} is defined")
endif()
if(NOT DEFINED CMAKE_CXX_COMPILER)
find_program(CMAKE_CXX_COMPILER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-g++${__GCC_VER_SUFFIX})
else()
#message(WARNING "CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} is defined")
endif()
if(NOT DEFINED CMAKE_LINKER)
find_program(CMAKE_LINKER NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ld)
else()
#message(WARNING "CMAKE_LINKER=${CMAKE_LINKER} is defined")
endif()
if(NOT DEFINED CMAKE_AR)
find_program(CMAKE_AR NAMES ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar${__GCC_VER_SUFFIX} ${GNU_MACHINE}${FLOAT_ABI_SUFFIX}-ar)
else()
#message(WARNING "CMAKE_AR=${CMAKE_AR} is defined")
endif()
if(NOT DEFINED ARM_LINUX_SYSROOT AND DEFINED GNU_MACHINE)
set(ARM_LINUX_SYSROOT /usr/${GNU_MACHINE}${FLOAT_ABI_SUFFIX})
endif()
if(NOT DEFINED CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "" CACHE INTERNAL "")
set(CMAKE_C_FLAGS "" CACHE INTERNAL "")
set(CMAKE_SHARED_LINKER_FLAGS "" CACHE INTERNAL "")
set(CMAKE_MODULE_LINKER_FLAGS "" CACHE INTERNAL "")
set(CMAKE_EXE_LINKER_FLAGS "" CACHE INTERNAL "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-psabi")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-psabi")
set(CMAKE_SHARED_LINKER_FLAGS "${ARM_LINKER_FLAGS} -rdynamic ${CMAKE_SHARED_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${ARM_LINKER_FLAGS} -rdynamic ${CMAKE_MODULE_LINKER_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${ARM_LINKER_FLAGS} -rdynamic ${CMAKE_EXE_LINKER_FLAGS}")
else()
#message(WARNING "CMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}' is defined")
endif()
if(USE_NEON)
message(WARNING "You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead." )
set(ENABLE_NEON TRUE)
elseif(USE_VFPV3)
message(WARNING "You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead." )
set(ENABLE_VFPV3 TRUE)
endif()
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ARM_LINUX_SYSROOT})
if(EXISTS ${CUDA_TOOLKIT_ROOT_DIR})
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CUDA_TOOLKIT_ROOT_DIR})
endif()
set(TOOLCHAIN_CONFIG_VARS ${TOOLCHAIN_CONFIG_VARS}
ARM_LINUX_SYSROOT
ENABLE_NEON
ENABLE_VFPV3
CUDA_TOOLKIT_ROOT_DIR
)
toolchain_save_config()

View File

@ -11,7 +11,7 @@ apply plugin: 'com.github.johnrengelman.shadow'
repositories {
mavenCentral()
flatDir {
dirs '/home/pi/javalibs', '.'
dirs '/usr/local/frc/java', '.'
}
}

@ -1 +0,0 @@
Subproject commit 579bc6b26169c690bdadb52150d4396e696eed31

25
deps/tools/Makefile vendored
View File

@ -1,7 +1,8 @@
SYSROOT?=../02-extract/raspbian9/arm-raspbian9-linux-gnueabihf
COMPILER?=../02-extract/raspbian9/bin/arm-raspbian9-linux-gnueabihf-
WPILIB?=../allwpilib
WPILIB_PLATFORM?=.
WPILIB_SRC?=../allwpilib
WPILIB_BUILD?=../03-build/allwpilib-build
WPILIB_STATIC_BUILD?=../03-build/allwpilib-static
OPENCV_INSTALL?=../03-build/opencv-build/install
EXEC_HOME?=/home/pi
FRC_JSON?=/boot/frc.json
@ -25,19 +26,21 @@ setuidgids: setuidgids.c
${COMPILER}gcc -O -Wall -D_GNU_SOURCE -o $@ $<
_cscore.so: ../robotpy-cscore/src/_cscore.cpp ../robotpy-cscore/src/ndarray_converter.cpp
${COMPILER}g++ -O -Wall -fvisibility=hidden -shared -fPIC -o $@ \
${COMPILER}g++ -g -O -Wall -fvisibility=hidden -shared -fPIC -o $@ \
-I${OPENCV_INSTALL}/include \
-I${WPILIB}/wpiutil/src/main/native/include \
-I${WPILIB}/cscore/src/main/native/include \
-I${WPILIB_SRC}/wpiutil/src/main/native/include \
-I${WPILIB_SRC}/cscore/src/main/native/include \
-I${SYSROOT}/usr/include/python3.5 \
-L${WPILIB}/cscore/build/libs/cscore/shared/${WPILIB_PLATFORM}/release \
-L${WPILIB}/wpiutil/build/libs/wpiutil/shared/${WPILIB_PLATFORM}/release \
-L${WPILIB_BUILD}/lib \
-L${OPENCV_INSTALL}/lib \
../robotpy-cscore/src/_cscore.cpp \
../robotpy-cscore/src/ndarray_converter.cpp \
-lcscore \
-lwpiutil \
-lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
${COMPILER}objcopy --only-keep-debug $@ $@.debug
${COMPILER}strip -g $@
${COMPILER}objcopy --add-gnu-debuglink=$@.debug $@
RPICONFIGSERVER_OBJS= \
rpiConfigServer_src/main.o \
@ -53,17 +56,17 @@ RPICONFIGSERVER_OBJS= \
rpiConfigServer_src/resources/frcvision.js.o
rpiConfigServer: ${RPICONFIGSERVER_OBJS}
${COMPILER}g++ -pthread -o $@ \
${COMPILER}g++ -pthread -g -o $@ \
${RPICONFIGSERVER_OBJS} \
-L${WPILIB}/wpiutil/build/libs/wpiutil/static/${WPILIB_PLATFORM}/release \
-L${WPILIB_STATIC_BUILD}/lib \
-lwpiutil
${COMPILER}objcopy --only-keep-debug $@ $@.debug
${COMPILER}strip -g $@
${COMPILER}objcopy --add-gnu-debuglink=$@.debug $@
%.o: %.cpp
${COMPILER}g++ -O -Wall -c -o $@ \
-I${WPILIB}/wpiutil/src/main/native/include \
${COMPILER}g++ -g -O -Wall -c -o $@ \
-I${WPILIB_SRC}/wpiutil/src/main/native/include \
'-DEXEC_HOME="${EXEC_HOME}"' \
'-DFRC_JSON="${FRC_JSON}"' \
'-DDHCPCD_CONF="${DHCPCD_CONF}"' \

View File

@ -30,7 +30,7 @@ void Application::Set(wpi::StringRef appType,
wpi::StringRef appCommand;
if (appType == "builtin") {
appCommand = "./multiCameraServer";
appCommand = "/usr/local/frc/bin/multiCameraServer";
} else if (appType == "example-java") {
appDir = "java-multiCameraServer";
appCommand =

View File

@ -21,8 +21,6 @@ install -m 644 files/frc.json "${ROOTFS_DIR}/boot/"
install -m 755 extfiles/setuidgids "${ROOTFS_DIR}/usr/local/bin/"
install -m 755 -o 1000 -g 1000 extfiles/multiCameraServer "${ROOTFS_DIR}/home/pi/"
cat extfiles/jdk_11.0.1-strip.tar.gz | sh -c "mkdir -p ${ROOTFS_DIR}/usr/lib/jvm && cd ${ROOTFS_DIR}/usr/lib/jvm/ && tar xzf - --exclude=\*.diz --exclude=src.zip --transform=s/^jdk/jdk-11.0.1/"
cp files/jdk-11.0.1.jinfo "${ROOTFS_DIR}/usr/lib/jvm/.jdk-11.0.1.jinfo"
@ -83,8 +81,13 @@ EOF
install -m 644 files/ld.so.conf.d/*.conf "${ROOTFS_DIR}/etc/ld.so.conf.d/"
install -v -d "${ROOTFS_DIR}/usr/local/frc/bin"
cat extfiles/wpilib-bin.tar.gz | sh -c 'cd ${ROOTFS_DIR}/usr/local/frc/bin/ && tar xzf -'
install -v -d "${ROOTFS_DIR}/usr/local/frc/lib"
cat extfiles/libopencv-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
cat extfiles/libopencv.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
install -m 755 extfiles/cv2.*.so "${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/"
@ -93,10 +96,8 @@ cat extfiles/pynetworktables.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/lib/pyth
cat extfiles/robotpy-cscore.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/ && tar xzf -"
install -m 755 extfiles/_cscore.*.so "${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/cscore/"
install -m 755 extfiles/libwpiutil*.so* "${ROOTFS_DIR}/usr/local/frc/lib/"
install -m 755 extfiles/libcscore*.so* "${ROOTFS_DIR}/usr/local/frc/lib/"
install -m 755 extfiles/libntcore*.so* "${ROOTFS_DIR}/usr/local/frc/lib/"
install -m 755 extfiles/libcameraserver*.so* "${ROOTFS_DIR}/usr/local/frc/lib/"
cat extfiles/wpilib-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
cat extfiles/wpilib.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
install -v -d "${ROOTFS_DIR}/usr/local/frc/include"
@ -105,6 +106,15 @@ cat extfiles/cscore-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/inclu
cat extfiles/ntcore-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
cat extfiles/cameraserver-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
install -v -d "${ROOTFS_DIR}/usr/local/frc/share/OpenCV"
cat extfiles/opencv-cmake-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/share/OpenCV/ && tar xzf -"
cat extfiles/opencv-cmake.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/share/OpenCV/ && tar xzf -"
install -v -d "${ROOTFS_DIR}/usr/local/frc/java"
install -m 644 -o 1000 -g 1000 extfiles/*.jar "${ROOTFS_DIR}/usr/local/frc/java/"
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/examples/"
install -v -o 1000 -g 1000 extfiles/*-multiCameraServer.zip "${ROOTFS_DIR}/home/pi/examples/"
on_chroot << EOF
@ -117,11 +127,10 @@ mv *.zip ../zips/
chown -R 1000:1000 .
EOF
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/javalibs/"
install -m 644 -o 1000 -g 1000 extfiles/*.jar "${ROOTFS_DIR}/home/pi/javalibs/"
sh -c "cd ${ROOTFS_DIR}/home/pi/javalibs && zip ../zips/java-multiCameraServer.zip *.jar"
sh -c "cd ${ROOTFS_DIR}/usr/local/frc/java && zip ${ROOTFS_DIR}/home/pi/zips/java-multiCameraServer.zip *.jar"
on_chroot << EOF
chown -R 1000:1000 /home/pi/zips
ldconfig
EOF
@ -130,8 +139,7 @@ install -v -d "${ROOTFS_DIR}/service/configServer"
install -m 755 files/configServer_run "${ROOTFS_DIR}/service/configServer/run"
install -m 755 extfiles/rpiConfigServer "${ROOTFS_DIR}/usr/local/sbin/configServer"
install -m 755 extfiles/netconsoleTee "${ROOTFS_DIR}/usr/local/bin/"
install -m 644 extfiles/rpiConfigServer.debug "${ROOTFS_DIR}/usr/local/sbin/"
install -v -d "${ROOTFS_DIR}/service/camera"
install -v -d "${ROOTFS_DIR}/service/camera/log"

View File

@ -1,2 +1,2 @@
#!/bin/sh
exec /usr/local/bin/netconsoleTee -u
exec /usr/local/frc/bin/netconsoleTee -u

View File

@ -2,4 +2,4 @@
### TYPE: builtin
echo "Waiting 5 seconds..."
sleep 5
exec ./multiCameraServer
exec /usr/local/frc/bin/multiCameraServer