Repository navigation
Expand file tree
/
Copy pathbuild_exe.bat
More file actions
92 lines (83 loc) · 3.76 KB
/
Copy pathbuild_exe.bat
File metadata and controls
92 lines (83 loc) · 3.76 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
90
91
92
@echo off
setlocal EnableExtensions EnableDelayedExpansion
cd /d "%~dp0"
python --version >nul 2>&1
if errorlevel 1 (
echo [FEHLER] Python nicht gefunden!
pause
exit /b 1
)
set "PROJECT_ROOT=%CD%"
set "PYTHONPATH=%PROJECT_ROOT%\src"
set "PYGAME_HIDE_SUPPORT_PROMPT=1"
REM _tools liegt im .SOFTWARE-Root; CCC liegt dort 2 Ebenen darunter (CODING\DEV_...).
REM Nach Plan D lebt das Repo aber unter C:\_Local_DEV\repos\ - dann greift der
REM relative Pfad ins Leere. Fallback auf den .SOFTWARE-Root, danach fail-loud:
REM ohne Scanner gaebe es still leere Excludes und damit eine aufgeblaehte EXE.
set "SCANNER=%PROJECT_ROOT%\..\..\_tools\build_exclude_scanner.py"
if not exist "%SCANNER%" set "SCANNER=%USERPROFILE%\OneDrive\.TOPICS\.SOFTWARE\_tools\build_exclude_scanner.py"
if not exist "%SCANNER%" (
echo [FEHLER] build_exclude_scanner.py nicht gefunden - Pflicht laut .SOFTWARE\BUILD-VERFAHREN.md.
pause
exit /b 1
)
if not defined CARECENTER_DIST_DIR set "CARECENTER_DIST_DIR=C:\_Local_DEV\codex-maintenance\bin"
if not defined CARECENTER_BUILD_ROOT set "CARECENTER_BUILD_ROOT=C:\_Local_DEV\codex_build\codex-logwartung"
set "DIST_DIR=%CARECENTER_DIST_DIR%"
set "WORK_DIR=%CARECENTER_BUILD_ROOT%\work"
set "SPEC_DIR=%CARECENTER_BUILD_ROOT%\spec"
set "BUILD_VENV=C:\_Local_DEV\codex_build\codex-logwartung-venv"
set "BUILD_PY=%BUILD_VENV%\Scripts\python.exe"
set "PROVENANCE_JSON=%SPEC_DIR%\carecenter_build_provenance.json"
set "VERSION_FILE=%SPEC_DIR%\carecenter_version_info.txt"
if not exist "%BUILD_PY%" (
echo [build] Erstelle Build-venv: %BUILD_VENV%
python -m venv "%BUILD_VENV%"
if errorlevel 1 pause & exit /b 1
)
set "PATH=%BUILD_VENV%\Scripts;%PATH%"
python -m pip install --upgrade pip
if errorlevel 1 pause & exit /b 1
if defined CARECENTER_SAFE_START_SOURCE (
if exist "%CARECENTER_SAFE_START_SOURCE%\pyproject.toml" (
echo [build] Installiere Safe Start aus Override-Quelle: %CARECENTER_SAFE_START_SOURCE%
python -m pip install --upgrade "%CARECENTER_SAFE_START_SOURCE%"
if errorlevel 1 pause & exit /b 1
) else (
echo [build] WARNUNG: CARECENTER_SAFE_START_SOURCE zeigt nicht auf eine lokale Quelle mit pyproject.toml.
pause
exit /b 1
)
)
if not defined CARECENTER_SAFE_START_SOURCE (
echo [build] Nutze die commit-gepinnte Safe-Start-GitHub-Quelle aus pyproject.toml.
)
python -m pip install --upgrade -e ".[build]"
if errorlevel 1 pause & exit /b 1
python -m compileall -q src tests
if errorlevel 1 pause & exit /b 1
REM Keep the build isolated from unrelated projects that may be present in the parent shell.
set "PYTHONPATH=%PROJECT_ROOT%\src"
python "%PROJECT_ROOT%\scripts\build_provenance.py" prepare --project-root "%PROJECT_ROOT%" --output-dir "%SPEC_DIR%"
if errorlevel 1 pause & exit /b 1
REM --- PFLICHT (.SOFTWARE\BUILD-VERFAHREN.md): Auto-Excludes gegen Schwergewichte ---
set "EXCLUDES="
for /f "delims=" %%E in ('python "%SCANNER%" --project "%PROJECT_ROOT%" --emit pyinstaller') do set "EXCLUDES=%%E"
echo [build] Auto-Excludes: !EXCLUDES!
python -m PyInstaller --noconfirm --clean --onefile --windowed ^
--name CareCenterForCodex ^
--icon "%PROJECT_ROOT%\CareCenterForCodex.ico" ^
--add-data "%PROJECT_ROOT%\CareCenterForCodex.ico;." ^
--add-data "%PROVENANCE_JSON%;." ^
--version-file "%VERSION_FILE%" ^
--hidden-import safe_start_for_codex.cli ^
--paths "%PROJECT_ROOT%\src" ^
%EXCLUDES% ^
--distpath "%DIST_DIR%" ^
--workpath "%WORK_DIR%" ^
--specpath "%SPEC_DIR%" ^
"%PROJECT_ROOT%\src\codex_logdatenbank_wartung\tray_app.py"
if errorlevel 1 pause & exit /b 1
python "%PROJECT_ROOT%\scripts\build_provenance.py" finalize --metadata "%PROVENANCE_JSON%" --exe "%DIST_DIR%\CareCenterForCodex.exe"
if errorlevel 1 pause & exit /b 1
echo EXE erstellt: %DIST_DIR%\CareCenterForCodex.exe