This commit is contained in:
2021-10-14 13:47:35 +02:00
commit 6625a8dfaa
4026 changed files with 844291 additions and 0 deletions
+125
View File
@@ -0,0 +1,125 @@
#!/bin/bash
ov_build_type=Release
ov_script_dir="${PWD}"
ov_build_dir="${ov_script_dir}/../local-tmp/linux-${ov_build_type}"
ov_install_dir="${ov_script_dir}/../dist"
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-h | --help)
usage
exit
;;
-v | --verbose)
verbose=1
;;
-d | --debug)
ov_build_type=Debug
;;
-r | --release)
ov_build_type=Release
;;
--debug-symbols)
ov_build_type=RelWithDebInfo
;;
--profile)
ov_build_type=RelWithDebInfo
extra_flags="-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O2 -g -DNDEBUG -pg' -DCMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO='-pg' -DCMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO='-pg' -DCMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO='-pg'"
;;
--build-dir)
ov_build_dir="$2"
shift
;;
--install-dir)
ov_install_dir="$2"
shift
;;
--sdk)
ov_sdk_dir="-DOPENVIBE_SDK_PATH=$2"
shift
;;
--designer)
ov_designer_dir="-DDESIGNER_SDK_PATH=$2"
shift
;;
--dependencies-dir)
dependencies_path="-DLIST_DEPENDENCIES_PATH=$2"
shift
;;
--sdk-src)
ov_sdk_src_dir="$2"
shift
;;
--userdata-subdir)
UserDataSubdir="-DOV_CONFIG_SUBDIR=$2"
shift
;;
*)
echo "ERROR: Unknown parameter $key"
exit 1
;;
esac
shift # past argument or value
done
echo ""
echo "_______________________________________________________________________________"
echo ""
mkdir -p "${ov_build_dir}" 2> /dev/null
pushd "${ov_build_dir}" 2> /dev/null
echo ""
echo "Creating makefiles..."
echo ""
cmake ${ov_script_dir}/.. -DCMAKE_BUILD_TYPE=${ov_build_type} ${extra_flags} -DCMAKE_INSTALL_PREFIX=${ov_install_dir} ${ov_sdk_dir} ${ov_designer_dir} ${dependencies_path} ${UserDataSubdir} -DOV_SDK_SOURCE_PATH=${ov_sdk_src_dir}
if [ $? -eq 0 ]; then
echo CMake has been called successfully !
else
exit -1
fi;
echo ""
echo "Building ..."
echo ""
NJOBS=`grep processor /proc/cpuinfo | wc -l`
make $1 -j $NJOBS # VERBOSE=1
if [ $? -eq 0 ]; then
echo Make has been called successfully !
else
exit -1
fi;
echo ""
echo "Installing files to 'dist' folder, this can take a few seconds - maybe a few minutes..."
echo ""
make install
if [ $? -eq 0 ]; then
echo Make install has been called successfully !
else
true # exit -1
fi;
popd 2> /dev/null
echo ""
echo "_______________________________________________________________________________"
echo ""
echo ""
echo "Building process terminated successfully !"
echo ""
echo ""
echo "Install completed !"
echo ""
true
@@ -0,0 +1,72 @@
#!/usr/bin/perl
# Intended to be run from linux-install_dependencies.pl
#
# Variables are wrt that parent scope
#
# Installation of packages not available in the apt database or PPA
# Eigen installation
if (!$no_install && $distribution eq 'Fedora') {
#if (1) {
my $old_dir = Cwd::getcwd();
my $itpp_build_dir = $dependencies_dir . "/itpp-build";
my $itppe_src_dir = $dependencies_arch_dir . "/itpp-external-3.0.0";
my $itpp_src_dir = $dependencies_arch_dir . "/itpp-4.0.7";
if (! -e $itpp_build_dir) {
mkdir($itpp_build_dir) or die("Failed to create directory [$itpp_build_dir]");
}
# fetch the packages
chdir "$dependencies_arch_dir";
if (! -e "itpp-external-3.0.0.tar.bz2") {
system('wget "http://openvibe.inria.fr/dependencies/linux-x86/itpp-external-3.0.0.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not download the itpp external sources [$CHILD_ERROR]");
}
if (! -e $itppe_src_dir) {
system('tar -xjf "itpp-external-3.0.0.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not extract the itpp external archive");
}
if (! -e "itpp-4.0.7.tar.bz2") {
system('wget "http://openvibe.inria.fr/dependencies/linux-x86/itpp-4.0.7.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not download the itpp sources [$CHILD_ERROR]");
}
if (! -e $itpp_src_dir) {
system('tar -xjf "itpp-4.0.7.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not extract the itpp archive");
}
# compile
# external
print "Compiling itpp external ...\n";
chdir $itppe_src_dir;
system('sed -i "s/_EXT_ETIME/_INT_ETIME/g" patches/lapack-3.1.1-autotools.patch');
system('sed -i "s/_EXT_ETIME/_INT_ETIME/g" src/lapack-lite-3.1.1/SRC/Makefile.in');
system('sed -i "s/_EXT_ETIME/_INT_ETIME/g" src/lapack-lite-3.1.1/SRC/Makefile.am');
system("./configure --prefix=$dependencies_dir/ >$itpp_build_dir/itppe-configure.log 2>&1");
system("make >$itpp_build_dir/itpp-external-build.log 2>&1");
($CHILD_ERROR != 0) and die("Failed to run make for itpp-external [$CHILD_ERROR]");
system('make install');
($CHILD_ERROR != 0) and die("Failed to run make install for itpp-external [$CHILD_ERROR]");
# main pkg
print "Compiling itpp ...\n";
chdir $itpp_src_dir;
system("./configure --prefix=$dependencies_dir/ CPPFLAGS=\"-I$dependencies_dir/include\" LDFLAGS=\"-L$dependencies_dir/lib -L$dependencies_dir/lib64\" >$itpp_build_dir/itpp-configure.log 2>&1");
system("make >$itpp_build_dir/itpp-build.log 2>&1");
($CHILD_ERROR != 0) and die("Failed to run make for itpp [$CHILD_ERROR]");
system("make install");
($CHILD_ERROR != 0) and die("Failed to run make install for itpp [$CHILD_ERROR]");
chdir $old_dir
};
@@ -0,0 +1,47 @@
#!/usr/bin/perl
# Intended to be run from linux-install_dependencies.pl
#
# Variables are wrt that parent scope
#
# Installation of packages not available in the apt database or PPA
# Eigen installation
if (!$no_install) {
my $old_dir = Cwd::getcwd();
my $lsl_src_dir = $dependencies_arch_dir . "/LSL";
# fetch the packages
chdir "$dependencies_arch_dir";
if (! -e "liblsl-1.12.ov1-src.tar.bz2") {
system('wget "http://openvibe.inria.fr/dependencies/linux-x86/liblsl-1.12.ov1-src.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not download the lsl sources [$CHILD_ERROR]");
}
if (! -e $lsl_src_dir) {
system('tar xjf "liblsl-1.12.ov1-src.tar.bz2"');
($CHILD_ERROR != 0) and die ("Could not extract the lsl archive");
}
# compile
# external
print "Compiling lsl ...\n";
chdir($lsl_src_dir);
mkdir("liblsl/build");
system("cd liblsl/build && cmake .. >cmake-liblsl.log 2>&1");
system("cd liblsl/build && make >make-liblsl.log 2>&1");
mkdir("$dependencies_dir/lib");
mkdir("$dependencies_dir/include");
system("cp liblsl/build/src/liblsl.so $dependencies_dir/lib");
system("cp -R liblsl/include/* $dependencies_dir/include");
chdir $old_dir
};
@@ -0,0 +1,61 @@
#!/usr/bin/perl
# Intended to be run from linux-install_dependencies.pl
#
# Variables are wrt that parent scope
#
if (!$no_install) {
my $old_dir = Cwd::getcwd();
my $vrpn_src_dir = $dependencies_arch_dir . "/vrpn";
# fetch the packages
chdir "$dependencies_arch_dir";
if (! -e "vrpn_07_31-ov.zip") {
system('wget "http://openvibe.inria.fr/dependencies/linux-x86/vrpn_07_31-ov.zip"');
($CHILD_ERROR != 0) and die ("Could not download the itpp external sources [$CHILD_ERROR]");
}
if (! -e $vrpn_src_dir) {
system('unzip "vrpn_07_31-ov.zip"');
($CHILD_ERROR != 0) and die ("Could not extract the itpp external archive");
}
# compile
print "Compiling vrpn ...\n";
my $bitness = `uname -m`;
chomp($bitness);
my $bitness_token = "";
if($bitness == "x86_64") {
# 64bit
$bitness_token = "pc_linux64";
system('sed -i "s/#HW_OS := pc_linux$/HW_OS := pc_linux64/g" vrpn/quat/Makefile');
system('sed -i "s/#HW_OS := pc_linux$/HW_OS := pc_linux64/g" vrpn/Makefile');
} else {
$bitness_token = "pc_linux";
system('sed -i "s/#HW_OS := pc_linux$/HW_OS := pc_linux/g" vrpn/quat/Makefile');
system('sed -i "s/CC := gcc/CC := gcc -fPIC/g" vrpn/quat/Makefile');
system('sed -i "s/#HW_OS := pc_linux$/HW_OS := pc_linux/g" vrpn/Makefile');
system('sed -i "s/CC := gcc/CC := gcc -fPIC/g" vrpn/Makefile');
system('sed -i "s/CC := g++/CC := g++ -fPIC/g" vrpn/Makefile');
}
system("cd vrpn/quat && make >make-quat.log 2>&1");
system("cd vrpn && make >make-vrpn.log 2>&1");
mkdir("$dependencies_dir/include");
mkdir("$dependencies_dir/lib");
system("chmod a-x vrpn/quat/*.h vrpn/*.h");
system("cp vrpn/quat/*.h vrpn/*.h $dependencies_dir/include");
system("cp vrpn/quat/$bitness_token/*.a vrpn/$bitness_token/*.a $dependencies_dir/lib");
chdir $old_dir
};
@@ -0,0 +1,23 @@
ogre-devel
wget
automake
autoconf
unzip
gcc-gfortran
gsl-devel
readline-devel
libtool
libXaw-devel
pcre-devel
freeimage-devel
mesa-libGL-devel
freealut-devel
libvorbis-devel
eigen3-devel
cegui-devel
ois-devel
compat-lua-devel
sqlite2-devel
fftw-devel
python3-devel
python3-numpy
@@ -0,0 +1,40 @@
libogre-1.8-dev
libboost-chrono1.54-dev
wget
doxygen
make
automake
autoconf
cmake
unzip
gcc
g++
libgtk2.0-dev
libglade2-dev
gfortran
libgsl0-dev
libreadline-dev
libzzip-dev
libtool
libxaw7-dev
libpcre3-dev
libfreeimage-dev
libglu1-mesa-dev
libalut-dev
libvorbis-dev
libncurses5-dev
libeigen3-dev
libcegui-mk2-dev
libois-dev
libboost-dev
libboost-thread-dev
libboost-regex-dev
libboost-filesystem-dev
liblua5.1-0-dev
libitpp-dev
libsqlite0-dev
libfftw3-dev
python-dev
python-numpy
sqlite
@@ -0,0 +1,26 @@
libogre-1.9-dev
wget
automake
autoconf
unzip
gfortran
libgsl-dev
libreadline-dev
libtool
libxaw7-dev
libpcre3-dev
libfreeimage-dev
libglu1-mesa-dev
libalut-dev
libvorbis-dev
libeigen3-dev
libcegui-mk2-dev
libois-dev
liblua5.1-0-dev
libitpp-dev
libsqlite0-dev
libfftw3-dev
python-dev
python-numpy
sqlite
@@ -0,0 +1,238 @@
@echo off
setlocal EnableDelayedExpansion
setlocal enableextensions
REM no options / set to default
set BuildType=Release
set InitEnvScript=windows-init_env_command.cmd
set PAUSE=pause
set ov_script_dir=%CD%
set generator=-G"Ninja"
set builder=Ninja
set PlatformTarget=x86
:parameter_parse
if /i "%1"=="-h" (
echo Usage: windows-build.cmd [Build Type] [Init-env Script]
echo -- Build Type option can be : --release (-r^), --debug (-d^) or --debug-symbols. Default is Release.
echo -- Default Init-env script is: windows-init_env_command.cmd
pause
exit 0
) else if /i "%1"=="--help" (
echo Usage: windows-build.cmd [Build Type] [Init-env Script]
echo -- Build Type option can be : --release (-r^), --debug (-d^) or --debug-symbols. Default is Release.
echo -- Default Init-env script is: windows-init_env_command.cmd
pause
exit 0
) else if /i "%1"=="--no-pause" (
set PAUSE=echo ""
SHIFT
Goto parameter_parse
) else if /i "%1"=="-d" (
set BuildType=Debug
REM set !InitEnvScript!=%2
SHIFT
Goto parameter_parse
) else if /i "%1"=="--debug" (
set BuildType=Debug
REM set !InitEnvScript!=%2
SHIFT
Goto parameter_parse
) else if /i "%1"=="--debug-symbols" (
set BuildType=RelWithDebInfo
REM set !InitEnvScript!=%2
SHIFT
Goto parameter_parse
) else if /i "%1"=="-r" (
set BuildType=Release
REM set !InitEnvScript!=%2
SHIFT
Goto parameter_parse
) else if /i "%1"=="--release" (
set BuildType=Release
REM set !InitEnvScript!=%2
SHIFT
Goto parameter_parse
) else if /i "%1"=="--sdk" (
set sdk=-DOPENVIBE_SDK_PATH=%2
set sdk_val=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--designer" (
set designer=-DDESIGNER_SDK_PATH=%2
set designer_val=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--build-dir" (
set ov_build_dir=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--install-dir" (
set ov_install_dir=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--dependencies-dir" (
set dependencies_path="-DLIST_DEPENDENCIES_PATH=%2"
set dependencies_base=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--vsproject" (
set vsgenerate=TRUE
set builder=None
SHIFT
Goto parameter_parse
) else if /i "%1"=="--vsbuild" (
set vsgenerate=TRUE
set builder=Visual
SHIFT
Goto parameter_parse
) else if /i "%1" == "--userdata-subdir" (
set UserDataSubdir="-DOV_CONFIG_SUBDIR=%2"
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--platform-target" (
set PlatformTarget=%2
SHIFT
SHIFT
Goto parameter_parse
) else if not "%1" == "" (
echo unrecognized option [%1]
Goto terminate_error
)
REM else if not "%1"=="" (
REM set BuildType=Release
REM set !InitEnvScript!=%1
REM SHIFT
REM Goto parameter_parse
REM )
if /i "!InitEnvScript!"=="windows-init_env_command.cmd" (
echo No script specified. Default will be used.
)
if defined vsgenerate (
echo Build type is set to: MultiType.
) else (
echo Build type is set to: %BuildType%.
)
echo Init-env Script to be called: !InitEnvScript!.
REM #######################################################################################
call "!InitEnvScript!" --dependencies-dir %dependencies_base% --platform-target %PlatformTarget%
REM #######################################################################################
if defined vsgenerate (
if /i "%PlatformTarget%" == "x64" (
set generator=-G"%VSCMake% Win64" -T "v120"
) else (
set generator=-G"%VSCMake%" -T "v120"
)
if not defined build_dir (
set build_dir=%root_dir%\..\openvibe-extras-build\vs-project
)
if not defined install_dir (
set install_dir=%root_dir%\..\openvibe-extras-build\dist
)
) else (
set build_type="-DCMAKE_BUILD_TYPE=%BuildType%"
if not defined build_dir (
set build_dir=%root_dir%\..\openvibe-extras-build\build-%BuildType%
)
if not defined install_dir (
set install_dir=%root_dir%\..\openvibe-extras-build\dist-%BuildType%
)
)
if defined sdk (
echo SDK is located at %sdk_val%
) else (
echo "Using default for SDK path (check CMake for inferred value)"
)
if defined designer (
echo Designer is located at %designer_val%
) else (
echo "Using default for Designer path (check CMake for inferred value)"
)
echo.
echo _______________________________________________________________________________
echo.
mkdir %ov_build_dir% 2>NUL
cd /D %ov_build_dir%
echo Generating makefiles for %VSCMake%.
echo Building to %ov_build_dir% ...
cmake %ov_script_dir%\.. %generator% %build_type% -DCMAKE_INSTALL_PREFIX=%ov_install_dir% %designer% %sdk% %dependencies_path% %UserDataSubdir%
IF NOT "!ERRORLEVEL!" == "0" goto terminate_error
echo.
echo Building and installing ...
echo.
if !builder! == None (
goto terminate_success
) else if !builder! == Ninja (
ninja install
if not "!ERRORLEVEL!" == "0" goto terminate_error
) else if !builder! == Visual (
if %PlatformTarget% == x86 (
set msplatform=Win32
) else (
set msplatform=%PlatformTarget%
)
msbuild Openvibe.sln /verbosity:normal /p:Configuration=%BuildType% /p:Platform="!msplatform!"
if not "!ERRORLEVEL!" == "0" goto terminate_error
cmake --build . --config %BuildType% --target install
if not "!ERRORLEVEL!" == "0" goto terminate_error
)
echo.
echo Install completed !
echo.
echo.
echo _______________________________________________________________________________
echo.
goto terminate_success
REM #######################################################################################
:terminate_error
echo.
echo An error occured during building process !
echo.
%PAUSE%
cd %ov_script_dir%
exit /b 1
REM #######################################################################################
:terminate_success
%PAUSE%
goto terminate
REM #######################################################################################
:terminate
cd %ov_script_dir%
@@ -0,0 +1,27 @@
build/windows/boost_1.58_x64_vc120_dev.zip;boost;1.58
build/windows/cegui_0.8.4_x64_vc120_dev.zip;cegui;0.8.4
build/windows/cegui_0.8.4_x64_vc120_runtime.zip;cegui;0.8.4
build/windows/freealut_1.1.0_x64_vc120.zip;freealut;1.1.0
build/windows/gtk_2.24.31_x64_vc120_dev.zip;gtk;2.24.31
build/windows/gtk_2.24.31_x64_vc120_runtime.zip;gtk;2.24.31
build/windows/itpp_4.3.1_x64_vc120.zip;itpp;4.3.1
build/windows/liblsl_1.12_x64.zip;liblsl;1.12
build/windows/libogg_1.2.1_x64_vc120.zip;libogg;1.2.1
build/windows/libvorbis_1.3.2_x64_vc120.zip;libvorbis;1.3.2
build/windows/lua_5.1.4_x64_vc110.zip;lua;5.1.4
build/windows/nsis_log_zip_access_2.51.zip;nsis_log_zip_access;2.51
build/windows/ogre_1.9.0_x64_vc120_dev.zip;ogre;1.9.0
build/windows/ogre_1.9.0_x64_vc120_runtime.zip;ogre;1.9.0
build/windows/openal_1.1_x64.zip;openal;1.1
build/windows/pthread_2.9.1_x64_vc120_dev.zip;pthread;2.9.1
build/windows/sdk_brainproducts_actichamp_x64.zip;sdk_brainproducts_actichamp;0.0.0
build/windows/sdk_brainproducts_liveamp_x64.zip;sdk_brainproducts_liveamp;0.0.0
build/windows/sdk_eemagine_eego_1.3.19.40453_x64.zip;sdk_eemagine_eego;1.3.19.40453
build/windows/sdk_micromed_x64_vc120.zip;sdk_micromed;0.0.0
build/windows/sdk_tmsi_x64.zip;sdk_tmsi;0.0.0
build/windows/sdk_gtec_unicorn_x64.zip;sdk_gtec_unicorn;0.0.0
build/windows/vcredist_x64_vc120.zip;vcredist;1.0
build/windows/vcredist_x64_vc100.zip;vcredist_100;1.0
build/windows/vcredist_x64_vc110.zip;vcredist_110;1.0
build/windows/vrpn_7.31_x64_vc120_dev.zip;vrpn;7.31
build/windows/vrpn_7.31_x64_vc120_runtime.zip;vrpn;7.31
@@ -0,0 +1,31 @@
build/windows/boost_1.58_x86_vc120_dev.zip;boost;1.58
build/windows/cegui_0.8.4_x86_vc120_dev.zip;cegui;0.8.4
build/windows/cegui_0.8.4_x86_vc120_runtime.zip;cegui;0.8.4
build/windows/freealut_1.1.0_x86_vc120.zip;freealut;1.1.0
build/windows/gtk-2.22.1-dev.zip;gtk;2.22.1
build/windows/gtk-2.22.1-runtime.zip;gtk;2.22.1
build/windows/itpp_4.3.1_x86_vc120.zip;itpp;4.3.1
build/windows/liblsl_1.12_x86.zip;liblsl;1.12
build/windows/libogg_1.2.1_x86.zip;libogg;1.2.1
build/windows/libvorbis_1.3.2_x86.zip;libvorbis;1.3.2
build/windows/lua_5.1.4_x86_vc110.zip;lua;5.1.4
build/windows/nsis_log_zip_access_2.51.zip;nsis_log_zip_access;2.51
build/windows/ogre_1.9.0_x86_vc120_dev.zip;ogre;1.9.0
build/windows/ogre_1.9.0_x86_vc120_runtime.zip;ogre;1.9.0
build/windows/openal_1.1_x86.zip;openal;1.1
build/windows/pthread_2.9.1_x86_vc120_dev.zip;pthread;2.9.1
build/windows/sdk_brainproducts_actichamp_x86.zip;sdk_brainproducts_actichamp;0.0.0
build/windows/sdk_brainproducts_liveamp_x86.zip;sdk_brainproducts_liveamp;0.0.0
build/windows/sdk_eemagine_eego_1.3.19.40453_x86.zip;sdk_eemagine_eego;1.3.19.40453
build/windows/sdk_enobio3g_x86.zip;sdk_enobio3g;0.0.0
build/windows/sdk_mcs_x86.zip;sdk_mcs;0.0.0
build/windows/sdk_mensia_acquisition_driver_3.0.99_x86.zip;sdk_mensia_acquisition_driver;3.0.99
build/windows/sdk_micromed_x86_vc120.zip;sdk_micromed;0.0.0
build/windows/sdk_mitsar_x86.zip;sdk_mitsar;0.0.0
build/windows/sdk_nexus_x86.zip;sdk_nexus;0.0.0
build/windows/sdk_tmsi_x86.zip;sdk_tmsi;0.0.0
build/windows/vcredist_x86_vc120.zip;vcredist;1.0
build/windows/vcredist_x86_vc100.zip;vcredist_100;1.0
build/windows/vcredist_x86_vc110.zip;vcredist_110;1.0
build/windows/vrpn_7.31_x86_vc120_dev.zip;vrpn;7.31
build/windows/vrpn_7.31_x86_vc120_runtime.zip;vrpn;7.31
@@ -0,0 +1,22 @@
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\\bin;%PATH%
SET PATH=%dependencies_base%\gtk\bin;%PATH%
SET OGRE_HOME=%dependencies_base%\ogre
SET PATH=%OGRE_HOME%\bin\release;%OGRE_HOME%\bin\debug;%PATH%
SET PATH=%dependencies_base%\cegui\bin;%PATH%
SET PATH=%dependencies_base%\cegui\dependencies\bin;%PATH%
SET VRPNROOT=%dependencies_base%\vrpn
SET PATH=%VRPNROOT%\bin;%PATH%
SET PATH=%dependencies_base%\vcredist_100\;%PATH%
SET PATH=%dependencies_base%\vcredist_110\;%PATH%
SET PATH=%dependencies_base%\vcredist\;%PATH%
REM Apply user-provided Python2.7 paths if available
IF NOT !PYTHONHOME27!==!EMPTY! IF NOT !PYTHONPATH27!==!EMPTY! SET REPLACE_PYTHON=true
IF NOT !REPLACE_PYTHON!==!EMPTY! (
SET "PYTHONHOME=%PYTHONHOME27%"
SET "PYTHONPATH=%PYTHONPATH27%"
)
@@ -0,0 +1,133 @@
@echo off
REM ########################################################################################################################
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin;!PATH!
set "SCRIPT_PATH=%~dp0"
set "PLATFORM=x86"
:parameter_parse
if /i "%1" == "--dependencies-dir" (
set "PATH_DEPENDENCIES=%2"
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1" == "--platform-target" (
if "%2"=="x64" (
set PLATFORM=x64
set VSPLATFORMGENERATOR=Win64
) else if "%2"=="x86" (
set PLATFORM=x86
set VSPLATFORMGENERATOR=
) else (
echo Unknown platform %2 target
Goto terminate
)
SHIFT
SHIFT
Goto parameter_parse
) else if not "%1" == "" (
echo unrecognized option [%1]
Goto terminate_error
)
if not defined PATH_DEPENDENCIES (
if %PLATFORM%==x64 (
SET "PATH_DEPENDENCIES=%SCRIPT_PATH%../dependencies_x64"
) else (
SET "PATH_DEPENDENCIES=%SCRIPT_PATH%../dependencies"
)
set "PATH=!PATH_DEPENDENCIES!/cmake/bin;!PATH!"
set "PATH=!PATH_DEPENDENCIES!/ninja;!PATH!"
set "PATH=!PATH_DEPENDENCIES!/gtk/bin;!PATH!"
) else (
for %%A in (%PATH_DEPENDENCIES%) DO (
if exist "%%A\cmake\bin\" (
set "PATH=%%A\cmake\bin;!PATH!"
)
if exist "%%A\gtk\bin\" (
set "PATH=%%A\gtk\bin;!PATH!"
)
if exist "%%A\ninja\" (
set "PATH=%%A\ninja;!PATH!"
)
)
)
REM # Set to 1 to skip new compilers.
if not defined SKIP_VS2017 (
SET SKIP_VS2017=1
)
if not defined SKIP_VS2015 (
SET SKIP_VS2015=1
)
if not defined SKIP_VS2013 (
SET SKIP_VS2013=0
)
SET VSTOOLS=
SET VSCMake=
set VCVARSALLPATH=../../VC/vcvarsall.bat
if %SKIP_VS2017% == 0 (
set "VSTOOLS=%VS150COMNTOOLS%"
set VSCMake=Visual Studio 15 2017
) else if %SKIP_VS2015% == 0 (
echo Visual Studio 2017 detection skipped as requested
set "VSTOOLS=%VS140COMNTOOLS%"
set VSCMake=Visual Studio 14 2015
) else (
echo Visual Studio 2017 detection skipped as requested
echo Visual Studio 2015 detection skipped as requested
set "VSTOOLS=%VS120COMNTOOLS%"
set VSCMake=Visual Studio 12 2013
)
if exist "!VSTOOLS!%VCVARSALLPATH%" (
if %PLATFORM% == x64 (
if exist "!VSTOOLS!../../VC/bin/x64" (
echo Found %VSCMake% tools: !VSTOOLS!%VCVARSALLPATH% %PLATFORM%
call "!VSTOOLS!%VCVARSALLPATH%" %PLATFORM%
) else (
echo Found %VSCMake% tools: !VSTOOLS!%VCVARSALLPATH% x86_amd64
call "!VSTOOLS!%VCVARSALLPATH%" x86_amd64
)
) else (
echo Found %VSCMake% tools: !VSTOOLS!vsvars32.bat
call "!VSTOOLS!vsvars32.bat"
)
goto terminate
)
set VSCMake=!VSCMake! %VSPLATFORMGENERATOR%
goto terminate_success
:terminate_error
echo ######################################################################################
echo ## ##
echo ## ERROR : Microsoft Visual Studio Common tools initialisation script not found ##
echo ## ##
echo ######################################################################################
echo An error occured during environment initializing !
pause
exit 1
REM #######################################################################################
:terminate_success
goto terminate
REM #######################################################################################
REM #######################################################################################
:terminate
@@ -0,0 +1,300 @@
; define a default for dep source directory
!ifndef DEPENDENCIES_DIR
!define DEPENDENCIES_DIR "..\..\dependencies_x64"
!endif
!define OV_VERSION "3.1.0"
!define OV_VERSION_SHORT "310"
!ifndef OUTFILE
!define OUTFILE "openvibe-${OV_VERSION}-64bit-setup.exe"
!endif
SetCompressor /FINAL /SOLID lzma
SetCompressorDictSize 16
!include "MUI.nsh"
!include "zipdll.nsh"
;Name and file
!define OV_NAME "OpenViBE ${OV_VERSION} (64bit)"
Name "${OV_NAME}"
OutFile ${OUTFILE}
;To detect a previous installation
!define OV_REGKEY "openvibe${OV_VERSION_SHORT}-64bit"
;Default installation folder
InstallDir "$PROGRAMFILES64\openvibe-${OV_VERSION}-64bit"
Var OLDINSTDIR
Var DIRECTX_MISSING
;Interface Settings
!define MUI_ABORTWARNING
;Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\COPYING"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;Languages
!insertmacro MUI_LANGUAGE "English"
;Installer and uninstaller icons
Icon "${NSISDIR}\Contrib\Graphics\Icons\box-install.ico"
UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\box-uninstall.ico"
;##########################################################################################################################################################
;##########################################################################################################################################################
;##########################################################################################################################################################
Function .onInit
; Note that for logging to work, you will need a logging-enabled build of nsis.
; At the time of writing this, you could get one from http://nsis.sourceforge.net/Special_Builds
LogSet on
UserInfo::GetAccountType
Pop $R1
StrCmp $R1 "Admin" has_admin_rights 0
MessageBox MB_OK "You must be administrator to install OpenViBE" /SD IDOK
Quit
has_admin_rights:
ReadRegStr $0 HKLM SOFTWARE\${OV_REGKEY} InstallDir
${If} $0 != ""
IfFileExists "$0\Uninstall.exe" +1 +5
MessageBox MB_YESNO "A previous installation of ${OV_NAME} is installed under $0.$\nContinuing the install procedure will remove previous installation of ${OV_NAME} (including all files you eventually added in the installation directory).$\nWould you like to accept this removal and continue on installation process ?" /SD IDYES IDNO +1 IDYES +2
Abort
StrCpy $OLDINSTDIR $0
StrCpy $INSTDIR $0
${EndIf}
; Make OpenViBE section mandatory
IntOp $0 ${SF_SELECTED} | ${SF_RO}
IntOp $0 $0 | ${SF_BOLD}
SectionSetFlags "Section1" $0
FunctionEnd
; Returns characters before -, _ or .
Function GetFirstStrPart
Exch $R0
Push $R1
Push $R2
StrLen $R1 $R0
IntOp $R1 $R1 + 1
loop:
IntOp $R1 $R1 - 1
StrCpy $R2 $R0 1 -$R1
StrCmp $R2 "" exit2
StrCmp $R2 "-" exit1
StrCmp $R2 "_" exit1
StrCmp $R2 "." exit1
Goto loop
exit1:
StrCpy $R0 $R0 -$R1
exit2:
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
;##########################################################################################################################################################
;##########################################################################################################################################################
;##########################################################################################################################################################
Section "!OpenViBE" Section1
LogSet on
${If} $OLDINSTDIR != ""
RMDir /r $OLDINSTDIR
RMDir /r "$SMPROGRAMS\${OV_NAME}"
${EndIf}
SetOutPath $INSTDIR
WriteRegStr HKLM "SOFTWARE\${OV_REGKEY}" "InstallDir" "$INSTDIR"
WriteUninstaller Uninstall.exe
CreateDirectory "$INSTDIR\dependencies\arch"
StrCpy $DIRECTX_MISSING "false"
SetOutPath "$INSTDIR\dependencies"
IfFileExists "$SYSDIR\d3dx9_43.dll" no_need_to_install_directx
NSISdl::download "https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" "arch\directx-jun2010.exe"
Pop $R0 ; Get the return value
StrCmp $R0 "success" +4
MessageBox MB_OK "Download failed: $R0$\nCheck your Internet connection and your firewall settings.$\nDirect X won't be installed and 3D functionalities won't be available...$\nYou can install DirectX later to enable 3D functionalities !" /SD IDOK
StrCpy $DIRECTX_MISSING "true"
Goto no_need_to_install_directx ; Quit
ExecWait '"arch\directx-jun2010.exe" /T:"$INSTDIR\tmp" /Q'
ExecWait '"$INSTDIR\tmp\DXSETUP.exe" /silent'
RMDir /r "$INSTDIR\tmp"
no_need_to_install_directx:
; We download the redist from microsoft as its rather large. At the time of writing, vc140 is used by gNeedAccess and hence AS.
SetOutPath "$INSTDIR\dependencies"
IfFileExists "$SYSDIR\msvcp140.dll" no_need_to_install_vc140
NSISdl::download "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" "arch\vc_redist.x64.exe"
Pop $R0 ; Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Download failed: $R0$\nCheck your Internet connection and your firewall settings.$\nVisual Studio 2015 Redistributable x64 (vc140) could not be downloaded.\nYou can try to install it manually from Microsoft and then retry the OpenViBE installer." /SD IDOK
Quit
ExecWait '"arch\vc_redist.x64.exe" /install /norestart /passive'
no_need_to_install_vc140:
; This is the destination path where the zips will be copied to
SetOutPath "$INSTDIR\dependencies\arch"
; The following source paths are relative to this .nsi script location
File "${DEPENDENCIES_DIR}\arch\build\windows\*runtime.zip"
File "${DEPENDENCIES_DIR}\arch\build\windows\pthread*.zip"
; All vcredist packages extracted to the same folder
File "${DEPENDENCIES_DIR}\arch\build\windows\vcredist*.zip"
; The zips are extracted here by the installer
SetOutPath "$INSTDIR\dependencies"
; Extract all the zip archives
; n.b. this thing will freeze on exec if there is no - or _ in the filename
ClearErrors
FindFirst $R0 $R1 "arch\*.zip"
ZipLoop:
IfErrors ZipDone
; find the base name, push to R2
Push "$R1"
Call GetFirstStrPart
Pop "$R2"
ZipDLL::extractall "arch\$R1" "$R2"
ClearErrors
FindNext $R0 $R1
Goto ZipLoop
ZipDone:
FindClose $R0
; Zip extract hopefully done now
SetOutPath "$INSTDIR"
; Export binaries
File /nonfatal /r ..\..\dist\extras-Release-x64\bin
; Export launch scripts
File /nonfatal ..\..\dist\extras-Release-x64\*.cmd
; File /nonfatal /r ..\dist\doc
; File /nonfatal /r ..\dist\include
; etc and lib folders are needed for the gtk theme
File /nonfatal /r /x *.lib ..\..\dist\extras-Release-x64\lib
File /nonfatal /r ..\..\dist\extras-Release-x64\etc
File /nonfatal /r ..\..\dist\extras-Release-x64\log
File /nonfatal /r ..\..\dist\extras-Release-x64\share
; File /nonfatal /r ..\dist\tmp
StrCmp $DIRECTX_MISSING "false" no_need_to_patch_3d_functionnality
FileOpen $0 "$INSTDIR\share\openvibe\kernel\openvibe.conf" a
FileSeek $0 0 END
FileWrite $0 "$\r$\n"
FileWrite $0 "#####################################################################################$\r$\n"
FileWrite $0 "# Patched by installer because DirectX is missing$\r$\n"
FileWrite $0 "#####################################################################################$\r$\n"
FileWrite $0 "Kernel_3DVisualizationEnabled = false$\r$\n"
FileClose $0
no_need_to_patch_3d_functionnality:
; Overwrite the file that may be in share/, as it contains local definitions to the build machine
FileOpen $0 "$INSTDIR\bin\openvibe-set-env.cmd" w
FileWrite $0 "@echo off$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "SET OGRE_HOME=$INSTDIR\dependencies\ogre$\r$\n"
FileWrite $0 "SET VRPNROOT=$INSTDIR\dependencies\vrpn$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\gtk\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\cegui\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\cegui\dependencies\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=%OGRE_HOME%\bin\release;%OGRE_HOME%\bin\debug;%PATH%$\r$\n"
FileWrite $0 "SET PATH=%VRPNROOT%\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\pthread\lib;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\vcredist\;%PATH%$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "REM Apply user-provided Python2.7 paths if available$\r$\n"
FileWrite $0 "IF NOT !PYTHONHOME27!==!EMPTY! IF NOT !PYTHONPATH27!==!EMPTY! SET REPLACE_PYTHON=true$\r$\n"
FileWrite $0 "IF NOT !REPLACE_PYTHON!==!EMPTY! ($\r$\n"
FileWrite $0 " SET $\"PYTHONHOME=%PYTHONHOME27%$\"$\r$\n"
FileWrite $0 " SET $\"PYTHONPATH=%PYTHONPATH27%$\"$\r$\n"
FileWrite $0 ")$\r$\n"
FileClose $0
FileOpen $0 "$INSTDIR\dependencies\cegui\resources.cfg" w
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\configs$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\fonts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\imagesets$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\layouts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\looknfeel$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\lua_scripts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\schemes$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\xml_schemes$\r$\n"
FileClose $0
FileOpen $0 "$INSTDIR\dependencies\gtk\etc\gtk-2.0\gtkrc" w
FileWrite $0 "gtk-theme-name = $\"Redmond$\"$\r$\n"
FileWrite $0 "style $\"user-font$\"$\r$\n"
FileWrite $0 "{$\r$\n"
FileWrite $0 " font_name=$\"Sans 8$\"$\r$\n"
FileWrite $0 "}$\r$\n"
FileWrite $0 "widget_class $\"*$\" style $\"user-font$\"$\r$\n"
FileClose $0
CreateDirectory "$SMPROGRAMS\${OV_NAME}"
CreateDirectory "$SMPROGRAMS\${OV_NAME}\Developer tools"
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE ID Generator.lnk" "$INSTDIR\openvibe-id-generator.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE Plugin Inspector.lnk" "$INSTDIR\openvibe-plugin-inspector.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE Skeleton Generator.lnk" "$INSTDIR\openvibe-skeleton-generator.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Designer 64bit.lnk" "$INSTDIR\openvibe-designer.cmd" "" "%SystemRoot%\system32\shell32.dll" 137
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Acquisition Server 64bit.lnk" "$INSTDIR\openvibe-acquisition-server.cmd" "" "%SystemRoot%\system32\shell32.dll" 18
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Tracker 64bit.lnk" "$INSTDIR\openvibe-tracker.cmd" "" "%SystemRoot%\system32\shell32.dll" 249
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE VR-demo Spaceship 64bit.lnk" "$INSTDIR\openvibe-vr-demo-spaceship.cmd" "" "%SystemRoot%\system32\shell32.dll" 200
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE VR-demo Handball 64bit.lnk" "$INSTDIR\openvibe-vr-demo-handball.cmd" "" "%SystemRoot%\system32\shell32.dll" 200
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
; AccessControl::EnableFileInheritance "$INSTDIR"
; AccessControl::GrantOnFile "$INSTDIR" "(BU)" "GenericRead + GenericWrite + GenericExecute + Delete" ; to ensure windows XP back compatibility
; AccessControl::GrantOnFile "$INSTDIR" "(S-1-5-32-545)" "GenericRead + GenericWrite + GenericExecute + Delete" ; (BU) user group (builtin users) does not exist on win7. this SID replaces it.
SectionEnd
Section "Uninstall"
RMDir /r $INSTDIR
RMDir /r "$SMPROGRAMS\${OV_NAME}"
SectionEnd
LangString DESC_Section1 ${LANG_ENGLISH} "The OpenViBE package: Designer, Acquisition Server, drivers, examples, etc."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
@@ -0,0 +1,299 @@
; define a default for dep dir
!ifndef DEPENDENCIES_DIR
!define DEPENDENCIES_DIR "..\..\dependencies"
!endif
!define OV_VERSION "3.1.0"
!define OV_VERSION_SHORT "310"
!ifndef OUTFILE
!define OUTFILE "openvibe-${OV_VERSION}-32bit-setup.exe"
!endif
SetCompressor /FINAL /SOLID lzma
SetCompressorDictSize 16
!include "MUI.nsh"
!include "zipdll.nsh"
;Name and file
!define OV_NAME "OpenViBE ${OV_VERSION} (32bit)"
Name "${OV_NAME}"
OutFile ${OUTFILE}
;To detect a previous installation
!define OV_REGKEY "openvibe${OV_VERSION_SHORT}"
;Default installation folder
InstallDir "$PROGRAMFILES\openvibe-${OV_VERSION}"
Var OLDINSTDIR
Var DIRECTX_MISSING
;Interface Settings
!define MUI_ABORTWARNING
;Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\COPYING"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;Languages
!insertmacro MUI_LANGUAGE "English"
;Installer and uninstaller icons
Icon "${NSISDIR}\Contrib\Graphics\Icons\box-install.ico"
UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\box-uninstall.ico"
;##########################################################################################################################################################
;##########################################################################################################################################################
;##########################################################################################################################################################
Function .onInit
; Note that for logging to work, you will need a logging-enabled build of nsis.
; At the time of writing this, you could get one from http://nsis.sourceforge.net/Special_Builds
LogSet on
UserInfo::GetAccountType
Pop $R1
StrCmp $R1 "Admin" has_admin_rights 0
MessageBox MB_OK "You must be administrator to install OpenViBE" /SD IDOK
Quit
has_admin_rights:
ReadRegStr $0 HKLM SOFTWARE\${OV_REGKEY} InstallDir
${If} $0 != ""
IfFileExists "$0\Uninstall.exe" +1 +5
MessageBox MB_YESNO "A previous installation of ${OV_NAME} is installed under $0.$\nContinuing the install procedure will remove previous installation of ${OV_NAME} (including all files you eventually added in the installation directory).$\nWould you like to accept this removal and continue on installation process ?" /SD IDYES IDNO +1 IDYES +2
Abort
StrCpy $OLDINSTDIR $0
StrCpy $INSTDIR $0
${EndIf}
; Make OpenViBE section mandatory
IntOp $0 ${SF_SELECTED} | ${SF_RO}
IntOp $0 $0 | ${SF_BOLD}
SectionSetFlags "Section1" $0
FunctionEnd
; Returns characters before -, _ or .
Function GetFirstStrPart
Exch $R0
Push $R1
Push $R2
StrLen $R1 $R0
IntOp $R1 $R1 + 1
loop:
IntOp $R1 $R1 - 1
StrCpy $R2 $R0 1 -$R1
StrCmp $R2 "" exit2
StrCmp $R2 "-" exit1
StrCmp $R2 "_" exit1
StrCmp $R2 "." exit1
Goto loop
exit1:
StrCpy $R0 $R0 -$R1
exit2:
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
;##########################################################################################################################################################
;##########################################################################################################################################################
;##########################################################################################################################################################
Section "!OpenViBE" Section1
LogSet on
${If} $OLDINSTDIR != ""
RMDir /r $OLDINSTDIR
RMDir /r "$SMPROGRAMS\${OV_NAME}"
${EndIf}
SetOutPath $INSTDIR
WriteRegStr HKLM "SOFTWARE\${OV_REGKEY}" "InstallDir" "$INSTDIR"
WriteUninstaller Uninstall.exe
CreateDirectory "$INSTDIR\dependencies\arch"
StrCpy $DIRECTX_MISSING "false"
SetOutPath "$INSTDIR\dependencies"
IfFileExists "$SYSDIR\d3dx9_43.dll" no_need_to_install_directx
NSISdl::download "https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" "arch\directx-jun2010.exe"
Pop $R0 ; Get the return value
StrCmp $R0 "success" +4
MessageBox MB_OK "Download failed: $R0$\nCheck your Internet connection and your firewall settings.$\nDirect X won't be installed and 3D functionalities won't be available...$\nYou can install DirectX later to enable 3D functionalities !" /SD IDOK
StrCpy $DIRECTX_MISSING "true"
Goto no_need_to_install_directx ; Quit
ExecWait '"arch\directx-jun2010.exe" /T:"$INSTDIR\tmp" /Q'
ExecWait '"$INSTDIR\tmp\DXSETUP.exe" /silent'
RMDir /r "$INSTDIR\tmp"
no_need_to_install_directx:
; We download the redist from microsoft as its rather large. At the time of writing, vc140 is used by gNeedAccess and hence AS.
SetOutPath "$INSTDIR\dependencies"
IfFileExists "$SYSDIR\msvcp140.dll" no_need_to_install_vc140
NSISdl::download "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe" "arch\vc_redist.x86.exe"
Pop $R0 ; Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Download failed: $R0$\nCheck your Internet connection and your firewall settings.$\nVisual Studio 2015 Redistributable x86 (vc140) could not be downloaded.\nYou can try to install it manually from Microsoft and then retry the OpenViBE installer." /SD IDOK
Quit
ExecWait '"arch\vc_redist.x86.exe" /install /norestart /passive'
no_need_to_install_vc140:
; This is the destination path where the zips will be copied to
SetOutPath "$INSTDIR\dependencies\arch"
; The following source paths are relative to this .nsi script location
File "${DEPENDENCIES_DIR}\arch\build\windows\*runtime.zip"
File "${DEPENDENCIES_DIR}\arch\build\windows\pthread*.zip"
; All vcredist packages extracted to the same folder
File "${DEPENDENCIES_DIR}\arch\build\windows\vcredist*.zip"
; The zips are extracted here by the installer
SetOutPath "$INSTDIR\dependencies"
; Extract all the zip archives
; n.b. this thing will freeze on exec if there is no - or _ in the filename
ClearErrors
FindFirst $R0 $R1 "arch\*.zip"
ZipLoop:
IfErrors ZipDone
; find the base name, push to R2
Push "$R1"
Call GetFirstStrPart
Pop "$R2"
ZipDLL::extractall "arch\$R1" "$R2"
ClearErrors
FindNext $R0 $R1
Goto ZipLoop
ZipDone:
FindClose $R0
; Zip extract hopefully done now
SetOutPath "$INSTDIR"
; Export binaries
File /nonfatal /r ..\..\dist\extras-Release-x86\bin
; Export launch scripts
File /nonfatal ..\..\dist\extras-Release-x86\*.cmd
; File /nonfatal /r ..\dist\doc
; File /nonfatal /r ..\dist\include
; etc and lib folders are needed for the gtk theme
File /nonfatal /r /x *.lib ..\..\dist\extras-Release-x86\lib
File /nonfatal /r ..\..\dist\extras-Release-x86\etc
File /nonfatal /r ..\..\dist\extras-Release-x86\log
File /nonfatal /r ..\..\dist\extras-Release-x86\share
; File /nonfatal /r ..\dist\tmp
StrCmp $DIRECTX_MISSING "false" no_need_to_patch_3d_functionnality
FileOpen $0 "$INSTDIR\share\openvibe\kernel\openvibe.conf" a
FileSeek $0 0 END
FileWrite $0 "$\r$\n"
FileWrite $0 "#####################################################################################$\r$\n"
FileWrite $0 "# Patched by installer because DirectX is missing$\r$\n"
FileWrite $0 "#####################################################################################$\r$\n"
FileWrite $0 "Kernel_3DVisualizationEnabled = false$\r$\n"
FileClose $0
no_need_to_patch_3d_functionnality:
; Overwrite the file that may be in share/, as it contains local definitions to the build machine
FileOpen $0 "$INSTDIR\bin\openvibe-set-env.cmd" w
FileWrite $0 "@echo off$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "SET OGRE_HOME=$INSTDIR\dependencies\ogre$\r$\n"
FileWrite $0 "SET VRPNROOT=$INSTDIR\dependencies\vrpn$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\gtk\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\cegui\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\cegui\dependencies\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=%OGRE_HOME%\bin\release;%OGRE_HOME%\bin\debug;%PATH%$\r$\n"
FileWrite $0 "SET PATH=%VRPNROOT%\bin;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\pthread\lib;%PATH%$\r$\n"
FileWrite $0 "SET PATH=$INSTDIR\dependencies\vcredist\;%PATH%$\r$\n"
FileWrite $0 "$\r$\n"
FileWrite $0 "REM Apply user-provided Python2.7 paths if available$\r$\n"
FileWrite $0 "IF NOT !PYTHONHOME27!==!EMPTY! IF NOT !PYTHONPATH27!==!EMPTY! SET REPLACE_PYTHON=true$\r$\n"
FileWrite $0 "IF NOT !REPLACE_PYTHON!==!EMPTY! ($\r$\n"
FileWrite $0 " SET $\"PYTHONHOME=%PYTHONHOME27%$\"$\r$\n"
FileWrite $0 " SET $\"PYTHONPATH=%PYTHONPATH27%$\"$\r$\n"
FileWrite $0 ")$\r$\n"
FileClose $0
FileOpen $0 "$INSTDIR\dependencies\cegui\resources.cfg" w
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\configs$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\fonts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\imagesets$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\layouts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\looknfeel$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\lua_scripts$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\schemes$\r$\n"
FileWrite $0 "FileSystem=$INSTDIR\dependencies\cegui\datafiles\xml_schemes$\r$\n"
FileClose $0
FileOpen $0 "$INSTDIR\dependencies\gtk\etc\gtk-2.0\gtkrc" w
FileWrite $0 "gtk-theme-name = $\"Redmond$\"$\r$\n"
FileWrite $0 "style $\"user-font$\"$\r$\n"
FileWrite $0 "{$\r$\n"
FileWrite $0 " font_name=$\"Sans 8$\"$\r$\n"
FileWrite $0 "}$\r$\n"
FileWrite $0 "widget_class $\"*$\" style $\"user-font$\"$\r$\n"
FileClose $0
CreateDirectory "$SMPROGRAMS\${OV_NAME}"
CreateDirectory "$SMPROGRAMS\${OV_NAME}\Developer tools"
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE ID Generator.lnk" "$INSTDIR\openvibe-id-generator.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE Plugin Inspector.lnk" "$INSTDIR\openvibe-plugin-inspector.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Developer tools\OpenViBE Skeleton Generator.lnk" "$INSTDIR\openvibe-skeleton-generator.cmd" "" "%SystemRoot%\system32\shell32.dll" 57
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Designer 32bit.lnk" "$INSTDIR\openvibe-designer.cmd" "" "%SystemRoot%\system32\shell32.dll" 137
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Acquisition Server 32bit.lnk" "$INSTDIR\openvibe-acquisition-server.cmd" "" "%SystemRoot%\system32\shell32.dll" 18
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE Tracker 32bit.lnk" "$INSTDIR\openvibe-tracker.cmd" "" "%SystemRoot%\system32\shell32.dll" 249
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE VR-demo Spaceship 32bit.lnk" "$INSTDIR\openvibe-vr-demo-spaceship.cmd" "" "%SystemRoot%\system32\shell32.dll" 200
CreateShortCut "$SMPROGRAMS\${OV_NAME}\OpenViBE VR-demo Handball 32bit.lnk" "$INSTDIR\openvibe-vr-demo-handball.cmd" "" "%SystemRoot%\system32\shell32.dll" 200
CreateShortCut "$SMPROGRAMS\${OV_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
; AccessControl::EnableFileInheritance "$INSTDIR"
; AccessControl::GrantOnFile "$INSTDIR" "(BU)" "GenericRead + GenericWrite + GenericExecute + Delete" ; to ensure windows XP back compatibility
; AccessControl::GrantOnFile "$INSTDIR" "(S-1-5-32-545)" "GenericRead + GenericWrite + GenericExecute + Delete" ; (BU) user group (builtin users) does not exist on win7. this SID replaces it.
SectionEnd
Section "Uninstall"
RMDir /r $INSTDIR
RMDir /r "$SMPROGRAMS\${OV_NAME}"
SectionEnd
LangString DESC_Section1 ${LANG_ENGLISH} "The OpenViBE package: Designer, Acquisition Server, drivers, examples, etc."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
!insertmacro MUI_FUNCTION_DESCRIPTION_END