Commit 9e02dd72 authored by Arnaud Blanchard's avatar Arnaud Blanchard

Simplify installation for OSX. Need to do the same for ubuntu

parent 87f83dd1
......@@ -18,49 +18,64 @@ set -o pipefail #Error if a pipe fail
#Bracket to be sure the file is fully loaded before excuting
{
set_bash_profile_and_refresh(){
echo "We create or update your $HOME/.bash_profile redefining env variables 'BLAAR_DIR' and 'PATH'"
{ echo "#Definitions for blaar (http://blaar.org)"
echo "export BLAAR_DIR=$PWD"
echo "export PATH=$PATH:$BLAAR_DIR/bin:$BLAAR_DIR/scripts"
echo
} >> $HOME/.bash_profile
source $HOME/.bash_profile
}
echo
echo "Standard blaar install"
echo "======================"
echo
echo "Check that there is no conflicting directories"
echo "----------------------------------------------"
echo
[ -d blaar ] && { echo "blaar directory already exist. Remove it or change the current install directory."; exit 1; }
[ -d blaar_build ] && { echo "blaar_build directory already exist. Remove it or change the current install directory."; exit 1; }
echo
echo "Install the paclkage manager homebrew (http://brew.sh)" #This is similar to apt-get on Linux
echo "------------------------------------------------------"
echo
type brew || /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" || { echo "### Fail downloading homebrew"; exit 1;} #Install homebrew
echo
echo "Install required packages"
echo "Install standard packages"
echo "-------------------------"
hash brew || {
echo "Install the package manager homebrew (http://brew.sh)"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
}
echo
echo "### Minimum packages:"
echo
brew install git cmake ninja #minimal requirement
echo
echo "### Standards packages: "
echo
brew install doxygen libpng libjpeg #gtk+3 gnome-icon-theme classical requirement
echo
echo "Download sources"
echo "----------------"
# if it install fail it may be because it needs upgrade
brew install git cmake doxygen libpng libjpeg || brew upgrade git cmake doxygen libpng libjpeg #note:only git and cmake are really required
echo
echo "Download blaar sources"
echo "----------------------"
echo
git clone https://framagit.org/blaar/blaar
echo
cd blaar
echo
developer_tools/clone_osx_projects.sh
developer_tools/clone_standards_modules.sh
echo
echo "Install and test each project"
echo "-----------------------------"
echo "Install and test each module"
echo "----------------------------"
echo
./install.sh all
./check_all.sh
./install.sh all
./check_all.sh
echo
if [ "${BLAAR_DIR+set}" ]; then #Test if BLAAR_DIR is defined. "${BLAAR_DIR+set}" means content "set" if exist
if [ ! $BLAAR_DIR = "$PWD" ]; then
#We remove any reference to blaar in bash_profile
sed -i~ -e"s|#Definitions for blaar (http://blaar.org)||" -e"s|BLAAR_DIR=$BLAAR_DIR" -e "s|:$BLAAR_DIR/bin/||" -e "s|:$BLAAR_DIR/scripts||" $HOME/.bash_profile
#We remove also any reference to it in env varaibles
export PATH=$(echo $PATH|sed -e "s|:$BLAAR_DIR/bin/||" -e "s|:$BLAAR_DIR/scripts||")
unset $BLAAR_DIR
set_bash_profile_and_refresh
echo "You have a previous installation of blaar in '$BLAAR_DIR'. We have redefined your standard version to '$PWD'"
fi
else
set_bash_profile_and_refresh
fi
echo
echo "**Success installing standard blaar**"
echo
}
......@@ -11,32 +11,29 @@
# Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured  and, more generally, to use and operate it in the same conditions as regards security.
# The fact that you are presently reading this means that you have had knowledge of the CeCILL v2.1 license and that you accept its terms.
#!/usr/bin/env bash #Use your $PATH to find bash
set -o errexit #Exit on first error
set -o nounset #Error if a variable is used but nont defined
set -o pipefail #Error if a pipe fail
#Go in blaar directory
cd $(dirname $0)/..
#blc_core has to be first. It is used by all others projects
#blc_program has to be before blc_processes ( not nice dependecy)
basic_libraries=(blc_core blc_channel blc_network blc_program blc_processes blc_image)
standard_projects=(blc_channels bapps)
lib_website=https://framagit.org/blibs
module_website=https://framagit.org/blaar
basic_libs="blc_core blc_channel blc_network blc_program blc_processes blc_image"
standard_modules="blc_channels bapps"
mkdir -p /tmp/blaar
# We do not use function in purpose as 'set -o errexit' has no effect in it
for project in ${basic_libraries[@]}
for lib in $basic_libs
do
echo "Cloning '$project':"
commandline="git submodule add https://framagit.org/blibs/$project.git blibs/$project"
$commandline > /tmp/blaar/clone_$project.log || { echo "Fail cloning '$project' executing: '$commandline'"; cat /tmp/blaar/clone_$project.log; echo ; }
echo "Cloning '$lib':"
commandline="git submodule add $lib_website/$lib.git blibs/$lib"
$commandline > $TMPDIR/clone_$lib.log || { echo "Fail cloning '$lib' executing: '$commandline'"; cat $TMPDIR/clone_$lib.log; echo ; }
done
for project in ${standard_projects[@]}
for module in $standard_modules
do
echo "Cloning '$project':"
commandline="git submodule add https://framagit.org/blaar/$project.git"
$commandline > /tmp/blaar/clone_$project.log || { echo "Fail cloning '$project' executing: '$commandline'"; cat /tmp/blaar/clone_$project.log; echo ; }
echo "Cloning '$module':"
commandline="git submodule add $module_website/$module.git"
$commandline > $TMPDIR/clone_$module.log || { echo "Fail cloning '$module' executing: '$commandline'"; cat $TMPDIR/clone_$module.log; echo ; }
done
#Go in blaar directory
cd `dirname $0`/..
#Core library for all blc projects
git submodule add https://framagit.org/blaar/blc_core.git
#Shared memory
git submodule add https://framagit.org/blaar/blc_channel.git
#Network (UDP) communication
git submodule add https://framagit.org/blaar/blc_network.git
#Parse command-line and manage program loops
git submodule add https://framagit.org/blaar/blc_program.git
#Manage processes monitoring through `ps`
git submodule add https://framagit.org/blaar/blc_processes.git
#Manipulate images ( jpeg and png need libjpeg and libpng)
git submodule add https://framagit.org/blaar/blc_image.git
#Manipulate and monitor blc_channels
git submodule add https://framagit.org/blaar/i_channels.git
#Acquire keyboard inputs
git submodule add https://framagit.org/blaar/i_keyboard.git
#Load .tsv file of .blc files
git submodule add https://framagit.org/blaar/i_load_file.git
#Discretize an analog value and puut it in a vector
git submodule add https://framagit.org/blaar/f_discretize.git
#Delay or amplify the blc_channel
git submodule add https://framagit.org/blaar/f_transform_signal.git
# Basic Libraries And Applications for Robotics (BLAAR)
# Copyright ETIS — ENSEA, University of Cergy-Pontoise, CNRS (2011 - 2017)
# Author: Arnaud Blanchard
#
# This software is governed by the CeCILL v2.1 license under French law and abiding by the rules of distribution of free software.
# You can use, modify and/ or redistribute the software under the terms of the CeCILL v2.1 license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".
# As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license,
# users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited liability.
# In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software,
# that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge.
# Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured  and, more generally, to use and operate it in the same conditions as regards security.
# The fact that you are presently reading this means that you have had knowledge of the CeCILL v2.1 license and that you accept its terms.
#!/usr/bin/env bash #Use your $PATH to find bash
set -o errexit #Exit on first error
set -o nounset #Error if a variable is used but nont defined
set -o pipefail #Error if a pipe fail
#Bracket to be sure the file is fully loaded before excuting
{
echo
echo "Standard blaar install"
echo "======================"
echo
echo "Check that there is no conflicting directories"
echo "----------------------------------------------"
echo
[ -d blaar ] && { echo "blaar directory already exist. Remove it or change the current install directory."; exit 1; }
[ -d blaar_build ] && { echo "blaar_build directory already exist. Remove it or change the current install directory."; exit 1; }
echo
echo "Install the paclkage manager homebrew (http://brew.sh)" #This is similar to apt-get on Linux
echo "------------------------------------------------------"
echo
type brew || /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" || { echo "### Fail downloading homebrew"; exit 1;} #Install homebrew
echo
echo "Install required packages"
echo "-------------------------"
echo
echo "### Minimum packages:"
echo
brew install git cmake ninja #minimal requirement
echo
echo "### Standards packages: "
echo
brew install doxygen libpng libjpeg #gtk+3 gnome-icon-theme classical requirement
echo
echo "Download sources"
echo "----------------"
echo
git clone https://framagit.org/blaar/blaar
echo
cd blaar
echo
developer_tools/install_standard_osx_projects.sh || { echo "### Fail downloading sources"; exit 2; } # --recursive downloads also the submodules (i.e. blc_core, blc_image, ...)
echo
echo "Install and test each project"
echo "-----------------------------"
echo
./install.sh -q all || { echo "### Fail installing one module"; exit 3; }
./check_all.sh || { echo "### Fail checking one module"; exit 4; }
echo
echo "**Success installing standard blaar**"
echo
}
#we go in blaar directory
cd `dirname $0`/..
developer_tools/install_standard_common_projects.sh
#On mac we add the module Quicktime for cameras
#It has been deprecated on Sierra we do not automatically install it
#git submodule add https://framagit.org/blaar/blQTKit.git
#On mac we add i_coreaudio for sound acquisition
git submodule add https://framagit.org/blaar/i_coreaudio.git
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment