early-access version 2853
This commit is contained in:
40
externals/vcpkg/ports/magnum/magnumdeploy.ps1
vendored
Executable file
40
externals/vcpkg/ports/magnum/magnumdeploy.ps1
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
# Magnum's plugin deployment strategy is that each Magnum module has a hardcoded
|
||||
# set of plugin directories. Each of these directories is deployed in
|
||||
# full if that Module is referenced.
|
||||
#
|
||||
# Note: this function signature and behavior is depended upon by applocal.ps1
|
||||
function deployPluginsIfMagnum([string]$targetBinaryDir, [string]$MagnumPluginsDir, [string]$targetBinaryName) {
|
||||
Write-Verbose "Deploying magnum plugins"
|
||||
|
||||
$baseDir = Split-Path $MagnumPluginsDir -parent
|
||||
$pluginsBase = Split-Path $MagnumPluginsDir -Leaf
|
||||
$binDir = "$baseDir\bin"
|
||||
|
||||
function deployPlugins([string]$pluginSubdirName) {
|
||||
if (Test-Path "$MagnumPluginsDir\$pluginSubdirName") {
|
||||
Write-Verbose " Deploying plugins directory '$pluginSubdirName'"
|
||||
New-Item "$targetBinaryDir\$pluginsBase\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
|
||||
Get-ChildItem -Path "$MagnumPluginsDir\$pluginSubdirName\*" -Include "*.dll", "*.conf", "*.pdb" | % {
|
||||
deployBinary "$targetBinaryDir\$pluginsBase\$pluginSubdirName" "$MagnumPluginsDir\$pluginSubdirName" $_.Name
|
||||
resolve $_
|
||||
}
|
||||
} else {
|
||||
Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist"
|
||||
}
|
||||
}
|
||||
|
||||
# We detect Magnum modules in use via the DLLs that contain their
|
||||
# plugin interfaces.
|
||||
if ($targetBinaryName -like "MagnumAudio.dll" -or $targetBinaryName -like "MagnumAudio-d.dll") {
|
||||
deployPlugins "audioimporters"
|
||||
} elseif ($targetBinaryName -like "MagnumText.dll" -or $targetBinaryName -like "MagnumText-d.dll") {
|
||||
deployPlugins "fonts"
|
||||
deployPlugins "fontconverters"
|
||||
} elseif ($targetBinaryName -like "MagnumTrade.dll" -or $targetBinaryName -like "MagnumTrade-d.dll") {
|
||||
deployPlugins "importers"
|
||||
deployPlugins "imageconverters"
|
||||
deployPlugins "sceneconverters"
|
||||
} elseif ($targetBinaryName -like "MagnumShaderTools.dll" -or $targetBinaryName -like "MagnumShaderTools-d.dll") {
|
||||
deployPlugins "shaderconverters"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user