From 30a28fae458d21545dc1585dd5083bbc1030178e Mon Sep 17 00:00:00 2001 From: Adam Gibson <1144306+agibsonccc@users.noreply.github.com> Date: Fri, 20 Mar 2020 12:14:03 +0900 Subject: [PATCH] Windows fix (#333) * Fix cmake detection in msys * Revert windows change * Update to unix line endings --- libnd4j/buildnativeoperations.sh | 18 +++----- libnd4j/cmake/android-arm64.cmake | 44 +++++++++---------- .../nd4j-backend-impls/nd4j-native/pom.xml | 19 ++++++++ 3 files changed, 46 insertions(+), 35 deletions(-) diff --git a/libnd4j/buildnativeoperations.sh b/libnd4j/buildnativeoperations.sh index 9a2c3e240..af9154866 100755 --- a/libnd4j/buildnativeoperations.sh +++ b/libnd4j/buildnativeoperations.sh @@ -181,8 +181,6 @@ if [ "$(uname)" == "Darwin" ]; then elif [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ] || [ "$(expr substr $(uname -s) 1 4)" == "MSYS" ]; then HOST="windows" KERNEL="windows-x86_64" - # need to set build path separator, it ends up being wrong on msys2 - BUILD_PATH_SEPARATOR=";" echo "Running windows" elif [ "$(uname -m)" == "ppc64le" ]; then if [ -z "$ARCH" ]; then @@ -195,9 +193,9 @@ if [ -z "$OS" ]; then OS="$HOST" fi - - -echo "RUNNING BUILD FOR OS $OS" +if [[ -z ${ANDROID_NDK:-} ]]; then + export ANDROID_NDK=$HOME/Android/android-ndk/ +fi case "$OS" in linux-armhf) @@ -251,11 +249,8 @@ case "$OS" in if [ -z "$ARCH" ]; then ARCH="i686" fi - echo "BUILDING ANDROID x86" setandroid_defaults - - export ANDROID_BIN="$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$KERNEL/" export ANDROID_CPP="$ANDROID_NDK/sources/cxx-stl/llvm-libc++/" export ANDROID_CC="$ANDROID_NDK/toolchains/llvm/prebuilt/$KERNEL/bin/clang" @@ -364,7 +359,6 @@ case "$OS" in PARALLEL="true" VERBOSE_ARG="-v" else - echo "SETTING UP WINDOWS" export CMAKE_COMMAND="cmake -G \"MSYS Makefiles\"" export MAKE_COMMAND="make" export CC=/mingw64/bin/gcc @@ -524,7 +518,6 @@ OPENBLAS_PATH="${OPENBLAS_PATH//\\//}" if [[ -n "${BUILD_PATH:-}" ]]; then PREVIFS="$IFS" IFS="$BUILD_PATH_SEPARATOR" - echo "BUILD PATH BUILD_PATH_SEPARATOR IS $BUILD_PATH_SEPARATOR" for P in $BUILD_PATH; do if [[ -f "$P/include/openblas_config.h" ]]; then OPENBLAS_PATH="$P" @@ -541,7 +534,6 @@ fi # replace any backslash with a slash OPENBLAS_PATH="${OPENBLAS_PATH//\\//}" - mkbuilddir() { if [ "$CLEAN" == "true" ]; then echo "Removing blasbuild" @@ -609,9 +601,9 @@ if [ "$MAKE_COMMAND" == "make" ]; then MAKE_ARGUMENTS="$MAKE_ARGUMENTS --output-sync=target" fi -exec 3>&1 +exec 3>&1 eval "$MAKE_COMMAND" "$MAKE_ARGUMENTS" 2>&1 >&3 3>&- | python3 ../../auto_vectorization/auto_vect.py && cd ../../.. exec 3>&- else eval "$MAKE_COMMAND" "$MAKE_ARGUMENTS" && cd ../../.. -fi \ No newline at end of file +fi diff --git a/libnd4j/cmake/android-arm64.cmake b/libnd4j/cmake/android-arm64.cmake index 9d150b070..33ee454e7 100644 --- a/libnd4j/cmake/android-arm64.cmake +++ b/libnd4j/cmake/android-arm64.cmake @@ -1,22 +1,22 @@ -# CMake toolchain to build for Android 5.0 or newer. Sample usage: -# -set(CMAKE_SYSTEM_NAME Android) -set(CMAKE_ANDROID_ARCH_ABI arm64-v8a) -set(CMAKE_ANDROID_NDK "$ENV{ANDROID_NDK}") -set(CMAKE_ANDROID_STL_TYPE c++_shared) -set(CMAKE_SYSTEM_VERSION "$ENV{ANDROID_VERSION}") -set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang) - -set(ANDROID TRUE) -if (WIN32) - set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}.exe") - set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++.exe") - else() - set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") - set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") -endif (WIN32) - - - -add_definitions(-D__ANDROID_API__=$ENV{ANDROID_VERSION} -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target aarch64-none-linux-android -march=armv8-a) - +# CMake toolchain to build for Android 5.0 or newer. Sample usage: +# +set(CMAKE_SYSTEM_NAME Android) +set(CMAKE_ANDROID_ARCH_ABI arm64-v8a) +set(CMAKE_ANDROID_NDK "$ENV{ANDROID_NDK}") +set(CMAKE_ANDROID_STL_TYPE c++_shared) +set(CMAKE_SYSTEM_VERSION "$ENV{ANDROID_VERSION}") +set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang) + +set(ANDROID TRUE) +if (WIN32) + set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}.exe") + set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++.exe") + else() + set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") + set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") +endif (WIN32) + + + +add_definitions(-D__ANDROID_API__=$ENV{ANDROID_VERSION} -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target aarch64-none-linux-android -march=armv8-a) + diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/pom.xml b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/pom.xml index 1b9af96b2..a964f6918 100644 --- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/pom.xml +++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/pom.xml @@ -287,6 +287,25 @@ -avx512 + + mingw + + + windows + + + + + + org.bytedeco + javacpp + + ${javacpp.platform}-mingw + + + + + libnd4j-assembly