This commit is contained in:
2021-10-14 13:47:35 +02:00
commit 6625a8dfaa
4026 changed files with 844291 additions and 0 deletions
@@ -0,0 +1,2 @@
build/linux/OpenViBE-Release-2.0.0.112-Ubuntu14.04.zip;openvibe-sdk-release;2.0.0.112
build/linux/OpenViBE-Debug-2.0.0.112-Ubuntu14.04.zip;openvibe-sdk-debug;2.0.0.112
@@ -0,0 +1,2 @@
build/linux/OpenViBE-Release-2.0.0.112-Ubuntu16.04.zip;openvibe-sdk-release;2.0.0.112
build/linux/OpenViBE-Debug-2.0.0.112-Ubuntu16.04.zip;openvibe-sdk-debug;2.0.0.112
Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

@@ -0,0 +1,5 @@
You can drop perl scripts here to install dependencies. See
the corresponding folder in sdk.
@@ -0,0 +1,2 @@
gtk2-devel
libglade2-devel
@@ -0,0 +1,2 @@
libgtk2.0-dev
libglade2-dev
@@ -0,0 +1,2 @@
libgtk2.0-dev
libglade2-dev
+193
View File
@@ -0,0 +1,193 @@
#!/bin/bash
# This is the build script to configure and build OpenViBE on
# unix-based platform.
# Functions definition
function usage()
{
echo "usage: ./unix-build [options]"
echo ""
echo "-h | --help : usage"
echo "-v | --verbose : verbose output at building step"
echo "--build-type=<Debug|Release|RelWithDebInfo> : build type"
echo "--build-dir=<dirname> : build directory"
echo "--install-dir=<dirname> : binaries deployment directory"
echo "--test-data-dir=<dirname> : test data directory"
echo "--make-package : a package will be created in build directory"
echo "--hide-error-location : do not display complete error locations"
echo "--sdk=<dirname> : path to the Openvibe SDK"
echo "--oem-distribution=<name of the oem distribution> : distribution name, can be openvibe or mensia"
echo "--userdata-subdir=<dirname> name of the userdata sub directory"
}
# Script starting point
# As options are not mandatory, set some default values for each target
# variables
ov_script_dir="${PWD}"
ov_build_type=Release
ov_test_data_dir="${ov_script_dir}/../dependencies/test-data"
ov_oem_distribution="openvibe"
verbose="OFF"
package_option="FALSE"
display_error_location="ON"
# Parse arguments
for i in "$@"
do
case $i in
-h | --help)
usage
exit
;;
-v | --verbose)
verbose="ON"
shift
;;
--build-type=*)
ov_build_type="${i#*=}"
shift
;;
--build-dir=*)
ov_build_dir="${i#*=}"
shift
;;
--install-dir=*)
ov_install_dir="${i#*=}"
shift
;;
--make-package)
package_option="TRUE"
display_error_location="OFF"
shift
;;
--hide-error-location)
display_error_location="OFF"
;;
--test-data-dir=*)
ov_test_data_dir="${i#*=}"
shift
;;
--sdk=*)
ov_sdk_dir="${i#*=}"
shift
;;
--oem-distribution=*)
ov_oem_distribution="${i#*=}"
shift
;;
--userdata-subdir=*)
UserDataSubdir="-DOV_CONFIG_SUBDIR=${i#*=}"
shift
;;
*)
echo "ERROR: Unknown parameter $i"
exit 1
;;
esac
done
# Check parameters validity
if [[ ${ov_build_type} != "Debug" ]] \
&& [[ ${ov_build_type} != "Release" ]] \
&& [[ ${ov_build_type} != "RelWithDebInfo" ]]
then
echo "ERROR: ${ov_build_type} not handled as build type"
exit 1
fi
if [[ ${ov_build_type} == "Debug" ]]; then
sdk_affix="debug"
elif [[ ${ov_build_type} == "Release" ]] || [[ ${ov_build_type} == "RelWithDebInfo" ]]; then
sdk_affix="release"
fi
if [[ ! -v ov_sdk_dir ]]; then
ov_sdk_dir="${ov_script_dir}/../dependencies/openvibe-sdk-${sdk_affix}"
fi
if [[ ! -v ov_build_dir ]]; then
ov_build_dir="${ov_script_dir}/../../openvibe-designer-build/build-${ov_build_type}"
fi
if [[ ! -v ov_install_dir ]]; then
ov_install_dir="${ov_script_dir}/../../openvibe-designer-build/dist-${ov_build_type}"
fi
echo "**************************************"
echo "Build with parameters:"
echo "[build-type] = ${ov_build_type}"
echo "[build-dir] = ${ov_build_dir}"
echo "[install-dir] = ${ov_install_dir}"
echo "[test-data-dir] = ${ov_test_data_dir}"
echo "[sdk] = ${ov_sdk_dir}"
echo "[oem-distribution] = ${ov_oem_distribution}"
echo "[display-error-location] = ${display_error_location}"
echo "**************************************"
echo ""
echo ""
# Special configuration for MacOS
uname_string=$(uname)
if [[ "$uname_string" == 'Darwin' ]]; then
export PKG_CONFIG_PATH="/opt/X11/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
# Create necessary directories
mkdir -p "${ov_build_dir}" &> /dev/null
# Change directory to build directory as cmake has to be run from build
# directory
pushd "${ov_build_dir}" &> /dev/null
echo "Generating build system files with cmake..."
cmake ${ov_script_dir}/.. \
-G Ninja \
-DCMAKE_BUILD_TYPE=${ov_build_type} \
-DCMAKE_INSTALL_PREFIX=${ov_install_dir} \
-DOV_PACKAGE=${package_option} \
-DOV_DISPLAY_ERROR_LOCATION=${display_error_location} \
-DOVT_TEST_DATA_DIR=${ov_test_data_dir} \
-DFlag_VerboseOutput=${verbose} \
-DOPENVIBE_SDK_PATH=${ov_sdk_dir} \
-DOEM_DISTRIBUTION=${ov_oem_distribution} \
${UserDataSubdir}
if [[ $? == 0 ]]; then
echo "Generation succeeded!"
else
echo "ERROR: Generation failed"
exit 1
fi
echo "Building project..."
if [[ $verbose == "ON" ]]; then
ninja -v install
else
ninja install
fi
if [[ $? == 0 ]]; then
echo "Build succeeded!"
else
echo "ERROR: Build failed"
exit 1
fi
if [[ ${package_option} == "TRUE" ]]; then
cmake --build . --target package
if [[ $? == 0 ]]; then
echo "Package succeeded!"
else
echo "ERROR: Package failed"
exit 1
fi
fi
popd &> /dev/null
exit
@@ -0,0 +1,106 @@
#! /bin/bash
## Get needed dependencies from cache or remote server and unzip into
## dest folder.
#
DEPENDENCIES="./tests-data.txt"
CACHE_DIR="../dependencies/arch"
if [ ! -z $DEPENDENCY_CACHE ]; then
CACHE_DIR=$DEPENDENCY_CACHE
fi
OUTPUT_DIR="../dependencies"
function usage () {
cat <<EOF
Usage: $0 --manifest dependencies-file --cache cache_folder [--out output-folder]
[Options]
--manifest: file listing dependencies
--cache: dependency cache
--out: output destination folder [default: ../dependencies]
Example:
$0 --manifest dependencies.txt --cache /media/dependencies
EOF
}
while test -n "$1"; do
case "$1" in
--help)
usage
exit 0
;;
-h)
usage
exit 0
;;
--manifest)
DEPENDENCIES=$2
shift
;;
--cache)
CACHE_DIR=$2
shift
;;
--out)
OUTPUT_DIR=$2
shift
;;
esac
shift
done
if [ -z ${DEPENDENCIES} ] || [ -z ${CACHE_DIR} ]; then
usage
exit 1
fi
if [ -z ${DEPENDENCY_SERVER} ]; then
echo "If your dependencies are not up-to-date, you won't be able to download new files."
else
echo "Download dependencies from server [$DEPENDENCY_SERVER]."
fi
if [ -z ${PROXYPASS} ]; then
echo "Credentials were not provided. If your dependencies are not up-to-date, you won't be able to download new files."
else
user=`echo ${PROXYPASS} | cut -d ':' -f 1`
pass=`echo ${PROXYPASS} | cut -d ':' -f 2`
echo "Credentials are provided. Try to download from server with username [$user]."
fi
if [ ! -d ${CACHE_DIR} ]; then
echo "${CACHE_DIR} does not exist"
exit 2
fi
function get_dependency() {
local _dep=$1
if [ ! -f ${CACHE_DIR}/${_dep} ]; then
echo "Download zip archive: [${DEPENDENCY_SERVER}/${_dep}]"
wget --user=$user --password=$pass -nv -P ${CACHE_DIR}/${_dep%/*} ${DEPENDENCY_SERVER}/${_dep}
fi
}
function install_dependency() {
local _dep=$1 _dir=$2
get_dependency ${_dep}
echo "Unzip ${CACHE_DIR}/${_dep} to ${OUTPUT_DIR}/${_dir}"
if [ ! -f ${CACHE_DIR}/${_dep} ]; then
echo "Dependency ${_dep} does not exist in cache ${CACHE_DIR}"
exit 3
fi
mkdir -p ${OUTPUT_DIR}/${_dir}
unzip -q -o ${CACHE_DIR}/${_dep} -d ${OUTPUT_DIR}/${_dir}
}
mkdir -p ${OUTPUT_DIR}
echo "Get and unzip dependencies. Read dependencies from manifest [$DEPENDENCIES]"
cat ${DEPENDENCIES} | while read d; do
dep=`echo $d | cut -d ';' -f 1`
dir=`echo $d | cut -d ';' -f 2`
install_dependency ${dep} ${dir}
done
@@ -0,0 +1,252 @@
@echo off
setlocal EnableDelayedExpansion
setlocal enableextensions
pushd %~dp0\..
set "root_dir=%CD%"
popd
set BuildType=Release
set PackageOption=FALSE
set PauseCommand=pause
set RefreshCMake=F
set PathSDK=
set PathDep=%root_dir%\dependencies
set OEMDistribution=openvibe
set VerboseOuptut=OFF
set DisplayErrorLocation=ON
set generator=-G"Ninja"
set builder=Ninja
set PlatformTarget=x86
goto parameter_parse
:print_help
echo Usage: %0 [options]
echo.
echo [-h ^| --help] display usage
echo [--no-pause] will not pause during script execution
echo [-d^|--debug] build in debug mode
echo [-r^|--release] build in release mode
echo [--make-package] build zip packages instead of installing files
echo [--hide-error-location] do not display complete error locations
echo [-f^|--force] force option will force the cmake re-run
echo [-v^|--verbose]
echo [--sdk ^<path to openvibe SDK^>]
echo [--build-dir ^<dirname^>] build directory
echo [--install-dir ^<dirname^>] binaries deployment directory
echo [--oem-distribution ^<name of the distribution^>]
echo [--userdata-subdir ^<dirname^>] name of the userdata sub directory
echo [--vsproject] Create visual studio project (.sln)
echo [--vsbuild] Create visual studio project (.sln) and compiles it
echo [--platform-target ^<x86 or x64^>] Create a 32 or 64 bit. 32bit is the default
echo -- Build Type option can be : --release (-r) or --debug (-d). Default is Release.
exit /b
:parameter_parse
if /i "%1"=="-h" (
goto print_help
) else if /i "%1"=="--help" (
goto print_help
) else if /i "%1"=="--no-pause" (
set PauseCommand=echo ""
SHIFT
Goto parameter_parse
) else if /i "%1"=="-d" (
set BuildType=Debug
SHIFT
Goto parameter_parse
) else if /i "%1"=="--debug" (
set BuildType=Debug
SHIFT
Goto parameter_parse
) else if /i "%1"=="-r" (
set BuildType=Release
SHIFT
Goto parameter_parse
) else if /i "%1"=="--release" (
set BuildType=Release
SHIFT
Goto parameter_parse
) else if /i "%1"=="--make-package" (
set PackageOption=TRUE
set DisplayErrorLocation=OFF
SHIFT
Goto parameter_parse
) else if /i "%1" == "--hide-error-location" (
set DisplayErrorLocation=OFF
SHIFT
Goto parameter_parse
) else if /i "%1"=="-f" (
set RefreshCMake=T
SHIFT
Goto parameter_parse
) else if /i "%1"=="--force" (
set RefreshCMake=T
SHIFT
Goto parameter_parse
) else if /i "%1"=="-v" (
set VerboseOutput=ON
SHIFT
Goto parameter_parse
) else if /i "%%1"=="--verbose" (
set VerboseOutput=ON
SHIFT
Goto parameter_parse
) else if /i "%1"=="--sdk" (
set PathSDK=%2
set sdk_dir=-DOPENVIBE_SDK_PATH=%2%
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--dependencies-dir" (
set dependencies_dir=-DLIST_DEPENDENCIES_PATH=%2
set initialize_env_args=%2
set initialize_env_args=!initialize_env_args:;= !
set initialize_env_args=--dependencies-dir !initialize_env_args:"=!
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--oem-distribution" (
set OEMDistribution=%2
SHIFT
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"=="--build-dir" (
set build_dir=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--install-dir" (
set install_dir=%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"=="--platform-target" (
set PlatformTarget=%2
SHIFT
SHIFT
Goto parameter_parse
) else if not "%1" == "" (
echo unrecognized option [%1]
Goto terminate_error
)
if defined vsgenerate (
echo Build type is set to: MultiType.
) else (
echo Build type is set to: %BuildType%.
)
setlocal
call "windows-initialize-environment.cmd" --platform-target %PlatformTarget% %initialize_env_args%
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-designer-build\vs-project-%PlatformTarget%
)
if not defined install_dir (
set install_dir=%root_dir%\..\openvibe-designer-build\dist-%BuildType%-%PlatformTarget%
)
) else (
set build_type="-DCMAKE_BUILD_TYPE=%BuildType%"
if not defined build_dir (
set build_dir=%root_dir%\..\openvibe-designer-build\build-%BuildType%-%PlatformTarget%
)
if not defined install_dir (
set install_dir=%root_dir%\..\openvibe-designer-build\dist-%BuildType%-%PlatformTarget%
)
)
mkdir %build_dir% 2>NUL
pushd %build_dir%
if defined PathSDK (
echo SDK is located at %PathSDK%
) else (
echo "Using default for SDK path (check CMake for inferred value)"
)
set CallCmake=false
if not exist "%build_dir%\CMakeCache.txt" set CallCmake="true"
if %RefreshCMake%==T set CallCmake="true"
if %CallCmake%=="true" (
cmake %root_dir%\ %generator% ^
%build_type% ^
-DCMAKE_INSTALL_PREFIX=%install_dir% ^
!sdk_dir! ^
-DOV_DISPLAY_ERROR_LOCATION=%DisplayErrorLocation% ^
-DOEM_DISTRIBUTION=%OEMDistribution% ^
%UserDataSubdir% ^
-DOV_PACKAGE=%PackageOption% ^
-DFlag_VerboseOutput=%VerboseOutput% ^
%dependencies_dir%
)
if not "!ERRORLEVEL!" == "0" goto terminate_error
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 Designer.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
)
if %PackageOption% == TRUE (
cmake --build . --target package
if not "!ERRORLEVEL!" == "0" goto terminate_error
)
goto terminate_success
:terminate_error
echo An error occured during building process !
%PauseCommand%
goto terminate
:terminate_success
%PauseCommand%
goto terminate
:terminate
popd
endlocal
@@ -0,0 +1,4 @@
build/windows/boost_1.58_x64_vc120_dev.zip;boost;1.58
build/windows/eigen-3.2.0.zip;eigen;3.2.0
build/windows/OpenViBE-Release-2.0.0.118-win64.zip;openvibe-sdk-release;2.0.0.118
build/windows/OpenViBE-Debug-2.0.0.118-win64.zip;openvibe-sdk-debug;2.0.0.118
@@ -0,0 +1,4 @@
build/windows/boost_1.58_x86_vc120_dev.zip;boost;1.58
build/windows/eigen-3.2.0.zip;eigen;3.2.0
build/windows/OpenViBE-Release-2.0.0.118-win32.zip;openvibe-sdk-release;2.0.0.118
build/windows/OpenViBE-Debug-2.0.0.118-win32.zip;openvibe-sdk-debug;2.0.0.118
@@ -0,0 +1,2 @@
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
@@ -0,0 +1,2 @@
build/windows/gtk-2.22.1-dev.zip;gtk;2.22.1
build/windows/gtk-2.22.1-runtime.zip;gtk;2.22.1
@@ -0,0 +1,3 @@
@echo off
call "windows-build.cmd" --vsproject %*
@@ -0,0 +1,268 @@
<#
.SYNOPSIS
This script aims at installing dependencies from a manifest file.
.DESCRIPTION
Script workflow is as follows:
- Check for a cache directory
- Parse input dependencies manifest
- Download dependencies if: (Currently does not download!)
* cache found but dependency not found in the cache
* cache not found (old archives are overwritten)
- Extract dependencies in destination folder (old dependencies are overwritten) if:
* dependencies were never unzipped
* the version of unzipped dependency is correct (read from manifest version file)
- write manifest version file, named after the manifest file name and suffixed with "-version",
it contains the version of lastly unzipped dependencies such as:
folder_to_unzip=version_number
.PARAMETER dependencies_file
The manifest file containing the required archives to install.
First line is the base URL of the dependencies, following lines are formatted as:
archive_name;folder_to_unzip;version_number
archive_name;folder_to_unzip;version_number
...
The `folder_to_unzip` can be the same for several dependencies, but in this case you have to make sure
that the archives share the same `version_number`.
If this is not the case an error will be thrown.
.PARAMETER dest_dir
Optional: if unspecified then by default it will be set to $script_root\..\dependencies
Destination directory for extracted archives. Each archive found in the manifest file
is extracted in 'dest_dir\folder_to_unzip'.
Note that if no cache is found, archives are also downloaded in 'dest_dir\arch'.
.PARAMETER cache_dir
Cache directory for extracted archives. Each archive found in the manifest file
is extracted from cache_dir to 'dest_dir\folder_to_unzip'.
.NOTES
File Name : windows-get-dependencies.ps1
Prerequisite : Tested with PS v4.0 on windows 10 pro.
Environment variables will be used if set:
* PROXYPASS: Used to set credentials, should be formed as user:passwd
* ZIP_EXECUTABLE: should be set to the path to 7zip executable. If unset, script will try to read registry keys.
.LINK
Detailed specifications:
https://jira.mensiatech.com/confluence/pages/viewpage.action?spaceKey=CT&title=Dependency+management
.EXAMPLE
powershell.exe -NoExit -NoProfile -ExecutionPolicy Bypass -File \absolute\path\to\windows-get-dependencies.ps1 -manifest_file .\windows-dependencies.txt
.EXAMPLE
powershell.exe -NoExit -NoProfile -ExecutionPolicy Bypass -File \absolute\path\to\windows-get-dependencies.ps1 -manifest_file .\windows-dependencies.txt
-dest_dir \absolute\path\to\dep\ -cache_dir \absolute\path\to\cache
#>
#
# script parameters
#
Param(
[parameter(Mandatory=$true)][ValidateScript({Test-Path $_ })][string]$manifest_file,
[parameter(Mandatory=$false)][string]$cache_dir,
[parameter(Mandatory=$false)][ValidateNotNullOrEmpty()][string]$dest_dir = ".\..\dependencies"
)
$manifest_file = [System.IO.Path]::GetFullPath($manifest_file)
$dest_dir = [System.IO.Path]::GetFullPath($dest_dir)
#
# input validation
#
Write-Host "===Input validation==="
if (Test-Path $dest_dir){
Write-Host "Destination directory found"
} else {
Write-Host "Destination directory not found"
New-Item $dest_dir -itemtype directory | Out-Null
Write-Host "Created destination directory: " $dest_dir
}
# if -cache_dir is specified, use its value, otherwise check if an environment variable exists
if($cache_dir) {
Write-Host "Cache directory provided by parameter: $cache_dir"
} elseif ($env:DEPENDENCY_CACHE -and (Test-Path $env:DEPENDENCY_CACHE)) {
Write-Host "Found cache directory: " ($env:DEPENDENCY_CACHE)
$cache_dir = $env:DEPENDENCY_CACHE
} else {
$cache_dir = $dest_dir + "\arch"
Write-Host "Found no cache directory. Set it to default value: $cache_dir"
}
if(-Not (Test-Path $cache_dir)) {
New-Item $cache_dir -itemtype directory | Out-Null
Write-Host "Created archive directory in destination: " $cache_dir
}
Write-Host "All archives will be downloaded in " $cache_dir
Write-Host ""
Write-Host "Configure Web client"
# Base URL of dependency server is read in environment variable
$Script:dependency_server = $env:URL
$WebClient = New-Object System.Net.WebClient
if($env:PROXYPASS){
$Username, $Password = $env:PROXYPASS.split(':',2)
Write-Host "Credentials are provided. Try to download from server with username [$Username]."
$WebClient.Credentials = New-Object System.Net.Networkcredential($Username, $Password)
} else {
Write-Host "Credentials were not provided. If your dependencies are not up-to-date, you won't be able to download new files."
}
Write-Host ""
if ($env:ZIP_EXECUTABLE) {
$Script:7zip_executable=$env:ZIP_EXECUTABLE
} else {
Try {
$Script:7zip_executable=(Get-ItemProperty HKLM:\Software\7-Zip).Path + "\7z.exe"
} Catch {
Write-Host "7-Zip was not found in register keys. Install it will fasten unzip."
}
}
if ($Script:7zip_executable -and (Test-Path $Script:7zip_executable)) {
Write-Host "Found 7-Zip in registry keys. It will be used to unzip archives."
} else {
Write-Host "7-Zip was not found in register keys. Install it will quicken the unzipping."
$Script:7zip_executable=""
}
Write-Host "===Parameters==="
Write-Host "Dependencies file = $manifest_file"
Write-Host "Destination directory = $dest_dir"
Write-Host ""
#
# script variables
#
# monitoring variables
$Script:extract_count = 0
$Script:download_count = 0
$Script:new_versions = @{}
#
# script functions
#
function ExpandZipFile($zip, $dest)
{
Write-Host "Extract: [" $zip "] -> [" $dest "]"
$shell = New-Object -ComObject Shell.Application
if ([string]::IsNullOrEmpty($Script:7zip_executable)){
# create dest if it does not exists
if(-Not (Test-Path $dest)) {
New-Item $dest -itemtype directory | Out-Null
}
$folder = $shell.NameSpace("$zip")
# Progress based on count is pretty dumb. However
# the sizes retrieved by $folder.GetDetailsOf($item, 2)
# or $item.Size are unreliable. At least, it allows the script
# user to see something is going on.
$count = 0
$total_count = $folder.Items().Count
ForEach($item in $folder.Items()) {
$item_name = $folder.GetDetailsOf($item, 0)
$percent_complete = [System.Math]::Floor(100 * $count / $total_count)
Write-Progress `
-Status "Progress: $percent_complete%" `
-Activity ("Extracting " + (Split-Path -Leaf $zip) + " to " + (Split-Path -Leaf $dest)) `
-CurrentOperation "Copying $item_name (this can take a long time...)" `
-PercentComplete $percent_complete
# 0x14 = sum of options 4 (donnot display windows box) and 16 (answer yes to all)
$shell.Namespace("$dest").CopyHere($item, 0x14)
$count++
}
} else {
$7z_Arguments = @(
'x' ## extract files with full paths
'-y' ## assume Yes on all queries
$zip ## archive path
"`"-o$dest`"" ## dest path
)
& $7zip_executable $7z_Arguments
}
$Script:extract_count++
}
function InstallDeps($arch, $dir, $version)
{
$zip = $Script:cache_dir + "\" + $arch
if(-Not (Test-Path $zip)) {
if($Username -and $Script:dependency_server){
$url = $Script:dependency_server + "/" + $arch
} else {
Write-Error "- Credentials or $Script:dependency_server are not specified, can not download dependency. "
Write-Error "- They have to be set through environment variables: PROXYPASS and URL."
exit
}
Write-Host "Download: [" $url "] -> [" $zip "]."
$Script:WebClient.DownloadFile( $url, $zip )
$Script:download_count++
}
if(-Not (Test-Path $zip)) {
Write-Error "Archive [$zip] was not found in cache and could not be downloaded."
exit
}
if(Test-Path $dest_dir\$dir-version.txt) {
$old_dep_version=$(Get-Content $dest_dir\$dir-version.txt)
}
if((Test-Path ($Script:dest_dir + "\" + $dir)) -and ($old_dep_version -eq $version)) {
Write-Host "No need to unzip dependency. Already at the good version: " $old_dep_version "."
} else {
Write-Host "Dependency version is not the good one: [" $old_dep_version "]. Should be " $version
if((Test-Path ($Script:dest_dir + "\" + $dir)) -and (-Not $Script:new_versions.ContainsKey($dir))) {
Remove-item ($Script:dest_dir + "\" + $dir) -Force -Recurse
}
ExpandZipFile $zip ($Script:dest_dir + "\" + $dir)
}
# Add new version to table
if($Script:new_versions.ContainsKey($dir)) {
# If (during this install process) an archive was already extracted to this folder and its version is
# not the same as new version, we raise an error
if($Script:new_versions[$dir] -ne $version) {
Write-Error "- Several dependencies are extracted in the same folder with different versions.
You have to make sure that they carry the same version."
exit
}
} else {
$Script:new_versions.Add($dir, $version)
}
}
#
# core script
#
Write-Host ""
Write-Host "===Installing dependencies==="
$Script:timer = [System.Diagnostics.Stopwatch]::StartNew()
foreach ($dep in Get-Content $manifest_file) {
$arch, $dir, $version = $dep.split(';',3)
InstallDeps $arch $dir $version
}
$timer.Stop()
Write-Host "Write token version files, to quicken next dependencies "
foreach ($new_version in $Script:new_versions.GetEnumerator()) {
$new_version.Value > $dest_dir\$($new_version.Key)-version.txt
}
Write-Host ""
Write-Host "===Install Summary==="
Write-Host "State = Success"
Write-Host "Number of archives downloaded = $Script:download_count"
Write-Host "Number of archives extracted = $Script:extract_count"
Write-Host "Installation time = " $([string]::Format("{0:d2}h:{1:d2}mn:{2:d2}s", $timer.Elapsed.hours, $timer.Elapsed.minutes, $timer.Elapsed.seconds)) -nonewline
Write-Host ""
@@ -0,0 +1,131 @@
@echo off
REM setlocal EnableDelayedExpansion
REM setlocal enableextensions
set PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin;%PATH%
set "SCRIPT_PATH=%~dp0"
: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 ########################################################################################################################
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 #######################################################################################
:terminate
@@ -0,0 +1,24 @@
REM Install Designer dependencies
REM This script can be copied, renamed as `windows-install-dependencies-custom.cmd`
REM and updated with the right credentials in PROXYPASS, such as username:password
REM
@echo off
echo Install all dependencies
REM In order to download dependencies, PROXYPASS must be changed with appropriate credentials
REM set PROXYPASS=XXX:XXX
set URL=https://extranet.mensiatech.com/dependencies
if not exist "..\dependencies\arch\build\windows" ( mkdir "..\dependencies\arch\build\windows" )
if not exist "..\dependencies_x64\arch\build\windows" ( mkdir "..\dependencies_x64\arch\build\windows" )
REM Install build tools, CMake, Ninja, comment line if you already have an instance of CMake installed
powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-build-tools.txt
REM Install OV SDK and its dependencies - x64
powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-dependencies-sdk-x64.txt -dest_dir .\..\dependencies_x64
REM Install Designer dependencies - x64
powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-dependencies-x64.txt -dest_dir .\..\dependencies_x64
pause
@@ -0,0 +1,23 @@
REM Install Designer dependencies
REM This script can be copied, renamed as `windows-install-dependencies-custom.cmd`
REM and updated with the right credentials in PROXYPASS, such as username:password
REM
@echo off
echo Install all dependencies
REM In order to download dependencies, PROXYPASS must be changed with appropriate credentials
REM set PROXYPASS=XXX:XXX
set URL=https://extranet.mensiatech.com/dependencies
if not exist "..\dependencies\arch\build\windows" ( mkdir "..\dependencies\arch\build\windows" )
REM Install build tools specifically needed by Designer project
REM powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-build-tools.txt
REM Install OV SDK and its dependencies
powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-dependencies-sdk.txt
REM Install Designer dependencies
powershell.exe -NoProfile -ExecutionPolicy Bypass -file "windows-get-dependencies.ps1" -manifest_file .\windows-dependencies.txt
pause
@@ -0,0 +1,3 @@
@echo off
call windows-launch-visual-studio.cmd --debug %*
@@ -0,0 +1,69 @@
@echo off
setlocal EnableDelayedExpansion
setlocal enableextensions
set script_dir=%CD%
set PathSDK="%script_dir%\..\dependencies\openvibe-sdk-release"
set VerboseOuptut=OFF
set PlatformTarget=x86
set PATH_DEPENDENCIES=
set BuildType=Release
goto parameter_parse
:print_help
echo Usage: windows-launch-visual-studio.cmd [--debug] [--sdk ^<path to openvibe SDK^>] [--dependencies-dir ^<path to dependencies^>]
exit /b
:parameter_parse
if /i "%1" == "--dependencies-dir" (
set "PATH_DEPENDENCIES=%2"
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1"=="--debug" (
set BuildType=Debug
set PathSDK="%script_dir%\..\dependencies\openvibe-sdk-debug"
SHIFT
) else if /i "%1"=="--sdk" (
set PathSDK=%2
SHIFT
SHIFT
Goto parameter_parse
) else if /i "%1" == "--platform-target" (
if "%2"=="x64" (
set PlatformTarget=%2
SHIFT
SHIFT
Goto parameter_parse
)
)
call "windows-initialize-environment.cmd" --platform-target %PlatformTarget%
SET "OV_PATH_ROOT=%CD%\..\..\openvibe-designer-build\dist\%BuildType%-%PlatformTarget%"
SET "PATH=%OV_PATH_ROOT%\bin;%PATH%"
REM for visual studio express...
if not defined USE_EXPRESS (
SET USE_EXPRESS=1
)
set SolutionPath=%CD%\..\..\openvibe-designer-build\vs-project-%PlatformTarget%\Designer.sln
if %USE_EXPRESS% == 1 (
echo Use %VSCMake% Express Edition
if "%VSCMake%"=="Visual Studio 12" (
start /b "%VSINSTALLDIR%\Common7\IDE\WDExpress.exe" %SolutionPath%
) else (
"%VSINSTALLDIR%\Common7\IDE\VCExpress.exe" %SolutionPath%
)
) else (
echo Use %VSCMake% Community Edition
"%VSINSTALLDIR%\Common7\IDE\devenv.exe" %SolutionPath%
)
@@ -0,0 +1,5 @@
set PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin;%PATH%
set "SCRIPT_PATH=%~dp0"
set "PATH_DEPENDENCIES=@ABSOLUTE_PATH_DEPENDENCIES@"
set PATH=%PATH_DEPENDENCIES%\gtk\bin;%PATH%