From 14dd57bb788681ec48003f380fdbdeb1276f2fec Mon Sep 17 00:00:00 2001 From: tresf Date: Wed, 14 Jul 2021 17:58:33 -0400 Subject: [PATCH 1/4] Fix buld-hidapi.sh Closes #114 Make colors easier to read in the shell script --- build-hidapi.sh | 186 ++++++++++++---------- src/main/resources/darwin/libhidapi.dylib | Bin 58888 -> 58584 bytes 2 files changed, 101 insertions(+), 85 deletions(-) diff --git a/build-hidapi.sh b/build-hidapi.sh index 70e4e03..de308ac 100755 --- a/build-hidapi.sh +++ b/build-hidapi.sh @@ -4,12 +4,22 @@ # Directory structure is # ~/Workspaces # + Cpp -# + hidapi +# + hidapi (https://github.com/libusb/hidapi) # + Docker # + dockcross # + Java # + Personal -# + hid4java +# + hid4java (https://github.com/gary-rowe/hid4java) +# +# Dependencies: +# - git +# - docker +# - docker-machine +# - virtualbox, docker-machine-parallels or another docker-machine compatible driver +# +# Place a symlink to this script in the root of ~/Workspaces +# cd ~/Workspaces +# ln -s Java/Personal/hid4java/build-hidapi.sh ./build-hidapi.sh # # Supported command line arguments are: # @@ -28,56 +38,62 @@ # win32-x86-64 - Windows 64-bit # -echo -e "\033[32m------------------------------------------------------------------------\033[0m" -echo -e "\033[33mTarget build for HIDAPI is $1\033[0m" +# Console colors +red="\033[31m" +yellow="\033[33m" +green="\033[32m" +plain="\033[0m" + +echo -e "${green}------------------------------------------------------------------------${plain}" +echo -e "${yellow}Target build for HIDAPI is $1${plain}" # Dockcross latest release -echo -e "\033[32mConfiguring Dockcross\033[0m" +echo -e "${green}Configuring Dockcross${plain}" cd ~/Workspaces/Docker/dockcross/ || exit git checkout master git pull -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # Ensure Docker is running -echo -e "\033[32mConfiguring Docker\033[0m" +echo -e "${green}Configuring Docker${plain}" if docker_result=$(docker-machine env default); then eval "$docker_result" - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" else - echo -e "\033[31mFailed\033[0m - Docker not running. Use 'docker-machine start default'" + echo -e "${red}Failed${plain} - Docker not running. Use 'docker-machine start default'" exit fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # Windows cross compilers # 64-bit -echo -e "\033[32mConfiguring Windows 64-bit\033[0m" +echo -e "${green}Configuring Windows 64-bit${plain}" docker run --rm dockcross/windows-shared-x64 > ./dockcross-windows-shared-x64 chmod +x ./dockcross-windows-shared-x64 mv ./dockcross-windows-shared-x64 /usr/local/bin # 32-bit -echo -e "\033[32mConfiguring Windows 32-bit\033[0m" +echo -e "${green}Configuring Windows 32-bit${plain}" docker run --rm dockcross/windows-shared-x86 > ./dockcross-windows-shared-x86 chmod +x ./dockcross-windows-shared-x86 mv ./dockcross-windows-shared-x86 /usr/local/bin -echo -e "\033[32mConfiguring Linux environments\033[0m" +echo -e "${green}Configuring Linux environments${plain}" # Linux cross compilers # 64 bit -echo -e "\033[32mConfiguring Linux 64-bit\033[0m" +echo -e "${green}Configuring Linux 64-bit${plain}" docker run --rm dockcross/linux-x64 > ./dockcross-linux-x64 chmod +x ./dockcross-linux-x64 mv ./dockcross-linux-x64 /usr/local/bin # 32 bit -echo -e "\033[32mConfiguring Linux 32-bit\033[0m" +echo -e "${green}Configuring Linux 32-bit${plain}" docker run --rm dockcross/linux-x86 > ./dockcross-linux-x86 chmod +x ./dockcross-linux-x86 mv ./dockcross-linux-x86 /usr/local/bin @@ -85,277 +101,277 @@ mv ./dockcross-linux-x86 /usr/local/bin # ARM cross compilers # 32-bit ARMv6 EABI -echo -e "\033[32mConfiguring ARMv6 EABI 32-bit\033[0m" +echo -e "${green}Configuring ARMv6 EABI 32-bit${plain}" docker run --rm dockcross/linux-armv6 > ./dockcross-linux-armv6 chmod +x ./dockcross-linux-armv6 mv ./dockcross-linux-armv6 /usr/local/bin # 32-bit ARMv7 hard float -echo -e "\033[32mConfiguring ARMv7 32-bit\033[0m" +echo -e "${green}Configuring ARMv7 32-bit${plain}" docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7 chmod +x ./dockcross-linux-armv7 mv ./dockcross-linux-armv7 /usr/local/bin # 64-bit (arm64, aarch64) -echo -e "\033[32mConfiguring ARM 64-bit\033[0m" +echo -e "${green}Configuring ARM 64-bit${plain}" docker run --rm dockcross/linux-arm64 > ./dockcross-linux-arm64 chmod +x ./dockcross-linux-arm64 mv ./dockcross-linux-arm64 /usr/local/bin -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # HIDAPI latest release -echo -e "\033[32mConfiguring HIDAPI\033[0m" +echo -e "${green}Configuring HIDAPI${plain}" cd ~/Workspaces/Cpp/hidapi/ || exit git checkout master git pull -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # Windows environments # 64-bit x86-64 if [[ "$1" == "all" ]] || [[ "$1" == "windows" ]] || [[ "$1" == "win32-x86-64" ]] then - echo -e "\033[32mBuilding Windows 64-bit\033[0m" + echo -e "${green}Building Windows 64-bit${plain}" dockcross-windows-shared-x64 bash -c 'sudo apt-get update && sudo apt-get --yes install libudev-dev libusb-1.0-0-dev && sudo make clean && sudo ./bootstrap && sudo ./configure --host=x86_64-w64-mingw32 && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll exit else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp windows/.libs/libhidapi-0.dll ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll fi else - echo -e "\033[33mSkipping win32-x86-64\033[0m" + echo -e "${yellow}Skipping win32-x86-64${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # 64-bit ARM win32-aarch64 if [[ "$1" == "all" ]] || [[ "$1" == "windows" ]] || [[ "$1" == "win32-aarch64" ]] then - echo -e "\033[32mBuilding Windows 64-bit ARM\033[0m" + echo -e "${green}Building Windows 64-bit ARM${plain}" # Not working yet # dockcross-windows-shared-x64 bash -c 'sudo dpkg --add-architecture arm64 && sudo apt-get update && sudo apt-get --yes install gcc-aarch64-w64-gnu g++-aarch64-linux-gnu libudev-dev:arm64 libusb-1.0-0-dev:arm64 && sudo make clean && sudo ./bootstrap && sudo ./configure --host=aarch64-w64-mingw64 CC=aarch64-w64-gnu-gcc && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll exit else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp windows/.libs/libhidapi-0.dll ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll fi else - echo -e "\033[33mSkipping win32-x86-64\033[0m" + echo -e "${yellow}Skipping win32-x86-64${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # 32-bit x86 if [[ "$1" == "all" ]] || [[ "$1" == "windows" ]] || [[ "$1" == "win32-x86" ]] then - echo -e "\033[32mBuilding Windows 32-bit\033[0m" + echo -e "${green}Building Windows 32-bit${plain}" dockcross-windows-shared-x86 bash -c 'sudo make clean && sudo ./bootstrap && sudo ./configure --host=i686-w64-mingw32 && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/win32-x86/hidapi.dll else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp windows/.libs/libhidapi-0.dll ../../Java/Personal/hid4java/src/main/resources/win32-x86/hidapi.dll fi else - echo -e "\033[33mSkipping win32-x86\033[0m" + echo -e "${yellow}Skipping win32-x86${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # Linux environments # 64-bit if [[ "$1" == "all" ]] || [[ "$1" == "linux" ]] || [[ "$1" == "linux-x86-64" ]] then - echo -e "\033[32mBuilding Linux 64-bit\033[0m" + echo -e "${green}Building Linux 64-bit${plain}" # Note the use of a double sudo apt-get update here dockcross-linux-x64 bash -c 'sudo apt-get update || sudo apt-get update && sudo apt-get --yes install libudev-dev libusb-1.0-0-dev && sudo make clean && sudo ./bootstrap && sudo ./configure && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi.so rm ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi.so rm ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi-libusb.so rm ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi-libusb.so else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi.so cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi-libusb.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi-libusb.so fi else - echo -e "\033[33mSkipping linux-x86-64\033[0m" + echo -e "${yellow}Skipping linux-x86-64${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # 32-bit if [[ "$1" == "all" ]] || [[ "$1" == "linux" ]] || [[ "$1" == "linux-x86" ]] then - echo -e "\033[32mBuilding Linux 32-bit\033[0m" + echo -e "${green}Building Linux 32-bit${plain}" dockcross-linux-x86 bash -c 'sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get --yes install libudev-dev libusb-1.0-0-dev libudev-dev:i386 libusb-1.0-0-dev:i386 && sudo make clean && sudo ./bootstrap && sudo ./configure && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi.so rm ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi-libusb.so else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi-libusb.so fi else - echo -e "\033[33mSkipping linux-x86\033[0m" + echo -e "${yellow}Skipping linux-x86${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # ARM environments # 64-bit (arm64/aarch64) if [[ "$1" == "all" ]] || [[ "$1" == "linux" ]] || [[ "$1" == "linux-aarch64" ]] then - echo -e "\033[32mBuilding ARM64/aarch64 (ARMv8)\033[0m" + echo -e "${green}Building ARM64/aarch64 ARMv8${plain}" dockcross-linux-arm64 bash -c 'sudo dpkg --add-architecture arm64 && sudo apt-get update && sudo apt-get --yes install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libudev-dev:arm64 libusb-1.0-0-dev:arm64 && sudo make clean && sudo ./bootstrap && sudo ./configure --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi.so rm ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi-libusb.so else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi-libusb.so fi else - echo -e "\033[33mSkipping linux-aarch64\033[0m" + echo -e "${yellow}Skipping linux-aarch64${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # 32-bit ARMv6 EABI (linux-armel) if [[ "$1" == "all" ]] || [[ "$1" == "linux" ]] || [[ "$1" == "linux-armel" ]] then - echo -e "\033[32mBuilding ARMv6 EABI\033[0m" + echo -e "${green}Building ARMv6 EABI${plain}" dockcross-linux-armv6 bash -c 'sudo dpkg --add-architecture armhf && sudo apt-get update && sudo apt-get --yes install gcc-arm-linux-gnueabihf libudev-dev:armhf libusb-1.0-0-dev:armhf && sudo make clean && sudo ./bootstrap && sudo ./configure --host=arm-linux-gnueabihf && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi.so rm ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi-libusb.so else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi-libusb.so fi else - echo -e "\033[33mSkipping linux-armel\033[0m" + echo -e "${yellow}Skipping linux-armel${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # 32-bit ARMv7 hard float (linux-arm) if [[ "$1" == "all" ]] || [[ "$1" == "linux" ]] || [[ "$1" == "linux-arm" ]] then - echo -e "\033[32mBuilding ARMv7 hard float\033[0m" + echo -e "${green}Building ARMv7 hard float${plain}" dockcross-linux-armv7 bash -c 'sudo dpkg --add-architecture armhf && sudo rm -Rf /var/lib/apt/lists && sudo apt-get update && sudo apt-get --yes install libudev-dev:armhf libusb-1.0-0-dev:armhf gcc-arm-linux-gnueabihf && sudo make clean && sudo ./bootstrap && sudo ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc && sudo make' if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/linux-arm/libhidapi.so else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp linux/.libs/libhidapi-hidraw.so ../../Java/Personal/hid4java/src/main/resources/linux-arm/libhidapi.so cp libusb/.libs/libhidapi-libusb.so ../../Java/Personal/hid4java/src/main/resources/linux-arm/libhidapi-libusb.so fi else - echo -e "\033[33mSkipping linux-arm\033[0m" + echo -e "${yellow}Skipping linux-arm${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # OS X environments # Darwin if [[ "$1" == "all" ]] || [[ "$1" == "osx" ]] || [[ "$1" == "darwin" ]] then - echo -e "\033[32mBuilding OS X Darwin\033[0m" + echo -e "${green}Building OS X Darwin${plain}" make clean ./bootstrap ./configure make if [[ "$?" -ne 0 ]] then - echo -e "\033[31mFailed\033[0m - Removing damaged targets" + echo -e "${red}Failed${plain} - Removing damaged targets" rm ../../Java/Personal/hid4java/src/main/resources/darwin/libhidapi.dylib else - echo -e "\033[32mOK\033[0m" + echo -e "${green}OK${plain}" cp mac/.libs/libhidapi.0.dylib ../../Java/Personal/hid4java/src/main/resources/darwin/libhidapi.dylib fi else - echo -e "\033[33mSkipping darwin\033[0m" + echo -e "${yellow}Skipping darwin${plain}" fi -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # List all file info -echo -e "\033[32mResulting build files placed in hid4java:\033[0m" +echo -e "${green}Resulting build files placed in hid4java:${plain}" # Windows environments -echo -e "\033[32mWindows\033[0m" +echo -e "${green}Windows${plain}" -echo -e "\033[32mwin32-x86-64\033[0m" +echo -e "${green}win32-x86-64${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll -echo -e "\033[32mwin32-x86\033[0m" +echo -e "${green}win32-x86${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/win32-x86/hidapi.dll -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # Linux environments -echo -e "\033[32mLinux\033[0m" +echo -e "${green}Linux${plain}" -echo -e "\033[32mlinux-x86-64\033[0m" +echo -e "${green}linux-x86-64${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-x86-64/libhidapi-libusb.so -echo -e "\033[32mlinux-amd64\033[0m" +echo -e "${green}linux-amd64${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-amd64/libhidapi-libusb.so -echo -e "\033[32mlinux-x86\033[0m" +echo -e "${green}linux-x86${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-x86/libhidapi-libusb.so -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # ARM -echo -e "\033[32mARM\033[0m" +echo -e "${green}ARM${plain}" -echo -e "\033[32mlinux-arm\033[0m" +echo -e "${green}linux-arm${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-arm/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-arm/libhidapi-libusb.so -echo -e "\033[32mlinux-armel\033[0m" +echo -e "${green}linux-armel${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-armel/libhidapi-libusb.so -echo -e "\033[32mlinux-aarch64\033[0m" +echo -e "${green}linux-aarch64${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi.so file -b ../../Java/Personal/hid4java/src/main/resources/linux-aarch64/libhidapi-libusb.so -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" # OS X -echo -e "\033[32mOS X\033[0m" +echo -e "${green}OS X${plain}" -echo -e "\033[32mdarwin\033[0m" +echo -e "${green}darwin${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/darwin/libhidapi.dylib -echo -e "\033[32m------------------------------------------------------------------------\033[0m" +echo -e "${green}------------------------------------------------------------------------${plain}" -echo -e "\033[32mDone - Check all OK in summary above.\033[0m" +echo -e "${green}Done - Check all OK in summary above.${plain}" diff --git a/src/main/resources/darwin/libhidapi.dylib b/src/main/resources/darwin/libhidapi.dylib index 91389aef6d2c74356276d3d862a97e458adf7e65..ee3e470db2181321b4bd0fc483bb7e5d807b8a4e 100755 GIT binary patch delta 8421 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

