forked from 71/scoop-better-shimexe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.ps1
40 lines (29 loc) · 944 Bytes
/
build.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Param(
[string]$Icon
)
$VSWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$vspath = & $VSWhere -prerelease -latest -property installationPath -products *
$vsdevcmd = "$vspath\Common7\Tools\vsdevcmd.bat"
$vsarch = "x64"
$vshostarch = "x64"
& "${env:COMSPEC}" /s /c "`"$vsdevcmd`" -arch=$vsarch -host_arch=$vshostarch -no_logo && set" | foreach-object {
$name, $value = $_ -split '=', 2
set-content env:\"$name" $value
}
$source = @("shim.c")
Push-Location
cd $PSScriptRoot
if(![string]::IsNullOrEmpty($Icon)) {
$IconPath = (Get-Item $Icon).FullName -replace "\\", "\\"
$res = @"
#ifndef _resource_rc
#define _resource_rc
MAINICON ICON "$IconPath"
#endif // _resource_rc
"@
[System.IO.File]::WriteAllLines((Join-Path $PSScriptRoot "resource.rc"), $res);
rc.exe resource.rc
$source += @("resource.res")
}
cl /O1 @source
Pop-Location