149 lines
4.3 KiB
Batchfile
149 lines
4.3 KiB
Batchfile
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
if "%DC%"=="" set DC="dmd"
|
|
if "%DC%"=="ldc2" set DC="ldmd2"
|
|
if "%MFLAGS%"=="" set MFLAGS="-m32"
|
|
|
|
:: git might not be installed, so we provide 0.0.0 as a fallback or use
|
|
:: the existing githash file if existent
|
|
if not exist "bin" mkdir bin
|
|
git describe --tags > bin\githash_.txt
|
|
for /f %%i in ("bin\githash_.txt") do set githashsize=%%~zi
|
|
if %githashsize% == 0 (
|
|
if not exist "bin\githash.txt" (
|
|
echo v0.0.0 > bin\githash.txt
|
|
)
|
|
) else (
|
|
move /y bin\githash_.txt bin\githash.txt
|
|
)
|
|
|
|
set DFLAGS=-O -release -version=StdLoggerDisableWarning -version=CallbackAPI -version=DMDLIB -version=MARS -version=NoBackend -version=NoMain -Jbin -Jdmd -Jdmd\compiler\src\dmd\res %MFLAGS%
|
|
set TESTFLAGS=-g -w -version=StdLoggerDisableWarning -version=CallbackAPI -version=DMDLIB -version=MARS -version=NoBackend -version=NoMain -Jbin -Jdmd -Jdmd\compiler\src\dmd\res
|
|
set CORE=
|
|
set LIBDPARSE=
|
|
set STD=
|
|
set ANALYSIS=
|
|
set INIFILED=
|
|
set DSYMBOL=
|
|
set CONTAINERS=
|
|
set LIBDDOC=
|
|
|
|
set DMD_FRONTEND_DENYLIST=^
|
|
dmd\compiler\src\dmd\mars.d^
|
|
dmd\compiler\src\dmd\dmsc.d^
|
|
dmd\compiler\src\dmd\e2ir.d^
|
|
dmd\compiler\src\dmd\eh.d^
|
|
dmd\compiler\src\dmd\glue.d^
|
|
dmd\compiler\src\dmd\iasmdmd.d^
|
|
dmd\compiler\src\dmd\irstate.d^
|
|
dmd\compiler\src\dmd\lib.d^
|
|
dmd\compiler\src\dmd\libelf.d^
|
|
dmd\compiler\src\dmd\libmach.d^
|
|
dmd\compiler\src\dmd\libmscoff.d^
|
|
dmd\compiler\src\dmd\libomf.d^
|
|
dmd\compiler\src\dmd\objc_glue.d^
|
|
dmd\compiler\src\dmd\s2ir.d^
|
|
dmd\compiler\src\dmd\scanelf.d^
|
|
dmd\compiler\src\dmd\scanmach.d^
|
|
dmd\compiler\src\dmd\scanmscoff.d^
|
|
dmd\compiler\src\dmd\scanomf.d^
|
|
dmd\compiler\src\dmd\tocsym.d^
|
|
dmd\compiler\src\dmd\toctype.d^
|
|
dmd\compiler\src\dmd\tocvdebug.d^
|
|
dmd\compiler\src\dmd\toobj.d^
|
|
dmd\compiler\src\dmd\todt.d^
|
|
dmd\compiler\src\dmd\toir.d
|
|
|
|
set DMD_FRONTEND_SRC=
|
|
for %%x in (dmd\compiler\src\dmd\common\*.d) do set DMD_FRONTEND_SRC=!DMD_FRONTEND_SRC! %%x
|
|
for %%x in (dmd\compiler\src\dmd\root\*.d) do set DMD_FRONTEND_SRC=!DMD_FRONTEND_SRC! %%x
|
|
for %%x in (dmd\compiler\src\dmd\visitor\*.d) do set DMD_FRONTEND_SRC=!DMD_FRONTEND_SRC! %%x
|
|
for %%x in (dmd\compiler\src\dmd\mangle\*.d) do set DMD_FRONTEND_SRC=!DMD_FRONTEND_SRC! %%x
|
|
for %%x in (dmd\compiler\src\dmd\*.d) do (
|
|
echo "%DMD_FRONTEND_DENYLIST%" | findstr /i /c:"%%x" >nul
|
|
if errorlevel 1 (
|
|
set "DMD_FRONTEND_SRC=!DMD_FRONTEND_SRC! %%x"
|
|
)
|
|
)
|
|
|
|
for %%x in (src\dscanner\*.d) do set CORE=!CORE! %%x
|
|
for %%x in (src\dscanner\analysis\*.d) do set ANALYSIS=!ANALYSIS! %%x
|
|
for %%x in (libdparse\src\dparse\*.d) do set LIBDPARSE=!LIBDPARSE! %%x
|
|
for %%x in (libdparse\src\std\experimental\*.d) do set LIBDPARSE=!LIBDPARSE! %%x
|
|
for %%x in (libddoc\src\ddoc\*.d) do set LIBDDOC=!LIBDDOC! %%x
|
|
for %%x in (libddoc\common\source\ddoc\*.d) do set LIBDDOC=!LIBDDOC! %%x
|
|
for %%x in (inifiled\source\*.d) do set INIFILED=!INIFILED! %%x
|
|
for %%x in (DCD\dsymbol\src\dsymbol\*.d) do set DSYMBOL=!DSYMBOL! %%x
|
|
for %%x in (DCD\dsymbol\src\dsymbol\builtin\*.d) do set DSYMBOL=!DSYMBOL! %%x
|
|
for %%x in (DCD\dsymbol\src\dsymbol\conversion\*.d) do set DSYMBOL=!DSYMBOL! %%x
|
|
for %%x in (containers\src\containers\*.d) do set CONTAINERS=!CONTAINERS! %%x
|
|
for %%x in (containers\src\containers\internal\*.d) do set CONTAINERS=!CONTAINERS! %%x
|
|
|
|
if "%1" == "test" goto test_cmd
|
|
|
|
@echo on
|
|
%DC% %MFLAGS%^
|
|
%CORE%^
|
|
%STD%^
|
|
%LIBDPARSE%^
|
|
%LIBDDOC%^
|
|
%ANALYSIS%^
|
|
%INIFILED%^
|
|
%DSYMBOL%^
|
|
%CONTAINERS%^
|
|
%DMD_FRONTEND_SRC%^
|
|
%DFLAGS%^
|
|
-Ilibdparse\src^
|
|
-IDCD\dsymbol\src^
|
|
-Icontainers\src^
|
|
-Ilibddoc\src^
|
|
-Ilibddoc\common\source^
|
|
-Idmd\compiler\src^
|
|
-ofbin\dscanner.exe
|
|
goto eof
|
|
|
|
:test_cmd
|
|
@echo on
|
|
set TESTNAME="bin\dscanner-unittest"
|
|
%DC% %MFLAGS% ^
|
|
%STD%^
|
|
%LIBDPARSE%^
|
|
%LIBDDOC%^
|
|
%INIFILED%^
|
|
%DSYMBOL%^
|
|
%CONTAINERS%^
|
|
%DMD_FRONTEND_SRC%^
|
|
-I"libdparse\src"^
|
|
-I"DCD\dsymbol\src"^
|
|
-I"containers\src"^
|
|
-I"libddoc\src"^
|
|
-I"dmd\compiler\src"^
|
|
-I"dmd\compiler\src\dmd\res"^
|
|
%TESTFLAGS%^
|
|
-lib^
|
|
-of%TESTNAME%.lib
|
|
if exist %TESTNAME%.lib %DC% %MFLAGS%^
|
|
%CORE%^
|
|
%ANALYSIS%^
|
|
%TESTNAME%.lib^
|
|
-I"src"^
|
|
-I"inifiled\source"^
|
|
-I"libdparse\src"^
|
|
-I"DCD\dsymbol\src"^
|
|
-I"containers\src"^
|
|
-I"libddoc\src"^
|
|
-I"libddoc\common\source"^
|
|
-I"dmd\compiler\src"^
|
|
-I"dmd\compiler\src\dmd\res"^
|
|
-unittest^
|
|
%TESTFLAGS%^
|
|
-of%TESTNAME%.exe
|
|
if exist %TESTNAME%.exe %TESTNAME%.exe
|
|
|
|
if exist %TESTNAME%.obj del %TESTNAME%.obj
|
|
if exist %TESTNAME%.lib del %TESTNAME%.lib
|
|
if exist %TESTNAME%.exe del %TESTNAME%.exe
|
|
|
|
:eof
|