8PO?jUp%b+Bpvt!*$AcHi z&f${I6^h@W<_|iA$0&Vj**)e6`FXYyatqr4xs&aLY-T4QKVerOzhyz05%N!*(X*An z!?}!N8-P>UPRJ~F0y3xRN@n0p+x0Xp`M?>P4i-90=m|n634OcJvxUA}=m&*fDs;Kf zj|jb1=;wsqsA-$DSrFTV{+rNyg>DtPUFg$7e!B#r(hqaY>V8?W>$92=mU?7?QIG3*+k5%=WZJSW((o{=Z2AY8w)!aA-ma(gQI=+5HFt} zN4$sG4n~C@0)yV>Eq%DS&^o`kytrUhG4Q!h-Vh%0fPFGE1t9dD^vl7|V*S*0L4Fl_f<5k5WVf zkt_NdxVTxoqOgj4H|b%s?VTZE2;D-yDr;$VaY0dDVP!>8UQzKXYjx$LY-j68pR$TF zEBmB%B)i@^Sl+`1wT%t-{7VBC(Ka#y?XB88Z}vZ2S;kA73foh1}eN?aL4 zdl?OGt=V93$!5=>+)ml!*C`v_dXJpnsW%$)tMYqvZkhfW4DLZGl30BUISNr#1fsvhm39 z{wX6-*r~#Q7wjS)YStQ5_Ys=C26l;FmX+0LVh_w)#szTr}8uT8x~;_~1vfj(s44RNzg zLvu%Qw{)>DtLa!`urxtqbyyod;0dhySVB;zp#25i$#x>xyIx}iYn({I!QN#{^5%$R z$sZ>K8^vnoc%$Q3^~VW8-Zgwk(CuvJ$BDtNcx@cZ1?!4u)yETpdIbH5pnI6xO@_1r!m0&%Btx96a=&n=H9fI!U!Df?|;*wy^ zCiXW3yOTBgcR{<^mE(y)`I9wvB(@(FG@q?(PYgDQjhY}>!xZ-8@kB3c5v+&pY{%?G zY>{A5AY|}v^-95ZA_Mk{cgL?6w2Q4g5gq$iSQBu0_xmogZ`$wsgq_O1IuT*>&JRBb zNP!r#cV~qO+dH6WVY`h0_)u9W-n+Bz6t=gxdBXOH39S~kx5`e?(Y{`hs z_&g+RgOQuka$&ogGC#c_+m7N}4;cK{KL69t_Q5TBvp=Svt@N|$H-ekv*Y>m7t+q{i z_f~?R0XHZ3s-IuN3;xaipnmqme)b)jjcIA0KWR3;snBPSrJA zXP@h5U%J&!mag4ONW<{3!f5*j6y48GV~4+(7rwF|+lYcPTpMw{z(#cZSAYj-Kdu9~ zT3GCtV_0X$lz9591Kl^RxY}?X!gUze5nN|+{Xg?GJ$Txqr+3h%A?Gg1O#?d{b^eJ9 bRuxyTN~~O6QC!W2eI4t|QPb?N@6-J+dDdka delta 8764 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 Date: Wed, 14 Jul 2021 18:25:35 -0400 Subject: [PATCH 2/4] Add win32-aarch64 to dockcross --- build-hidapi.sh | 23 +++++++++++++++++----- src/main/resources/darwin/libhidapi.dylib | Bin 58584 -> 58888 bytes 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/build-hidapi.sh b/build-hidapi.sh index de308ac..e00817b 100755 --- a/build-hidapi.sh +++ b/build-hidapi.sh @@ -82,6 +82,12 @@ docker run --rm dockcross/windows-shared-x86 > ./dockcross-windows-shared-x86 chmod +x ./dockcross-windows-shared-x86 mv ./dockcross-windows-shared-x86 /usr/local/bin +# 64-bit (ARM64) +echo -e "${green}Configuring Windows 64-bit ARM64{plain}" +docker run --rm dockcross/linux-x64-clang > ./dockcross-linux-x64-clang +chmod +x ./dockcross-linux-x64-clang +mv ./dockcross-linux-x64-clang /usr/local/bin + echo -e "${green}Configuring Linux environments${plain}" # Linux cross compilers @@ -153,19 +159,22 @@ echo -e "${green}--------------------------------------------------------------- if [[ "$1" == "all" ]] || [[ "$1" == "windows" ]] || [[ "$1" == "win32-aarch64" ]] then echo -e "${green}Building Windows 64-bit ARM${plain}" -# Not working yet -# dockcross-windows-shared-x64 bash -c 'sudo dpkg --add-architecture arm64 && sudo apt-get update && sudo apt-get --yes install gcc-aarch64-w64-gnu g++-aarch64-linux-gnu libudev-dev:arm64 libusb-1.0-0-dev:arm64 && sudo make clean && sudo ./bootstrap && sudo ./configure --host=aarch64-w64-mingw64 CC=aarch64-w64-gnu-gcc && sudo make' + # FIXME: Still not working + llvm_mingw="https://github.com/mstorsjo/llvm-mingw/releases/download/20201020/llvm-mingw-20201020-msvcrt-ubuntu-18.04.tar.xz" + download_extract='sudo mkdir -p /usr/src/mxe && wget -qO- '$llvm_mingw' | sudo tar xJvf - --strip 1 -C /usr/src/mxe/ > /dev/null && export PATH=/usr/src/mxe/bin:$PATH' + unsets='unset CC CPP CXX LD FC' + dockcross-linux-x64-clang bash -c "$unsets && $download_extract"' && sudo apt-get install --yes clang && sudo make clean && sudo ./bootstrap && sudo ./configure --host=aarch64-w64-mingw32 && sudo make' if [[ "$?" -ne 0 ]] then echo -e "${red}Failed${plain} - Removing damaged targets" - rm ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll + rm ../../Java/Personal/hid4java/src/main/resources/win32-aarch64/hidapi.dll exit else echo -e "${green}OK${plain}" - cp windows/.libs/libhidapi-0.dll ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll + cp windows/.libs/libhidapi-0.dll ../../Java/Personal/hid4java/src/main/resources/win32-aarch64/hidapi.dll fi else - echo -e "${yellow}Skipping win32-x86-64${plain}" + echo -e "${yellow}Skipping win32-aarch64${plain}" fi echo -e "${green}------------------------------------------------------------------------${plain}" @@ -330,6 +339,10 @@ file -b ../../Java/Personal/hid4java/src/main/resources/win32-x86-64/hidapi.dll echo -e "${green}win32-x86${plain}" file -b ../../Java/Personal/hid4java/src/main/resources/win32-x86/hidapi.dll +echo -e "${green}win32-aarch64${plain}" +file -b ../../Java/Personal/hid4java/src/main/resources/win32-aarch64/hidapi.dll + + echo -e "${green}------------------------------------------------------------------------${plain}" # Linux environments diff --git a/src/main/resources/darwin/libhidapi.dylib b/src/main/resources/darwin/libhidapi.dylib index ee3e470db2181321b4bd0fc483bb7e5d807b8a4e..91389aef6d2c74356276d3d862a97e458adf7e65 100755 GIT binary patch delta 8764 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

8PO?jUp%b+Bpvt!*$AcHi z&f${I6^h@W<_|iA$0&Vj**)e6`FXYyatqr4xs&aLY-T4QKVerOzhyz05%N!*(X*An z!?}!N8-P>UPRJ~F0y3xRN@n0p+x0Xp`M?>P4i-90=m|n634OcJvxUA}=m&*fDs;Kf zj|jb1=;wsqsA-$DSrFTV{+rNyg>DtPUFg$7e!B#r(hqaY>V8?W>$92=mU?7?QIG3*+k5%=WZJSW((o{=Z2AY8w)!aA-ma(gQI=+5HFt} zN4$sG4n~C@0)yV>Eq%DS&^o`kytrUhG4Q!h-Vh%0fPFGE1t9dD^vl7|V*S*0L4Fl_f<5k5WVf zkt_NdxVTxoqOgj4H|b%s?VTZE2;D-yDr;$VaY0dDVP!>8UQzKXYjx$LY-j68pR$TF zEBmB%B)i@^Sl+`1wT%t-{7VBC(Ka#y?XB88Z}vZ2S;kA73foh1}eN?aL4 zdl?OGt=V93$!5=>+)ml!*C`v_dXJpnsW%$)tMYqvZkhfW4DLZGl30BUISNr#1fsvhm39 z{wX6-*r~#Q7wjS)YStQ5_Ys=C26l;FmX+0LVh_w)#szTr}8uT8x~;_~1vfj(s44RNzg zLvu%Qw{)>DtLa!`urxtqbyyod;0dhySVB;zp#25i$#x>xyIx}iYn({I!QN#{^5%$R z$sZ>K8^vnoc%$Q3^~VW8-Zgwk(CuvJ$BDtNcx@cZ1?!4u)yETpdIbH5pnI6xO@_1r!m0&%Btx96a=&n=H9fI!U!Df?|;*wy^ zCiXW3yOTBgcR{<^mE(y)`I9wvB(@(FG@q?(PYgDQjhY}>!xZ-8@kB3c5v+&pY{%?G zY>{A5AY|}v^-95ZA_Mk{cgL?6w2Q4g5gq$iSQBu0_xmogZ`$wsgq_O1IuT*>&JRBb zNP!r#cV~qO+dH6WVY`h0_)u9W-n+Bz6t=gxdBXOH39S~kx5`e?(Y{`hs z_&g+RgOQuka$&ogGC#c_+m7N}4;cK{KL69t_Q5TBvp=Svt@N|$H-ekv*Y>m7t+q{i z_f~?R0XHZ3s-IuN3;xaipnmqme)b)jjcIA0KWR3;snBPSrJA zXP@h5U%J&!mag4ONW<{3!f5*j6y48GV~4+(7rwF|+lYcPTpMw{z(#cZSAYj-Kdu9~ zT3GCtV_0X$lz9591Kl^RxY}?X!gUze5nN|+{Xg?GJ$Txqr+3h%A?Gg1O#?d{b^eJ9 bRuxyTN~~O6QC!W2eI4t|QPb?N@6-J+dDdka From 7af356062cab925ff95256c8ab55e0c06e7db479 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Tue, 20 Jul 2021 15:28:55 -0400 Subject: [PATCH 3/4] Fix JNA dependency --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0a61e4a..7f914bf 100644 --- a/pom.xml +++ b/pom.xml @@ -184,7 +184,7 @@ net.java.dev.jna jna - 5.7.0-SNAPSHOT + 5.7.0 From 6d97eb7a4d651426e899cf08107a10b890da3a85 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Tue, 20 Jul 2021 15:41:04 -0400 Subject: [PATCH 4/4] Fix unit test Wait 30s for testing as logs indicate --- src/test/java/org/hid4java/examples/BaseExample.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/hid4java/examples/BaseExample.java b/src/test/java/org/hid4java/examples/BaseExample.java index d9b7a9c..608c4c9 100644 --- a/src/test/java/org/hid4java/examples/BaseExample.java +++ b/src/test/java/org/hid4java/examples/BaseExample.java @@ -74,7 +74,7 @@ public void waitAndShutdown(HidServices hidServices) { public static void sleepNoInterruption() { boolean interrupted = false; try { - long remainingNanos = TimeUnit.SECONDS.toNanos(5); + long remainingNanos = TimeUnit.SECONDS.toNanos(30); long end = System.nanoTime() + remainingNanos; while (true) { try {