-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathbuild.cmd
More file actions
89 lines (79 loc) · 5.54 KB
/
Copy pathbuild.cmd
File metadata and controls
89 lines (79 loc) · 5.54 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@echo off
REM Default to Release if no argument is provided
SET CONFIG=Release
IF NOT "%1"=="" (
IF /I "%1"=="debug" SET CONFIG=Debug
)
REM --- Locate MSBuild via vswhere (works for VS 2017-2026, all editions) ---
SET VSWHERE="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
IF NOT EXIST %VSWHERE% SET VSWHERE="%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
SET MSBUILD=
IF EXIST %VSWHERE% (
FOR /F "usebackq delims=" %%P IN (`%VSWHERE% -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) DO (
SET MSBUILD="%%P"
GOTO :msbuild_found
)
)
REM --- Hardcoded fallbacks if vswhere is unavailable ---
IF EXIST "C:\Program Files\Microsoft Visual Studio\2026\Enterprise\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2026\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2026\Professional\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2026\Professional\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2026\Community\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2026\Community\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2026\BuildTools\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2026\BuildTools\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"
IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe" SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe"
IF "%MSBUILD%"=="" (
echo MSBuild not found! Please install Visual Studio 2017 or later.
exit /b 1
)
:msbuild_found
REM --- Load key from .env file (primary source) ---
SET KEY=
IF EXIST "%~dp0.env" (
FOR /F "usebackq tokens=1,* delims==" %%A IN ("%~dp0.env") DO (
IF /I "%%A"=="API_KEY" SET KEY=%%B
)
)
REM --- Fall back to environment variable if _env didn't supply it ---
IF "%KEY%"=="" SET KEY=%API_KEY%
REM --- Allow explicit override via second argument: build.cmd [config] [key] ---
IF NOT "%2"=="" SET KEY=%2
REM --- Generate Properties\ApiKey.cs with the embedded key ---
SET APIKEY_FILE=%~dp0Properties\ApiKey.cs
IF "%KEY%"=="" (
echo WARNING: No API_KEY found. Public mirror will not work.
(
echo // AUTO-GENERATED BY build.cmd - DO NOT COMMIT
echo using System.Reflection;
echo [assembly: AssemblyMetadata^("API_KEY", ""^)]
) > "%APIKEY_FILE%"
) ELSE (
echo Embedding API_KEY into build...
(
echo // AUTO-GENERATED BY build.cmd - DO NOT COMMIT
echo using System.Reflection;
echo [assembly: AssemblyMetadata^("API_KEY", "%KEY%"^)]
) > "%APIKEY_FILE%"
)
echo Building in %CONFIG% configuration...
%MSBUILD% AndroidSideloader.sln /t:AndroidSideloader /p:Configuration=%CONFIG%
IF %ERRORLEVEL% NEQ 0 (
echo Build FAILED.
exit /b %ERRORLEVEL%
)
REM --- Scrub the key from disk after a successful build ---
(
echo // AUTO-GENERATED BY build.cmd - DO NOT COMMIT
echo using System.Reflection;
echo [assembly: AssemblyMetadata^("API_KEY", ""^)]
) > "%APIKEY_FILE%"
echo Build complete. ApiKey.cs scrubbed.