diff --git a/ubuntu18.04/base/profile.sh b/ubuntu18.04/base/profile.sh index c43e018ffa16d787edc37a8dee04a0c6710243dc..d10a25e634e1b84608e52f21fad4feb22fef269c 100644 --- a/ubuntu18.04/base/profile.sh +++ b/ubuntu18.04/base/profile.sh @@ -7,8 +7,18 @@ function gitlab-trigger-pipeline { curl --request POST --form "token=$2" --form "ref=$3" "https://git.imp.fu-berlin.de/api/v4/projects/$1/trigger/pipeline" } -function cmake-integrate-package { +function cmake-extract-package { 7z e $1-*.tar.xz; rm $1-*.tar.xz 7z x $1-*.tar; rm $1-*.tar - ln -s $(realpath $1-*) /usr/local/$1 + mkdir -p vendor + mv $1-* vendor/$1 +} + +function cmake-enable-package-discovery { + ln -s $(realpath vendor/$1) /usr/local/$1 +} + +function cmake-integrate-package { + cmake-extract-package $1 + cmake-enable-package-discovery $1 } diff --git a/windows/base/Profile.ps1 b/windows/base/Profile.ps1 index ed9d87135e223e5d502163cd7b59f0fcc1d117ff..670db7e96348530fa03cb36019a0276fe22255d9 100644 --- a/windows/base/Profile.ps1 +++ b/windows/base/Profile.ps1 @@ -36,22 +36,29 @@ function GitLab-Fetch-Artifacts { } # -# Sets up a CMake package for find_package from a tarball without copying +# Unpacks a CMake package from its tarball into the vendor directory # -function CMake-Integrate-Package { +function CMake-Extract-Package { $name = $args[0] 7z e $name-*.tar.xz; Remove-Item -Force $name-*.tar.xz 7z x $name-*.tar; Remove-Item -Force $name-*.tar - [Environment]::SetEnvironmentVariable("${name}_ROOT", "$(resolve-path $name-*)") + New-Item -ItemType Directory -Force 'vendor' + Move-Item $name-* vendor/$name } # -# Sets up a CMake package for find_package from a tarball +# Enable discovery of a CMake package in the vendor directory via find_package # -function CMake-Install-Package { +function CMake-Enable-Package-Discovery { $name = $args[0] - 7z e $name-*.tar.xz; Remove-Item -Force $name-*.tar.xz - 7z x $name-*.tar; Remove-Item -Force $name-*.tar - Copy-Item -Recurse $name-* "C:/Program Files/" - Remove-Item -Recurse -Force $name-* + & cmd.exe /c mklink /J "C:/Program Files/$name" "$(resolve-path vendor/$name)" +} + +# +# Sets up a tarballed CMake package for find_package discovery +# +function CMake-Integrate-Package { + $name = $args[0] + CMake-Extract-Package $name + CMake-Enable-Package-Discovery $name }