diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..1efddc5 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,134 @@ +platform: x64 +environment: + matrix: + - DC: dmd + DVersion: beta + arch: x64 + - DC: dmd + DVersion: beta + arch: x86 + - DC: dmd + DVersion: stable + arch: x64 + - DC: dmd + DVersion: stable + arch: x86 + #- DC: ldc + #DVersion: beta + #arch: x86 + - DC: ldc + DVersion: beta + arch: x64 + #- DC: ldc + #DVersion: stable + #arch: x86 + - DC: ldc + DVersion: stable + arch: x64 + +skip_tags: false +branches: + only: + - master + +init: + - git config --global core.autocrlf true + +install: + - ps: function ResolveLatestDMD + { + $version = $env:DVersion; + if($version -eq "stable") { + $latest = (Invoke-WebRequest "http://downloads.dlang.org/releases/LATEST").toString(); + $url = "http://downloads.dlang.org/releases/2.x/$($latest)/dmd.$($latest).windows.7z"; + }elseif($version -eq "beta") { + $latest = (Invoke-WebRequest "http://downloads.dlang.org/pre-releases/LATEST").toString(); + $latestVersion = $latest.split("-")[0].split("~")[0]; + $url = "http://downloads.dlang.org/pre-releases/2.x/$($latestVersion)/dmd.$($latest).windows.7z"; + }elseif($version -eq "nightly") { + $url = "http://nightlies.dlang.org/dmd-master-2017-05-20/dmd.master.windows.7z" + }else { + $url = "http://downloads.dlang.org/releases/2.x/$($version)/dmd.$($version).windows.7z"; + } + $env:PATH += ";C:\dmd2\windows\bin;"; + return $url; + } + - ps: function ResolveLatestLDC + { + $version = $env:DVersion; + if($version -eq "stable") { + $latest = (Invoke-WebRequest "https://ldc-developers.github.io/LATEST").toString().replace("`n","").replace("`r",""); + $url = "https://github.com/ldc-developers/ldc/releases/download/v$($latest)/ldc2-$($latest)-windows-x64.7z"; + }elseif($version -eq "beta") { + $latest = (Invoke-WebRequest "https://ldc-developers.github.io/LATEST_BETA").toString().replace("`n","").replace("`r",""); + $url = "https://github.com/ldc-developers/ldc/releases/download/v$($latest)/ldc2-$($latest)-windows-x64.7z"; + } else { + $latest = $version; + $url = "https://github.com/ldc-developers/ldc/releases/download/v$($version)/ldc2-$($version)-win64-msvc.zip"; + } + $env:PATH += ";C:\ldc2-$($latest)-windows-x64\bin"; + $env:DC = "ldc2"; + return $url; + } + - ps: function SetUpDCompiler + { + $env:toolchain = "msvc"; + if($env:DC -eq "dmd"){ + echo "downloading ..."; + $url = ResolveLatestDMD; + echo $url; + Invoke-WebRequest $url -OutFile "c:\dmd.7z"; + echo "finished."; + pushd c:\\; + 7z x dmd.7z > $null; + popd; + } + elseif($env:DC -eq "ldc"){ + echo "downloading ..."; + $url = ResolveLatestLDC; + echo $url; + Invoke-WebRequest $url -OutFile "c:\ldc.7z"; + echo "finished."; + pushd c:\\; + 7z x ldc.7z > $null; + popd; + } + } + - ps: SetUpDCompiler + +build_script: + - ps: if($env:arch -eq "x86"){ + $env:compilersetupargs = "x86"; + $env:Darch = "x86"; + $env:DConf = "m32"; + }elseif($env:arch -eq "x64"){ + $env:compilersetupargs = "amd64"; + $env:Darch = "x86_64"; + $env:DConf = "m64"; + } + - ps: $env:compilersetup = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall"; + - '"%compilersetup%" %compilersetupargs%' + +test_script: + - echo %PLATFORM% + - echo %Darch% + - echo %DC% + - echo %PATH% + - '%DC% --version' + - dub test --arch=%Darch% --compiler=%DC% + - git submodule update --init --recursive + - build.bat test + - build.bat + +deploy: + release: dscanner-v$(appveyor_build_version) + description: 'DScanner release' + provider: GitHub + auth_token: + secure: FhQH4pdE0v2jKANNhX5wlm1oKBfizXyArWUskWfL/bmxaTaLjeyduTzotBTzNQ4p + artifact: bin\dscanner.exe # upload D-Scanner binary + draft: false + prerelease: true + on: + branch: master # release from master branch only + appveyor_repo_tag: true # deploy on tag push only diff --git a/build.bat b/build.bat index 04a988b..4d35502 100644 --- a/build.bat +++ b/build.bat @@ -1,44 +1,47 @@ -@echo off -setlocal enabledelayedexpansion - -set DFLAGS=-O -release -inline -version=StdLoggerDisableWarning -set TESTFLAGS=-g -w -version=StdLoggerDisableWarning -set CORE= -set LIBDPARSE= -set STD= -set ANALYSIS= -set INIFILED= -set DSYMBOL= -set CONTAINERS= -set LIBDDOC= - -for %%x in (src\*.d) do set CORE=!CORE! %%x -for %%x in (src\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 (inifiled\source\*.d) do set INIFILED=!INIFILED! %%x -for %%x in (dsymbol\src\dsymbol\*.d) do set DSYMBOL=!DSYMBOL! %%x -for %%x in (dsymbol\src\dsymbol\builtin\*.d) do set DSYMBOL=!DSYMBOL! %%x -for %%x in (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 -dmd %CORE% %STD% %LIBDPARSE% %LIBDDOC% %ANALYSIS% %INIFILED% %DSYMBOL% %CONTAINERS% %DFLAGS% -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -ofbin\dscanner.exe -goto eof - -:test_cmd -@echo on -set TESTNAME="bin\dscanner-unittest" -dmd %STD% %LIBDPARSE% %LIBDDOC% %INIFILED% %DSYMBOL% %CONTAINERS% -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -lib %TESTFLAGS% -of%TESTNAME%.lib -if exist %TESTNAME%.lib dmd %CORE% %ANALYSIS% %TESTNAME%.lib -I"src" -I"inifiled\source" -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -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 +@echo off +setlocal enabledelayedexpansion + +if "%DC%"=="" set DC="dmd" +if "%DC%"=="ldc2" set DC="ldmd2" + +set DFLAGS=-O -release -inline -version=StdLoggerDisableWarning +set TESTFLAGS=-g -w -version=StdLoggerDisableWarning +set CORE= +set LIBDPARSE= +set STD= +set ANALYSIS= +set INIFILED= +set DSYMBOL= +set CONTAINERS= +set LIBDDOC= + +for %%x in (src\*.d) do set CORE=!CORE! %%x +for %%x in (src\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 (inifiled\source\*.d) do set INIFILED=!INIFILED! %%x +for %%x in (dsymbol\src\dsymbol\*.d) do set DSYMBOL=!DSYMBOL! %%x +for %%x in (dsymbol\src\dsymbol\builtin\*.d) do set DSYMBOL=!DSYMBOL! %%x +for %%x in (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% %CORE% %STD% %LIBDPARSE% %LIBDDOC% %ANALYSIS% %INIFILED% %DSYMBOL% %CONTAINERS% %DFLAGS% -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -ofbin\dscanner.exe +goto eof + +:test_cmd +@echo on +set TESTNAME="bin\dscanner-unittest" +%DC% %STD% %LIBDPARSE% %LIBDDOC% %INIFILED% %DSYMBOL% %CONTAINERS% -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -lib %TESTFLAGS% -of%TESTNAME%.lib +if exist %TESTNAME%.lib %DC% %CORE% %ANALYSIS% %TESTNAME%.lib -I"src" -I"inifiled\source" -I"libdparse\src" -I"dsymbol\src" -I"containers\src" -I"libddoc\src" -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 diff --git a/dub.json b/dub.json index 173026c..f41836b 100644 --- a/dub.json +++ b/dub.json @@ -12,7 +12,7 @@ "StdLoggerDisableWarning" ], "dependencies" : { - "libdparse" : "~>0.7.2-alpha.3", + "libdparse" : "~>0.7.2-alpha.5", "dsymbol" : "~>0.2.9", "inifiled" : ">=1.0.2", "emsi_containers" : "~>0.5.3", diff --git a/libdparse b/libdparse index eb2f43c..1b0df8c 160000 --- a/libdparse +++ b/libdparse @@ -1 +1 @@ -Subproject commit eb2f43cd0aca1b5185d907b3558d73d48eb005be +Subproject commit 1b0df8cb838adfb73889faaea524d6d6a473a5df diff --git a/src/outliner.d b/src/outliner.d index 7aa9525..8233b6d 100644 --- a/src/outliner.d +++ b/src/outliner.d @@ -13,6 +13,8 @@ import std.conv; class Outliner : ASTVisitor { + alias visit = ASTVisitor.visit; + this(File output) { this.output = output; @@ -172,7 +174,5 @@ private: int indentLevel; - alias visit = ASTVisitor.visit; - File output; }