diff --git a/docker/xenial/android/Dockerfile b/docker/xenial/android/Dockerfile index 708dd16f..f945e7d6 100644 --- a/docker/xenial/android/Dockerfile +++ b/docker/xenial/android/Dockerfile @@ -1,6 +1,11 @@ FROM introlab3it/rtabmap +ENV ANDROID_HOME=/opt/android-sdk +ENV ANDROID_NATIVE_API_LEVEL=android-19 +ENV ANDROID_NDK=/opt/android-ndk-r14 +ENV PATH=$PATH:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-ndk-r14 + WORKDIR /root/ ADD install_deps.bash /root/install_deps.bash RUN chmod +x install_deps.bash -RUN /bin/bash -c "./install_deps.bash" \ No newline at end of file +RUN /bin/bash -c "./install_deps.bash" diff --git a/docker/xenial/android/install_deps.bash b/docker/xenial/android/install_deps.bash index 3eddaea9..c5166cac 100644 --- a/docker/xenial/android/install_deps.bash +++ b/docker/xenial/android/install_deps.bash @@ -7,63 +7,63 @@ apt-get install -y unzip wget ant apt-get install -y default-jre default-jdk # Setup android sdk -export ANDROID_HOME="/opt/android-sdk" -export PATH="${PATH}:${ANDROID_HOME}/tools/:${ANDROID_HOME}/platform-tools/" -wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip +echo "wget android-sdk..." +wget -nv https://dl.google.com/android/repository/tools_r25.2.3-linux.zip unzip -qq tools_r25.2.3-linux.zip rm tools_r25.2.3-linux.zip -mkdir ${ANDROID_HOME} -mv tools ${ANDROID_HOME}/. +mkdir $ANDROID_HOME +mv tools $ANDROID_HOME/. #android list sdk --all --extended echo y | android update sdk --no-ui --all --filter platform-tools,android-19,build-tools-19.1.0 # Setup android ndk -wget https://dl.google.com/android/repository/android-ndk-r14-linux-x86_64.zip +echo "wget android-ndk..." +wget -nv https://dl.google.com/android/repository/android-ndk-r14-linux-x86_64.zip unzip -qq android-ndk-r14-linux-x86_64.zip rm android-ndk-r14-linux-x86_64.zip mv android-ndk-r14 /opt/. -export ANDROID_NATIVE_API_LEVEL=android-19 -export ANDROID_NDK=/opt/android-ndk-r14 -export PATH="${PATH}:${ANDROID_NDK}" # Install directory for all dependencies -mkdir -p android/share -wget https://github.com/introlab/rtabmap/raw/master/cmake_modules/android.toolchain.cmake -mv android.toolchain.cmake android/share/. +mkdir -p /opt/android/share +wget -nv https://github.com/introlab/rtabmap/raw/master/cmake_modules/android.toolchain.cmake +mv android.toolchain.cmake /opt/android/share/. # Boost -wget https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz +echo "wget boost..." +wget -nv https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz tar -xzf boost_1_59_0.tar.gz cd boost_1_59_0 -wget https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/489ff2869eccd6f8d03ffb9090ef839108762741/BoostConfig.cmake.in -wget https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/e7fbf0e301cfea417a7aa69989a761a4de08b8c3/CMakeLists.txt +wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/489ff2869eccd6f8d03ffb9090ef839108762741/BoostConfig.cmake.in +wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/e7fbf0e301cfea417a7aa69989a761a4de08b8c3/CMakeLists.txt mkdir build cd build -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd rm -r boost_1_59_0.tar.gz boost_1_59_0 # eigen -wget http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz +echo "wget eigen..." +wget -nv http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz tar -xzf 3.2.7.tar.gz cd eigen-eigen-b30b87236a1b mkdir build cd build -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd rm -r 3.2.7.tar.gz eigen-eigen-b30b87236a1b # FLANN -wget http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-1.8.4-src.zip +echo "wget flann..." +wget -nv http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-1.8.4-src.zip unzip -qq flann-1.8.4-src.zip cd flann-1.8.4-src mkdir build cd build -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd @@ -74,11 +74,11 @@ git clone https://bitbucket.org/gtborg/gtsam.git cd gtsam git checkout fbb9d3bdda8b88df51896bc401bfd170573e66f5 # patch -wget https://gist.github.com/matlabbe/726b490c658afd3293f4b3f2f501b863/raw/df09fc8e238a495d66b062d92dc1c1fb20a581e8/gtsam_GKlib_android_fix.patch +wget -nv https://gist.github.com/matlabbe/726b490c658afd3293f4b3f2f501b863/raw/df09fc8e238a495d66b062d92dc1c1fb20a581e8/gtsam_GKlib_android_fix.patch git apply gtsam_GKlib_android_fix.patch mkdir build cd build -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd @@ -89,7 +89,7 @@ git clone https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build cd build -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd @@ -97,7 +97,8 @@ rm -r g2o #CMake 3.7 for VTK -wget https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz +echo "wget cmake3.7..." +wget -nv https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz tar -xzf cmake-3.7.2-Linux-x86_64.tar.gz rm cmake-3.7.2-Linux-x86_64.tar.gz @@ -107,9 +108,9 @@ cd VTK git checkout tags/v7.1.1 mkdir build cd build -~/cmake-3.7.2-Linux-x86_64/bin/cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_ANDROID_BUILD=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +~/cmake-3.7.2-Linux-x86_64/bin/cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_ANDROID_BUILD=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make -cp -r CMakeExternals/Install/vtk-android/* ~/android/. +cp -r CMakeExternals/Install/vtk-android/* /opt/android/. cd rm -r VTK cmake-3.7.2-Linux-x86_64 @@ -118,28 +119,21 @@ git clone https://github.com/PointCloudLibrary/pcl.git cd pcl git checkout tags/pcl-1.8.0 # patch -wget https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/b97cf6dda9aa9487ee75a3cc4e8826b216a1ad06/pcl_1_8_0_vtk_android_support.patch +wget -nv https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/b97cf6dda9aa9487ee75a3cc4e8826b216a1ad06/pcl_1_8_0_vtk_android_support.patch git apply pcl_1_8_0_vtk_android_support.patch mkdir build cd build # do it 2 times because there is a cmake error on the first time and not the second time!? -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. -cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=/opt/android/share/android.toolchain.cmake -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/android .. make make install cd rm -r pcl # OpenCV -wget https://downloads.sourceforge.net/project/opencvlibrary/opencv-android/3.2.0/opencv-3.2.0-android-sdk.zip +echo "wget opencv..." +wget -nv https://downloads.sourceforge.net/project/opencvlibrary/opencv-android/3.2.0/opencv-3.2.0-android-sdk.zip unzip -qq opencv-3.2.0-android-sdk.zip rm opencv-3.2.0-android-sdk.zip mv OpenCV-android-sdk /opt/. - -# setup environment variables -echo "export ANDROID_HOME=\"/opt/android-sdk\"" >> ~/.bashrc -echo "export PATH=\"${PATH}:${ANDROID_HOME}/tools/:${ANDROID_HOME}/platform-tools/\"" >> ~/.bashrc -echo "export ANDROID_NATIVE_API_LEVEL=android-19" >> ~/.bashrc -echo "export ANDROID_NDK=/opt/android-ndk-r14" >> ~/.bashrc -echo "export PATH=\"${PATH}:${ANDROID_NDK}\"" >> ~/.bashrc -source ~/.bashrc diff --git a/docker/xenial/android/tango/Dockerfile b/docker/xenial/android/tango/Dockerfile index 79dc5b6a..a798ccf0 100644 --- a/docker/xenial/android/tango/Dockerfile +++ b/docker/xenial/android/tango/Dockerfile @@ -1,4 +1,4 @@ -FROM introlab3it:rtabmap-android-deps +FROM introlab3it/rtabmap-android-deps WORKDIR /root/ @@ -6,4 +6,4 @@ ADD build.bash /root/build.bash RUN chmod +x build.bash RUN /bin/bash -c "./build.bash" -WORKDIR /root/rtabmap-android/build/app/android/bin \ No newline at end of file +WORKDIR /root/rtabmap-android/build/app/android/bin diff --git a/docker/xenial/android/tango/build.bash b/docker/xenial/android/tango/build.bash index b47ce6a7..a20f0589 100644 --- a/docker/xenial/android/tango/build.bash +++ b/docker/xenial/android/tango/build.bash @@ -1,16 +1,19 @@ #!/bin/bash +echo $PATH +env + # get rtabmap git clone https://github.com/introlab/rtabmap.git rtabmap-tango # tango wget https://developers.google.com/tango/downloads/TangoSDK_Farandole_C.zip unzip -qq TangoSDK_Farandole_C.zip -cp -r lib_tango_client_api/* android/. +cp -r lib_tango_client_api/* /opt/android/. rm -r lib_tango_client_api wget https://developers.google.com/tango/downloads/TangoSupport_Farandole_C.zip unzip -qq TangoSupport_Farandole_C.zip -cp -r lib_tango_support_api/* android/. +cp -r lib_tango_support_api/* /opt/android/. cp -r lib_tango_support_api/lib/* rtabmap-tango/app/android/jni/third-party/lib/. rm -r lib_tango_support_api wget https://developers.google.com/tango/downloads/TangoSDK_Farandole_Java.jar @@ -18,5 +21,5 @@ mv TangoSDK_Farandole_Java.jar rtabmap-tango/app/android/libs/. # rtabmap cd rtabmap-tango/build -cmake -DCMAKE_TOOLCHAIN_FILE=../cmake_modules/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=/opt/OpenCV-android-sdk/sdk/native/jni -DCMAKE_INSTALL_PREFIX=$HOME/android .. +cmake -DCMAKE_TOOLCHAIN_FILE=../cmake_modules/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=/opt/OpenCV-android-sdk/sdk/native/jni -DCMAKE_INSTALL_PREFIX=/opt/android .. make