Files
RkApp/VideoProsessing/OrbbecSDK_v2.5.5/build_examples.sh
2026-01-09 13:59:10 +08:00

104 lines
2.9 KiB
Bash

#!/bin/bash
# Copyright (c) Orbbec Inc. All Rights Reserved.
# Licensed under the MIT License.
echo "Checking if apt-get is workable ..."
apt_workable=1
# Check if apt-get is installed
if ! command -v apt-get &> /dev/null
then
echo "apt-get could not be found."
apt_workable=0
fi
# check if apt-get is working
if ! command -v sudo apt-get update &> /dev/null
then
echo "apt-get update failed. apt-get may not be working properly."
apt_workable=0
fi
if [ $apt_workable -eq 1 ]
then
#install compiler and tools
if ! g++ --version &> /dev/null || ! make --version &> /dev/null
then
echo "C++ Compiler and tools could not be found. It is required to build the examples."
echo "Do you want to install it via install build-essential? (y/n)"
read answer
if [ "$answer" == "y" ]
then
sudo apt-get install -y build-essential
fi
else
echo "C++ Compiler and tools is installed."
fi
# install cmake
if ! cmake --version &> /dev/null
then
echo "Cmake could not be found. It is required to build the examples."
echo "Do you want to install cmake? (y/n)"
read answer
if [ "$answer" == "y" ]
then
sudo apt-get install -y cmake
fi
else
echo "cmake is installed."
fi
# install libopencv-dev
if ! dpkg -l | grep libopencv-dev &> /dev/null || ! dpkg -l | grep libopencv &> /dev/null
then
echo "libopencv-dev or libopencv could not be found. Without opencv, part of the examples may not be built successfully."
echo "Do you want to install libopencv-dev and libopencv? (y/n)"
read answer
if [ "$answer" == "y" ]
then
sudo apt-get install -y libopencv
sudo apt-get install -y libopencv-dev
fi
else
echo "libopencv-dev is installed."
fi
else
echo "apt-get is not workable, network connection may be down or the system may not have internet access. Build examples may not be successful."
fi
# restore current directory
current_dir=$(pwd)
# cd to the directory where this script is located
cd "$(dirname "$0")"
project_dir=$(pwd)
examples_dir=$project_dir/examples
#detect cpu core count
cpu_count=$(grep -c ^processor /proc/cpuinfo)
half_cpu_count=$((cpu_count/2))
if [ $half_cpu_count -eq 0 ]
then
half_cpu_count=1
fi
#cmake
echo "Building examples..."
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DOB_BUILD_LINUX=ON -DCMAKE_INSTALL_PREFIX="$project_dir" "$examples_dir"
echo "Building examples with $half_cpu_count threads..."
cmake --build . -- -j$half_cpu_count # build with thread count equal to half of cpu count
# install the executable files to the project directory
make install
# clean up
cd $project_dir
rm -rf build
echo "OrbbecSDK examples built successfully!"
echo "The executable files located in: $project_dir/bin"
cd $current_dir