From e61021d95d782e41353f7057b867635927b609e7 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sun, 16 Nov 2025 14:06:10 +0100 Subject: [PATCH 01/18] build against Windows SDK 10.0.26100.0 build release more quietly --- Makefile | 48 +++++++-------- VERSION | 2 +- build/build.visualdproj | 16 ++--- build/sdk.bat | 12 +++- c2d/c2d.visualdproj | 8 +-- c2d/idl2d.d | 49 +++++++++++++++ c2d/vsi2d.visualdproj | 15 ++++- sdk/vsi.visualdproj | 2 + visuald_vs10.sln | 132 ++++++++++++++-------------------------- 9 files changed, 154 insertions(+), 130 deletions(-) diff --git a/Makefile b/Makefile index 2386ccf5..e83db625 100644 --- a/Makefile +++ b/Makefile @@ -59,16 +59,16 @@ prerequisites: devenv /Project "build" /Build "$(CONFIG)|Win32" visuald_vs10.sln visuald_vs: - devenv /Project "visuald" /Build "$(CONFIG)|Win32" visuald_vs10.sln + devenv /Project "VisualD" /Build "$(CONFIG)|Win32" visuald_vs10.sln visuald_vs_x64: - devenv /Project "visuald" /Build "$(CONFIG_X64)|x64" visuald_vs10.sln + devenv /Project "VisualD" /Build "$(CONFIG_X64)|x64" visuald_vs10.sln visuald_vs_arm64: - devenv /Project "visuald" /Build "$(CONFIG_ARM64)|x64" visuald_vs10.sln + devenv /Project "VisualD" /Build "$(CONFIG_ARM64)|x64" visuald_vs10.sln visuald_test: - devenv /Project "visuald" /Build "TestDebug|Win32" visuald_vs10.sln + devenv /Project "VisualD" /Build "TestDebug|Win32" visuald_vs10.sln bin\TestDebug\VisualD\VisualD.exe vdserver: @@ -202,25 +202,25 @@ mago: cd ..\..\mago && devenv /Build "Release StaticDE|Win32" /Project "MagoNatCC" magodbg_2010.sln mago_vs15: - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v141 /target:DebugEngine\MagoRemote MagoDbg_2010.sln - cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v141" /target:Expression\MagoNatCC MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v141 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v141" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln mago_vs16: - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v142 /target:DebugEngine\MagoRemote MagoDbg_2010.sln - cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v142" /target:Expression\MagoNatCC MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v142 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v142" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln mago_vs17: - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /target:DebugEngine\MagoNatDE MagoDbg_2010.sln - cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoRemote MagoDbg_2010.sln - cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln magocc_x64: - cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln magocc_arm64: - cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=ARM64;PlatformToolset=v143" /target:Expression\MagoNatCC MagoDbg_2010.sln + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=ARM64;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln magogc: cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoGC" magodbg_2010.sln @@ -236,19 +236,19 @@ cv2pdb: cd ..\..\cv2pdb\trunk && devenv /Project "dumplines" /Build "Release|Win32" src\cv2pdb_vs12.sln cv2pdb_vs15: - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\cv2pdb.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\dviewhelper\dviewhelper.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 src\dumplines.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\cv2pdb.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v141 /verbosity:quiet src\dumplines.vcxproj cv2pdb_vs16: - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\cv2pdb.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\dviewhelper\dviewhelper.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 src\dumplines.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\cv2pdb.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v142 /verbosity:quiet src\dumplines.vcxproj cv2pdb_vs17: - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\cv2pdb.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\dviewhelper\dviewhelper.vcxproj - cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 src\dumplines.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\cv2pdb.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\dviewhelper\dviewhelper.vcxproj + cd ..\..\cv2pdb\trunk && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /verbosity:quiet src\dumplines.vcxproj dcxxfilt: $(DCXXFILT_EXE) $(DCXXFILT_EXE): tools\dcxxfilt.d diff --git a/VERSION b/VERSION index 201d6cef..69aa6f3c 100644 --- a/VERSION +++ b/VERSION @@ -2,4 +2,4 @@ #define VERSION_MINOR 5 #define VERSION_REVISION 0 #define VERSION_BETA -beta -#define VERSION_BUILD 2 +#define VERSION_BUILD 3 diff --git a/build/build.visualdproj b/build/build.visualdproj index 50d73ce9..e7211bfb 100644 --- a/build/build.visualdproj +++ b/build/build.visualdproj @@ -860,7 +860,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -991,7 +991,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -1122,7 +1122,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName)\$(PlatformName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -1253,7 +1253,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName)\$(PlatformName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -1384,7 +1384,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -1515,7 +1515,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName)\$(PlatformName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -1777,7 +1777,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) @@ -2039,7 +2039,7 @@ echo Success >"$(TargetPath)" $(DMDInstallDir)windows\bin\dmd.exe - ..\bin\$(ConfigurationName)\$(PlatformName) + ..\bin\$(ConfigurationName)\x64 $(OutDir)\$(ProjectName) diff --git a/build/sdk.bat b/build/sdk.bat index db4be5fa..1e437c59 100644 --- a/build/sdk.bat +++ b/build/sdk.bat @@ -2,6 +2,7 @@ rem expecting rem - vsi2d.exe with path as the first argument rem - output file as second arg to remember build success +rem - output folder as optional third argument rem - WindowsSdkDir to be set set VSI2D=%~1 @@ -12,6 +13,9 @@ set OUT=%~2 if "%OUT%" == "" (echo Error: please specify the output path to remember succesful builds as second argument && exit /B 1) if exist "%OUT%" del "%OUT%" +set SDK=%~3 +if "%SDK%" == "" set SDK=..\sdk + if "%WindowsSdkDir%" == "" (echo Error: environment variable WindowsSdkDir not set && exit /B 1) set DTE_IDL_PATH=..\sdk\vsi\idl @@ -38,9 +42,13 @@ if "%VSISDKINC%" == "" (echo Error: could not detect the Visual Studio SDK && ex if not exist "%VSISDKINC%\VisualStudioIntegration\Common\Inc\textmgr.h" (echo unexpected Visual Studio SDK installation at "%VSISDKINC%" && exit /B 1) +if not exist "%SDK%" md "%SDK%" +if not exist "%SDK%\win32" md "%SDK%\win32" +if not exist "%SDK%\vsi" md "%SDK%\vsi" + echo Translating Windows SDK and Visual Studio SDK to D, this can take several minutes. Please be patient. -echo "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk -"%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk=..\sdk +echo "%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk="%SDK%" +"%VSI2D%" --vsi="%VSISDKINC:\=/%" --win="%WINSDKINC:\=/%" --dte="%DTE_IDL_PATH%" --sdk="%SDK%" if errorlevel 1 exit /B 1 echo Translation successful! diff --git a/c2d/c2d.visualdproj b/c2d/c2d.visualdproj index 366242d6..909ca063 100644 --- a/c2d/c2d.visualdproj +++ b/c2d/c2d.visualdproj @@ -538,7 +538,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -916,7 +916,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -1420,7 +1420,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -2176,7 +2176,7 @@ 0 0 0 - 1 + 0 0 0 0 diff --git a/c2d/idl2d.d b/c2d/idl2d.d index 853496a1..0cca2792 100644 --- a/c2d/idl2d.d +++ b/c2d/idl2d.d @@ -643,6 +643,10 @@ class idl2d case "WriteULongPtrRaw": return 1; + // SDK 10.0.26100.0 + case "WINVER": + return 1; + default: break; } @@ -1435,6 +1439,11 @@ version(all) replaceTokenSequence(tokens, "#ifdef UNICODE\nreturn $_identW(\n#else\nreturn $_identA(\n#endif\n", " return $_identW(", false); + if(currentModule == "winuser") // SDK 10.0.16100.0 + { + replaceTokenSequence(tokens, ["#endif /* __cplusplus */"], ["#endif"], false); + replaceTokenSequence(tokens, ["#endif /* __cplusplus */"], ["#endif\n}\n"], false); // bad workaround for missing brace + } replaceTokenSequence(tokens, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false); replaceTokenSequence(tokens, "#ifdef defined(__cplusplus)\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false); replaceTokenSequence(tokens, "#ifdef defined __cplusplus\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false); @@ -3103,3 +3112,43 @@ unittest testConvert(txt, exp); } + +unittest +{ + string txt = ` +#include + +#ifndef _WINUSER_ +#define _WINUSER_ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +#if _MSC_VER >= 1200 +#pragma warning(push) +#endif + +#include + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* !_WINUSER_ */ +`; +string exp = " +public import sdk.port.winapifamily; + +version(all) /* #ifndef _WINUSER_ */ { +// #define _WINUSER_ + +extern(C) { + + +public import sdk.port.string; + +}} + /* !_WINUSER_ */ +"; + +// testConvert(txt, exp, "winuser"); +} diff --git a/c2d/vsi2d.visualdproj b/c2d/vsi2d.visualdproj index afda470b..73b3b47c 100644 --- a/c2d/vsi2d.visualdproj +++ b/c2d/vsi2d.visualdproj @@ -34,7 +34,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -790,7 +790,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -2050,7 +2050,7 @@ 0 0 0 - 1 + 0 0 0 0 @@ -2269,6 +2269,15 @@ *.obj + + + + + + + + + diff --git a/sdk/vsi.visualdproj b/sdk/vsi.visualdproj index 503ad581..a46ed70d 100644 --- a/sdk/vsi.visualdproj +++ b/sdk/vsi.visualdproj @@ -2758,6 +2758,7 @@ + @@ -2847,6 +2848,7 @@ + diff --git a/visuald_vs10.sln b/visuald_vs10.sln index e5e7f6b3..163d8290 100644 --- a/visuald_vs10.sln +++ b/visuald_vs10.sln @@ -322,8 +322,6 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug COFF32|Win32 = Debug COFF32|Win32 Debug COFF32|x64 = Debug COFF32|x64 - Debug GDC|Win32 = Debug GDC|Win32 - Debug GDC|x64 = Debug GDC|x64 Debug LDC ARM|Win32 = Debug LDC ARM|Win32 Debug LDC ARM|x64 = Debug LDC ARM|x64 Debug LDC|Win32 = Debug LDC|Win32 @@ -352,9 +350,6 @@ Global {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.ActiveCfg = Debug|Win32 - {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.Build.0 = Debug|Win32 - {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.ActiveCfg = Debug|Win32 {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {7610F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -397,10 +392,6 @@ Global {32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {32872753-4812-40DA-9B24-1C2114621E78}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {32872753-4812-40DA-9B24-1C2114621E78}.Debug GDC|x64.Build.0 = Debug GDC|x64 {32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -447,48 +438,44 @@ Global {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.Build.0 = TestDebug|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug GDC|x64.Build.0 = Debug GDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug LDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Debug LDC|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Debug COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.Build.0 = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Debug LDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Debug LDC|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Debug COFF32|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Debug COFF32|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.ActiveCfg = Debug|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.Build.0 = Debug|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.ActiveCfg = Debug|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.Build.0 = Debug|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.ActiveCfg = Debug|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.Build.0 = Debug|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|Win32.ActiveCfg = Debug|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|Win32.Build.0 = Debug|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.ActiveCfg = Debug|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.Build.0 = Debug|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.ActiveCfg = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug|x64.Build.0 = Debug COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|Win32.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|Win32.Build.0 = Release COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.ActiveCfg = Release COFF32|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.Build.0 = Release COFF32|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.ActiveCfg = Release LDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.Build.0 = Release LDC|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.Build.0 = Release LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.ActiveCfg = Release LDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.Build.0 = Release LDC|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|Win32.ActiveCfg = Release|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|Win32.Build.0 = Release|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|x64.ActiveCfg = Release|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|x64.Build.0 = Release|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|Win32.ActiveCfg = Release|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|Win32.Build.0 = Release|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.ActiveCfg = Release|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.Build.0 = Release|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|Win32.ActiveCfg = Release|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug GDC|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug GDC|x64 @@ -500,10 +487,6 @@ Global {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug GDC|x64.Build.0 = Debug GDC|x64 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -551,10 +534,6 @@ Global {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug GDC|x64.Build.0 = Debug GDC|x64 {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -603,10 +582,6 @@ Global {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug GDC|x64.Build.0 = Debug GDC|x64 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -653,12 +628,8 @@ Global {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug GDC|x64.Build.0 = Debug GDC|x64 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC|Win32 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC|Win32 + {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 + {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32 @@ -677,8 +648,8 @@ Global {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|Win32.Build.0 = Release COFF32|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|x64.ActiveCfg = Release COFF32|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release COFF32|x64.Build.0 = Release COFF32|x64 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.ActiveCfg = Debug LDC|Win32 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.Build.0 = Debug LDC|Win32 + {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 + {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|x64.ActiveCfg = Release LDC ARM|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC ARM|x64.Build.0 = Release LDC ARM|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 @@ -701,10 +672,6 @@ Global {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|Win32.ActiveCfg = Debug GDC|Win32 - {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|Win32.Build.0 = Debug GDC|Win32 - {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|x64.ActiveCfg = Debug GDC|x64 - {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug GDC|x64.Build.0 = Debug GDC|x64 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -749,43 +716,40 @@ Global {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|x64.Build.0 = Debug|x64 {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|Win32.ActiveCfg = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|Win32.Build.0 = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug GDC|x64.ActiveCfg = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Debug LDC|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Debug LDC|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Debug COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Debug COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Debug COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Debug COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Debug COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.ActiveCfg = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.Build.0 = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Debug LDC|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Debug LDC|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Debug COFF32|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Debug COFF32|x64 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.ActiveCfg = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.Build.0 = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|x64.ActiveCfg = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug|Win32.ActiveCfg = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug|Win32.Build.0 = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug|x64.ActiveCfg = Debug|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug|x64.ActiveCfg = Debug COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|Win32.ActiveCfg = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|Win32.Build.0 = Release COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.ActiveCfg = Release COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.Build.0 = Release COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.ActiveCfg = Release LDC|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.Build.0 = Release LDC|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release COFF32|x64.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.Build.0 = Release LDC|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.ActiveCfg = Release COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.Build.0 = Release COFF32|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.Build.0 = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|Win32.ActiveCfg = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|Win32.Build.0 = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|x64.ActiveCfg = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release|Win32.ActiveCfg = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release|Win32.Build.0 = Release|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release|x64.ActiveCfg = Release|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release|x64.ActiveCfg = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.ActiveCfg = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.Build.0 = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Test|x64.ActiveCfg = Release|Win32 @@ -796,10 +760,6 @@ Global {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|Win32.ActiveCfg = Debug|Win32 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|Win32.Build.0 = Debug|Win32 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|x64.ActiveCfg = Debug|x64 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug GDC|x64.Build.0 = Debug|x64 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 @@ -848,10 +808,6 @@ Global {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug COFF32|x64.Build.0 = Debug COFF32|x64 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|Win32.ActiveCfg = Debug|Win32 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|Win32.Build.0 = Debug|Win32 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|x64.ActiveCfg = Debug|x64 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug GDC|x64.Build.0 = Debug|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|Win32.ActiveCfg = Debug LDC ARM|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 From 75404124eeaddda17e38aa87a88b23c1566aa982 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 21 Nov 2025 12:02:47 +0100 Subject: [PATCH 02/18] select dmdserver executable from installed dmd version --- visuald/vdserverclient.d | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/visuald/vdserverclient.d b/visuald/vdserverclient.d index 1bb4b721..dd5ee29e 100644 --- a/visuald/vdserverclient.d +++ b/visuald/vdserverclient.d @@ -31,7 +31,9 @@ import std.concurrency; import std.datetime; import std.string; import std.conv; +import std.file; import std.path; +import std.process : spawnProcess, ExecConfig = Config; import std.windows.charset; import core.atomic; import core.thread; @@ -115,6 +117,54 @@ void checkGCStats() } +/////////////////////////////////////////////////////////////////////// +string[] findDmdServerVersions() +{ + string[] versions; + string dir = buildPath(Package.GetGlobalOptions().VisualDInstallDir, "dmdserver"); + foreach (exe; dirEntries(dir, SpanMode.shallow)) + { + string base = baseName(exe); + if (globMatch(base, "dmdserver*.exe")) + if (base.length > 14 && base[9] == '-') + versions ~= base[10..$-4]; + } + return versions; +} + +// return path to dmdserver with smallest version higher than installed DMD +string findDmdServer() +{ + import visuald.updates; + + float installedver = Package.s_instance.getInstalledVersionFloat(CheckProduct.DMD); + if (installedver <= 0) + return null; + string[] dmdservers = findDmdServerVersions(); + string bestdmdver; + float bestver = 9999; + foreach(dmdver; dmdservers) + { + try + { + string ver = dmdver; // gets consumed by parse + float v = parse!float(ver) + 0.0009; // include all .-releases + if (v >= installedver && v < bestver) + { + bestver = v; + bestdmdver = dmdver; + } + } + catch(Exception) + { + } + } + if (bestdmdver.empty) + return null; + string dir = buildPath(Package.GetGlobalOptions().VisualDInstallDir, "dmdserver"); + return buildPath(dir, "dmdserver-" ~ bestdmdver ~ ".exe"); +} + /////////////////////////////////////////////////////////////////////// // can be changed through registry entry // debug version = DebugServer; @@ -146,6 +196,19 @@ bool startVDServer() gVDServer = addref(newCom!VDServer); else { + if (gServerClassFactory_iid == DMDServerClassFactory_iid) + { + string dmdserver = findDmdServer(); + if (!dmdserver.empty) + { + auto pid = spawnProcess([dmdserver], null, ExecConfig.suppressConsole); + if (pid) + { + Sleep(100); // wait for process ready + } + } + } + GUID factory_iid = IID_IClassFactory; HRESULT hr = CoGetClassObject(gServerClassFactory_iid, CLSCTX_LOCAL_SERVER|CLSCTX_INPROC_SERVER, null, factory_iid, cast(void**)&gVDClassFactory); if(FAILED(hr)) From 5647b4b9aafe1cb267a3016234f8d00d6654298d Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 21 Nov 2025 12:03:22 +0100 Subject: [PATCH 03/18] visuald projects: fixed library dependencies if different project configurations used in a solution configuration --- visuald/config.d | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/visuald/config.d b/visuald/config.d index ab416ab0..1d6a6398 100644 --- a/visuald/config.d +++ b/visuald/config.d @@ -3963,7 +3963,26 @@ class Config : DisposingComObject, cp.QueryInterface(&IVsCfgProvider2.iid, cast(void**)&cp2); if(cp2) { - cp2.GetCfgOfName(_toUTF16z(mName), _toUTF16z(mPlatform), &cfg); + string cfgname = mName; + string platform = mPlatform; + if(auto sbm5 = qi_cast!IVsSolutionBuildManager5(solutionBuildManager)) + { + GUID uid; + pHier[i].GetGuidProperty(VSITEMID_ROOT, VSHPROPID_ProjectIDGuid, &uid); + ScopedBSTR cfgCanonicalName; + if (sbm5.FindActiveProjectCfgName(&uid, &cfgCanonicalName.bstr) == S_OK) + { + string name = cfgCanonicalName.detach(); + auto names = name.split('|'); + if (names.length == 2) + { + cfgname = names[0]; + platform = names[1]; + } + } + release(sbm5); + } + cp2.GetCfgOfName(_toUTF16z(cfgname), _toUTF16z(platform), &cfg); if(!cfg) cp2.GetCfgs(1, &cfg, null, null); // TODO: find a "similar" config? if(cfg) From f108e02d7dced68660d3be9872676ff25a1d4996 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 21 Nov 2025 12:06:26 +0100 Subject: [PATCH 04/18] fix building and tests afer merging dmd 2.112 --- vdc/dmdserver/dmd | 2 +- vdc/dmdserver/dmdinit.d | 57 +++++++++++++++++++++-------- vdc/dmdserver/dmdserver.d | 2 +- vdc/dmdserver/dmdserver.visualdproj | 41 +++++++++------------ vdc/dmdserver/semanalysis.d | 12 +++--- vdc/dmdserver/semvisitor.d | 7 +++- 6 files changed, 72 insertions(+), 49 deletions(-) diff --git a/vdc/dmdserver/dmd b/vdc/dmdserver/dmd index 3e73a0a9..06daddfb 160000 --- a/vdc/dmdserver/dmd +++ b/vdc/dmdserver/dmd @@ -1 +1 @@ -Subproject commit 3e73a0a9d3e3bd13caf906f5d55ed5924040369c +Subproject commit 06daddfb2ec5b8f8746ada6249c11ad8d5be88bf diff --git a/vdc/dmdserver/dmdinit.d b/vdc/dmdserver/dmdinit.d index 86bc6892..eb52feba 100644 --- a/vdc/dmdserver/dmdinit.d +++ b/vdc/dmdserver/dmdinit.d @@ -24,6 +24,7 @@ import dmd.dmodule; import dmd.dstruct; import dmd.dsymbol; import dmd.dtemplate; +import dmd.templatesem; import dmd.escape; import dmd.expression; import dmd.func; @@ -32,6 +33,7 @@ import dmd.id; import dmd.identifier; import dmd.location; import dmd.mtype; +import dmd.typesem; import dmd.objc; import dmd.rootobject; import dmd.target; @@ -55,12 +57,17 @@ enum string[2][] dmdStatics = ["_D3dmd5clone12buildXtoHashFCQBa7dstruct17StructDeclarationPSQCg6dscope5ScopeZ8tftohashCQDh5mtype12TypeFunction", "TypeFunction"], // < 2.110 // ["_D3dmd7dstruct15search_toStringRCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"], - // 2.110 - ["_D3dmd7dstruct15search_toStringFCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"], - // 2.103 - ["_D3dmd7dmodule6Module11loadStdMathFZ8std_mathCQBsQBrQBm", "Module"], - ["_D3dmd7dmodule6Module14loadCoreAtomicFZ11core_atomicCQBzQByQBt", "Module"], - + // 2.110 to 2.111 + // ["_D3dmd7dstruct15search_toStringFCQBfQBe17StructDeclarationZ10tftostringCQCs5mtype12TypeFunction", "TypeFunction"], + // 2.112 + ["_D3dmd9semantic315search_toStringFCQBh7dstruct17StructDeclarationZ10tftostringCQCz5mtype12TypeFunction", "TypeFunction"], + // 2.103 to 2.111 + // ["_D3dmd7dmodule6Module11loadStdMathFZ8std_mathCQBsQBrQBm", "Module"], + // ["_D3dmd7dmodule6Module14loadCoreAtomicFZ11core_atomicCQBzQByQBt", "Module"], + // 2.112 + ["_D3dmd10dsymbolsem11loadStdMathFZ8std_mathCQBp7dmodule6Module", "Module"], + ["_D3dmd10dsymbolsem14loadCoreAtomicFZ11core_atomicCQBw7dmodule6Module", "Module"], + // up to 2.110 // ["_D3dmd4func15FuncDeclaration8genCfuncRPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifiermZ2stCQFb7dsymbol12DsymbolTable", "DsymbolTable"], // 2.111 @@ -91,13 +98,26 @@ enum string[2][] dmdStatics = ["_D3dmd7typesem12typeSemanticFCQBc5mtype4TypeSQBr8location3LocPSQCj6dscope5ScopeZ11visitAArrayMFCQDqQCo10TypeAArrayZ4fcmpCQEp4func15FuncDeclaration", "FuncDeclaration"], ["_D3dmd7typesem12typeSemanticFCQBc5mtype4TypeSQBr8location3LocPSQCj6dscope5ScopeZ11visitAArrayMFCQDqQCo10TypeAArrayZ5fhashCQEq4func15FuncDeclaration", "FuncDeclaration"], - ["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ11visitAArrayMFCQFcQEi10TypeAArrayZ8fd_aaLenCQGf4func15FuncDeclaration", "FuncDeclaration"], + // <= 2.111 + // ["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ11visitAArrayMFCQFcQEi10TypeAArrayZ8fd_aaLenCQGf4func15FuncDeclaration", "FuncDeclaration"], + ["_D3dmd7typesem6dotExpFCQv5mtype4TypePSQBk6dscope5ScopeCQCb10expression10ExpressionCQDdQBc8DotIdExpEQDtQCz10DotExpFlagZ8noMemberMFQEdQDsQDdCQFh10identifier10IdentifieriZ4nesti", "int"], //["_D3dmd6dmacro10MacroTable6expandMFKSQBi6common9outbuffer9OutBufferkKkAxaZ4nesti", "int"], // x86 - ["_D3dmd7dmodule6Module19runDeferredSemanticRZ6nestedi", "int"], + + // <= 2.111 + // ["_D3dmd7dmodule6Module19runDeferredSemanticRZ6nestedi", "int"], + // 2.112 + ["_D3dmd10dsymbolsem19runDeferredSemanticFZ6nestedi", "int"], + ["_D3dmd10dsymbolsem22DsymbolSemanticVisitor5visitMRCQBx9dtemplate13TemplateMixinZ4nesti", "int"], - ["_D3dmd9dtemplate16TemplateInstance16tryExpandMembersMFPSQCc6dscope5ScopeZ4nesti", "int"], - ["_D3dmd9dtemplate16TemplateInstance12trySemantic3MFPSQBy6dscope5ScopeZ4nesti", "int"], + + // <= 2.111 + // ["_D3dmd9dtemplate16TemplateInstance16tryExpandMembersMFPSQCc6dscope5ScopeZ4nesti", "int"], + // ["_D3dmd9dtemplate16TemplateInstance12trySemantic3MFPSQBy6dscope5ScopeZ4nesti", "int"], + // 2.112 + ["_D3dmd11templatesem16tryExpandMembersFCQBl9dtemplate16TemplateInstancePSQCs6dscope5ScopeZ4nesti", "int"], + ["_D3dmd11templatesem12trySemantic3FCQBh9dtemplate16TemplateInstancePSQCo6dscope5ScopeZ4nesti", "int"], + ["_D3dmd13expressionsem25ExpressionSemanticVisitor5visitMRCQCd10expression7CallExpZ4nesti", "int"], ["_D3dmd5lexer5Lexer12stringbufferSQBf6common9outbuffer9OutBuffer", "OutBuffer"], //["_D3dmd10expression10IntegerExp__T7literalVii0ZQnRZ11theConstantCQCkQCjQCa", "IntegerExp"], @@ -109,12 +129,16 @@ enum string[2][] dmdStatics = // ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaKxSQCe8location3LocZ8countersHSQDgQDfQCwQCnFNbQBxKxQBxZ3Keyk", "countersType"], ["_D3dmd10identifier10Identifier9newSuffixFNbZ1ik", "size_t"], // 2.111 - ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaSQCc8location3LocQuZ8countersHSQDgQDfQCwQCnFNbQBxQBxQCdZ3Keyk", "countersType"], + // ["_D3dmd10identifier10Identifier17generateIdWithLocFNbAyaSQCc8location3LocQuZ8countersHSQDgQDfQCwQCnFNbQBxQBxQCdZ3Keyk", "countersType"], // 2.106 ["_D3dmd7arrayop7arrayOpFCQw10expression6BinExpPSQBt6dscope5ScopeZQByCQCo9dtemplate19TemplateDeclaration", "TemplateDeclaration"], ["_D3dmd6errors18colorHighlightCodeFNbKSQBk6common9outbuffer9OutBufferZ6nestedi", "int"], - ["_D3dmd7dmodule6Module18loadCoreStdcConfigFZ16core_stdc_configCQCiQChQCc", "Module"], + // to 2.111 + // ["_D3dmd7dmodule6Module18loadCoreStdcConfigFZ16core_stdc_configCQCiQChQCc", "Module"], + // 2.112 + ["_D3dmd10dsymbolsem18loadCoreStdcConfigFZ16core_stdc_configCQCf7dmodule6Module", "Module"], + // EscapeState.reset not accessible in package dmd ["_D3dmd6escape11EscapeState17scopeInferFailureHiCQBu10rootobject10RootObject", "EscapeInfer" ], @@ -172,8 +196,9 @@ void clearSemanticStatics() // statementsem // static __gshared FuncDeclaration* fdapply = [null, null]; // static __gshared TypeDelegate* fldeTy = [null, null]; - statementsem_fdapply[0] = statementsem_fdapply[1] = null; - statementsem_fldeTy[0] = statementsem_fldeTy[1] = null; + // <= 2.111 + // statementsem_fdapply[0] = statementsem_fdapply[1] = null; + // statementsem_fldeTy[0] = statementsem_fldeTy[1] = null; // dmd.dtemplate emptyArrayElement = null; @@ -213,7 +238,7 @@ void dmdInit() location_init(); target._init(global.params); // needed by Type._init - Type._init(); + Type_init(); Module._init(); CTFloat.initialize(); } @@ -499,7 +524,7 @@ void dmdReinit() target.deinitialize(); setTargetBuildDefaults(target); target._init(global.params); // needed by Type._init - Type._reinit(); + Type_reinit(); // assume object.d unmodified otherwis Module.moduleinfo = null; diff --git a/vdc/dmdserver/dmdserver.d b/vdc/dmdserver/dmdserver.d index 43f949c4..3dadce56 100644 --- a/vdc/dmdserver/dmdserver.d +++ b/vdc/dmdserver/dmdserver.d @@ -353,7 +353,7 @@ class DMDServer : ComObject, IVDServer try { import core.exception; - debug assertHandler(function(string file, ulong line, string msg){ + debug assertHandler(function(string file, size_t line, string msg){ throw new AssertError(msg, file, line); }); dg(); diff --git a/vdc/dmdserver/dmdserver.visualdproj b/vdc/dmdserver/dmdserver.visualdproj index 0d4404b2..4cc172d7 100644 --- a/vdc/dmdserver/dmdserver.visualdproj +++ b/vdc/dmdserver/dmdserver.visualdproj @@ -2279,6 +2279,23 @@ + + + + + + + + + + + + + + + + + @@ -2368,8 +2385,6 @@ - - @@ -2382,12 +2397,7 @@ - - - - - @@ -2402,11 +2412,6 @@ - - - - - @@ -2424,13 +2429,8 @@ - - - - - @@ -2440,15 +2440,10 @@ + - - - - - - diff --git a/vdc/dmdserver/semanalysis.d b/vdc/dmdserver/semanalysis.d index a9532f82..77f68522 100644 --- a/vdc/dmdserver/semanalysis.d +++ b/vdc/dmdserver/semanalysis.d @@ -403,11 +403,11 @@ Module analyzeModule(Module parsedModule, const ref Options opts) void semantic(Module m) { m.dsymbolSemantic(null); - Module.runDeferredSemantic(); + runDeferredSemantic(); m.semantic2(null); - Module.runDeferredSemantic2(); + runDeferredSemantic2(); m.semantic3(null); - Module.runDeferredSemantic3(); + runDeferredSemantic3(); } if (needsReinit) @@ -2030,7 +2030,7 @@ void do_unittests() "6,13,6,14:Error: found `)` instead of statement\n" ~ "9,2,9,3:Error: unmatched closing brace\n" ~ "5,3,5,4:Error: undefined identifier `a`\n" ~ - "6,6,6,7:Error: undefined identifier `a`\n"); + "6,7,6,8:Error: undefined identifier `a`\n"); exp2 = [ "abc": [ IdTypePos(TypeReferenceKind.TLSVariable) ], @@ -2389,9 +2389,9 @@ unittest // "4:21:FUNC:test()", "1:26:31:TMPL:tmpl(T)", "2:28:28:STRU:helper", - "2:29:29:CLSS:tmpl(T)", + "2:29:29:CLSS:tmpl", "2:30:30:ENUM:E", - "1:32:32:FUNC:tmplfun(T)(T x)", + "1:32:32:FUNC:tmplfun(T x)", ]; checkOutline(source, 3, expected); } diff --git a/vdc/dmdserver/semvisitor.d b/vdc/dmdserver/semvisitor.d index 97c161a0..f7ae5206 100644 --- a/vdc/dmdserver/semvisitor.d +++ b/vdc/dmdserver/semvisitor.d @@ -31,8 +31,10 @@ import dmd.dstruct; import dmd.dsymbol; import dmd.dsymbolsem; import dmd.dtemplate; +import dmd.templatesem; import dmd.errors; import dmd.expression; +import dmd.expressionsem; import dmd.func; import dmd.globals; import dmd.hdrgen; @@ -902,7 +904,8 @@ extern(C++) class FindASTVisitor : ASTVisitor if (matchIdentifier(td.loc, td.ident)) foundNode(td); - foreach(ti; td.instances) + auto instances = cast(TemplateInstance[TemplateInstanceBox])td.instances; + foreach(ti; instances) if (!stop) visit(ti); @@ -2875,7 +2878,7 @@ Expression isAALenCall(Expression expr) // unpack first argument of _aaLen(aa) if (auto ce = expr.isCallExp()) if (auto ve = ce.e1.isVarExp()) - if (ve.var.ident is Id.aaLen) + if (ve.var.ident is Id._d_aaLen) if (ce.arguments && ce.arguments.dim > 0) return (*ce.arguments)[0]; return null; From 81c56ea1f6848f469fdc3e53afb4dd5f38ece29b Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 21 Nov 2025 12:08:15 +0100 Subject: [PATCH 05/18] - mago-mi executable added - mago native debug engine now also works in VS2022 --- CHANGES | 11 +++++++++++ Makefile | 6 +++++- nsis/visuald.nsi | 25 +++++++++++++++++++------ sdk/vsi.visualdproj | 2 -- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index e3f3a105..0119232d 100644 --- a/CHANGES +++ b/CHANGES @@ -1474,3 +1474,14 @@ Version history - fix always skipping debug statements - fix some crashes in the frontend * exclude \\.\C: from dependencies generated by LDC v1.40+ + +2025-11-xx version 1.5.0-beta3 + * dmdserver: + - updated to dmd 2.112 (current master) + - dmdserver executable selected by installed dmd version (2.110, 2.111, 2.112) + * mago-mi executable added + * mago native debug engine now also works in VS2022 (mago concord extension for + VS engine still recommended) + * visuald projects: fixed library dependencies if different project configurations + used in a solution configuration + diff --git a/Makefile b/Makefile index e83db625..99b01bf4 100644 --- a/Makefile +++ b/Makefile @@ -213,6 +213,7 @@ mago_vs16: mago_vs17: cd ..\..\mago && msbuild /p:Configuration=Release;Platform=Win32;PlatformToolset=v143 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln + cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoNatDE /verbosity:quiet MagoDbg_2010.sln cd ..\..\mago && msbuild /p:Configuration=Release;Platform=x64;PlatformToolset=v143 /target:DebugEngine\MagoRemote /verbosity:quiet MagoDbg_2010.sln cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=Win32;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln @@ -222,6 +223,9 @@ magocc_x64: magocc_arm64: cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=ARM64;PlatformToolset=v143" /target:Expression\MagoNatCC /verbosity:quiet MagoDbg_2010.sln +mago_mi: + cd ..\..\mago && msbuild "/p:Configuration=Release StaticDE;Platform=x64;PlatformToolset=v143" /target:MagoMI\mago-mi /verbosity:quiet MagoDbg_2010.sln + magogc: cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoGC" magodbg_2010.sln cd ..\..\mago && devenv /Build "Release|x64" /Project "MagoGC" magodbg_2010.sln @@ -259,7 +263,7 @@ $(DCXXFILT_EXE): tools\dcxxfilt.d # create installer install_release_modules: install_modules visuald_vs_arm64 fake_dparser cv2pdb_vs17 \ - mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc \ + mago_vs17 magocc_x64 magocc_arm64 magogc magogc_ldc mago_mi \ dbuild12 dbuild14 dbuild15 install_vs: install_release_modules install_only diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi index e1407349..d2f6b84e 100644 --- a/nsis/visuald.nsi +++ b/nsis/visuald.nsi @@ -61,6 +61,7 @@ !include "StrFunc.nsh" !include "TextFunc.nsh" !include "InstallOptions.nsh" + !include "x64.nsh" !include "uninstall_helper.nsh" !include "replaceinfile.nsh" @@ -303,15 +304,18 @@ Section "Visual Studio package" SecPackage ${File} "..\bin\${CONFIG}\" vdserver.exe !endif -!ifdef DMDSERVER - ${File} "..\bin\${CONFIG_DMDSERVER}\x64\" dmdserver.exe -!endif - !ifdef VDEXTENSIONS ${File} ..\bin\Release\vdextensions\obj\ vdextensions.dll ${File} ..\bin\Release\vdext15\obj\ vdext15.dll !endif +!ifdef DMDSERVER + ${File} "..\bin\${CONFIG_DMDSERVER}\x64\" dmdserver.exe + ${SetOutPath} "$INSTDIR\dmdserver" + ${File} "..\..\binaries\" dmdserver-2.110.exe + ${File} "..\..\binaries\" dmdserver-2.111.exe +!endif + !ifdef DPARSER ${SetOutPath} "$INSTDIR\DParser" ${File} ..\bin\Release\DParserCOMServer\ DParserCOMServer.exe @@ -1111,9 +1115,7 @@ ${MementoSection} "mago" SecMago ${SetOutPath} "$INSTDIR\Mago" ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatDE.dll -;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatEE.dll ${File} ${MAGO_SOURCE}\bin\Win32\Release\ udis86.dll -;; ${File} ${MAGO_SOURCE}\bin\Win32\Release\ CVSTI.dll ${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoRemote.exe ${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoGC64.dll ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoGC32.dll @@ -1122,7 +1124,18 @@ ${MementoSection} "mago" SecMago ${File} ${MAGO_SOURCE}\ LICENSE.TXT ${File} ${MAGO_SOURCE}\ NOTICE.TXT + ${SetOutPath} "$INSTDIR\Mago\x64" + ${File} ${MAGO_SOURCE}\bin\x64\Release\ mago-mi.exe + ${File} ${MAGO_SOURCE}\bin\x64\Release\ udis86.dll + ${File} ${MAGO_SOURCE}\bin\x64\Release\ MagoNatDE.dll + ${File} "$%VSINSTALLDIR%\DIA SDK\bin\amd64\" msdia140.dll + ExecWait 'regsvr32 /s "$INSTDIR\Mago\MagoNatDE.dll"' + ${If} ${RunningX64} + ${DisableX64FSRedirection} + ExecWait '"$SYSDIR\regsvr32.exe" /s "$INSTDIR\Mago\x64\MagoNatDE.dll"' + ${EnableX64FSRedirection} + ${EndIf} !ifdef VS_NET Push ${SecVS_NET} diff --git a/sdk/vsi.visualdproj b/sdk/vsi.visualdproj index a46ed70d..503ad581 100644 --- a/sdk/vsi.visualdproj +++ b/sdk/vsi.visualdproj @@ -2758,7 +2758,6 @@ - @@ -2848,7 +2847,6 @@ - From c32814b97686aa3829572d15d13a3715d9f60cf3 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 21 Nov 2025 12:08:35 +0100 Subject: [PATCH 06/18] cleanup project dependencies --- visuald_vs10.sln | 102 +++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/visuald_vs10.sln b/visuald_vs10.sln index 163d8290..0090f500 100644 --- a/visuald_vs10.sln +++ b/visuald_vs10.sln @@ -16,11 +16,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "VisualD", "visuald\visuald.visualdproj", "{7610F45A-69D9-4B68-BE63-0E055B51D447}" ProjectSection(ProjectDependencies) = postProject - {CD26A145-F663-473D-8908-0254FE377D48} = {CD26A145-F663-473D-8908-0254FE377D48} + {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} {8EC6179A-7BBA-4555-B384-3B19D3BB7028} = {8EC6179A-7BBA-4555-B384-3B19D3BB7028} - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} + {CD26A145-F663-473D-8908-0254FE377D48} = {CD26A145-F663-473D-8908-0254FE377D48} + {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} EndProjectSection EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi", "sdk\vsi.visualdproj", "{32872753-4812-40DA-9B24-1C2114621E78}" @@ -29,9 +29,6 @@ Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi", "sdk\vsi.visualdproj" EndProjectSection EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vsi2d", "c2d\vsi2d.visualdproj", "{8760F45A-69D9-4B68-BE63-0E055B51D447}" - ProjectSection(ProjectDependencies) = postProject - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} - EndProjectSection EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "parser", "vdc\parser.visualdproj", "{FE3A959D-6CFA-43BF-8637-62125B571770}" EndProject @@ -44,15 +41,15 @@ Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "c2d", "c2d\c2d.visualdproj" EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "cpp2d", "c2d\cpp2d.visualdproj", "{E2073B79-635A-48FA-A5A3-6E500D3A5DD8}" ProjectSection(ProjectDependencies) = postProject + {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} = {E2073B79-635A-48FA-A5A3-6E760D3A5DD8} - {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} EndProjectSection EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "vdserver", "vdc\vdserver.visualdproj", "{2F75431E-B8DB-4231-AAC1-EA68D06A22E6}" ProjectSection(ProjectDependencies) = postProject - {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} + {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} {FE3A959D-6CFA-43BF-8637-62125B571770} = {FE3A959D-6CFA-43BF-8637-62125B571770} EndProjectSection EndProject @@ -140,8 +137,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", EndProject Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "dmdserver", "vdc\dmdserver\dmdserver.visualdproj", "{34289BD7-AB7E-4264-B146-8139DDE9F0BF}" ProjectSection(ProjectDependencies) = postProject - {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} = {2070DF9A-6D80-4E3C-950A-C1BBA1B20F4D} + {32872753-4812-40DA-9B24-1C2114621E78} = {32872753-4812-40DA-9B24-1C2114621E78} EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Templates", "Templates", "{AC054091-8D8F-4393-B3C5-AB67980B80EE}" @@ -436,18 +433,18 @@ Global {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|Win32.Build.0 = TestDebug|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.ActiveCfg = TestDebug|x64 {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.Build.0 = TestDebug|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.Build.0 = Debug LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Debug COFF32|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Debug COFF32|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|Win32.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug COFF32|x64.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|Win32.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC ARM|x64.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|Win32.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.ActiveCfg = Release COFF32|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug LDC|x64.Build.0 = Release COFF32|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.ActiveCfg = Debug|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|Win32.Build.0 = Debug|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Debug OMF|x64.ActiveCfg = Debug|Win32 @@ -460,12 +457,12 @@ Global {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|Win32.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release COFF32|x64.Build.0 = Release COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Debug COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|Win32.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.Build.0 = Release LDC|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|Win32.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release LDC|x64.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release OMF|Win32.ActiveCfg = Release|Win32 @@ -479,10 +476,10 @@ Global {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|Win32.ActiveCfg = Release|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug GDC|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug GDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.ActiveCfg = TestDebug|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.Build.0 = TestDebug|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.ActiveCfg = TestDebug|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.Build.0 = TestDebug|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.Build.0 = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.ActiveCfg = Release COFF32|Win32 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.Build.0 = Release COFF32|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {FE3A959D-6CFA-43BF-8637-62125B571770}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 @@ -714,18 +711,18 @@ Global {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|Win32.ActiveCfg = Debug|Win32 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|x64.ActiveCfg = Debug|x64 {2F75431E-B8DB-4231-AAC1-EA68D06A22E6}.TestDebug|x64.Build.0 = Debug|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Debug COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.ActiveCfg = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.Build.0 = Debug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Debug COFF32|x64 - {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Debug COFF32|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|Win32.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug COFF32|x64.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|Win32.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC ARM|x64.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|Win32.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.ActiveCfg = Release COFF32|x64 + {CD26A145-F663-473D-8908-0254FE377D48}.Debug LDC|x64.Build.0 = Release COFF32|x64 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.ActiveCfg = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|Win32.Build.0 = Debug|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Debug OMF|x64.ActiveCfg = Debug|Win32 @@ -740,8 +737,8 @@ Global {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|Win32.Build.0 = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.ActiveCfg = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC ARM|x64.Build.0 = Release COFF32|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.Build.0 = Release LDC|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|Win32.Build.0 = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.ActiveCfg = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release LDC|x64.Build.0 = Release COFF32|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Release OMF|Win32.ActiveCfg = Release|Win32 @@ -753,9 +750,10 @@ Global {CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.ActiveCfg = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Test|Win32.Build.0 = Release|Win32 {CD26A145-F663-473D-8908-0254FE377D48}.Test|x64.ActiveCfg = Release|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.ActiveCfg = TestDebug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.Build.0 = TestDebug|Win32 - {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.ActiveCfg = Debug|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|Win32.Build.0 = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.ActiveCfg = Release COFF32|Win32 + {CD26A145-F663-473D-8908-0254FE377D48}.TestDebug|x64.Build.0 = Release COFF32|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|Win32.ActiveCfg = Debug COFF32|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|Win32.Build.0 = Debug COFF32|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug COFF32|x64.ActiveCfg = Debug COFF32|x64 @@ -764,8 +762,8 @@ Global {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.ActiveCfg = Debug|Win32 - {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.Build.0 = Debug|Win32 + {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32 + {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|Win32.Build.0 = Debug LDC|Win32 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|x64.ActiveCfg = Debug LDC|x64 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug LDC|x64.Build.0 = Debug LDC|x64 {34289BD7-AB7E-4264-B146-8139DDE9F0BF}.Debug OMF|Win32.ActiveCfg = Debug|Win32 @@ -812,8 +810,8 @@ Global {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|x64.ActiveCfg = Debug LDC ARM|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC ARM|x64.Build.0 = Debug LDC ARM|x64 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.ActiveCfg = Debug|Win32 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.Build.0 = Debug|Win32 + {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.ActiveCfg = Debug LDC|Win32 + {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|Win32.Build.0 = Debug LDC|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|x64.ActiveCfg = Debug LDC|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug LDC|x64.Build.0 = Debug LDC|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Debug OMF|Win32.ActiveCfg = Debug|Win32 @@ -832,8 +830,8 @@ Global {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|Win32.Build.0 = Debug LDC ARM|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|x64.ActiveCfg = Release LDC ARM|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC ARM|x64.Build.0 = Release LDC ARM|x64 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.ActiveCfg = Release|Win32 - {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.Build.0 = Release|Win32 + {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.ActiveCfg = Release LDC|Win32 + {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|Win32.Build.0 = Release LDC|Win32 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|x64.ActiveCfg = Release LDC|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release LDC|x64.Build.0 = Release LDC|x64 {8EC6179A-7BBA-4555-B384-3B19D3BB7028}.Release OMF|Win32.ActiveCfg = Release|Win32 From 24c48d4ab59752da5910286219396b2893c4c605 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 9 Jan 2026 16:52:46 +0100 Subject: [PATCH 07/18] * dbuild: added support for VS 2026 18.1-18.3 * installer: can now also add mago as an extension for cppvsdbg in VSCode --- CHANGES | 3 +- Makefile | 8 +++- msbuild/dbuild/dbuild.csproj | 61 +++++++++++++++++++++++++++- msbuild/dcompile_defaults.props | 5 +-- nsis/visuald.nsi | 71 ++++++++++++++++++++++++++++++++- 5 files changed, 140 insertions(+), 8 deletions(-) diff --git a/CHANGES b/CHANGES index 0119232d..2aca2597 100644 --- a/CHANGES +++ b/CHANGES @@ -1484,4 +1484,5 @@ Version history VS engine still recommended) * visuald projects: fixed library dependencies if different project configurations used in a solution configuration - + * dbuild: added support for VS 2026 18.1-18.3 + * installer: can now also add mago as an extension for cppvsdbg in VSCode diff --git a/Makefile b/Makefile index 99b01bf4..fe06de05 100644 --- a/Makefile +++ b/Makefile @@ -194,7 +194,13 @@ dbuild17_all: dbuild17_0 dbuild17_1 dbuild17_2 dbuild17_3 dbuild17_4 dbuild17_5 dbuild18_0: cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_0;Platform=AnyCPU $(MSBUILD_REBUILD) -dbuild18_all: dbuild18_0 +dbuild18_1: + cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_1;Platform=AnyCPU $(MSBUILD_REBUILD) + +dbuild18_3: + cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_3;Platform=AnyCPU $(MSBUILD_REBUILD) + +dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_3 mago: cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln diff --git a/msbuild/dbuild/dbuild.csproj b/msbuild/dbuild/dbuild.csproj index 980bec73..d657d9bb 100644 --- a/msbuild/dbuild/dbuild.csproj +++ b/msbuild/dbuild/dbuild.csproj @@ -467,6 +467,50 @@ MinimumRecommendedRules.ruleset 18.0 + + bin\Release-v18_1\ + TRACE;TOOLS_V17 + true + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.1 + + + bin\Debug-v18_1\ + TRACE;DEBUG;TOOLS_V17 + true + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.1 + + + bin\Release-v18_3\ + TRACE;TOOLS_V17 + true + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.3 + + + bin\Debug-v18_3\ + TRACE;DEBUG;TOOLS_V17 + true + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.3 + true full @@ -519,7 +563,8 @@ or '$(TargetVer)' == '17.4' or '$(TargetVer)' == '17.5' or '$(TargetVer)' == '17.6' or '$(TargetVer)' == '17.7' or '$(TargetVer)' == '17.8' or '$(TargetVer)' == '17.9' or '$(TargetVer)' == '17.10' or '$(TargetVer)' == '17.11' or '$(TargetVer)' == '17.12' - or '$(TargetVer)' == '17.13' or '$(TargetVer)' == '17.14' or '$(TargetVer)' == '18.0'">v4.7.2 + or '$(TargetVer)' == '17.13' or '$(TargetVer)' == '17.14' or '$(TargetVer)' == '18.0' + or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3'">v4.7.2 false false false @@ -922,7 +967,7 @@ - + assemblies\v18\Microsoft.Build.dll False @@ -958,6 +1003,18 @@ False + + + assemblies\v18_1\Microsoft.Build.CPPTasks.Common.dll + False + + + + + assemblies\v18_3\Microsoft.Build.CPPTasks.Common.dll + False + + Designer diff --git a/msbuild/dcompile_defaults.props b/msbuild/dcompile_defaults.props index e16adef1..60f50171 100644 --- a/msbuild/dcompile_defaults.props +++ b/msbuild/dcompile_defaults.props @@ -44,11 +44,10 @@ $([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[0]) $([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[1]) $([System.String]::Copy('$(MSBuildVersion)').Split(['.'])[2]) - $(MSBuildVersion_Major).0 + $(MSBuildVersion_Major).0 16.0 16.1 - 17.$(MSBuildVersion_Minor) - 18.0 + $(MSBuildVersion_Major).$(MSBuildVersion_Minor) diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi index d2f6b84e..23c73442 100644 --- a/nsis/visuald.nsi +++ b/nsis/visuald.nsi @@ -388,6 +388,7 @@ Section "Visual Studio package" SecPackage !endif !ifdef VS2026 ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.0.dll + ${File} ..\bin\dbuild\release-v18_1\obj\ dbuild.18.1.dll !endif WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild !endif @@ -1124,6 +1125,11 @@ ${MementoSection} "mago" SecMago ${File} ${MAGO_SOURCE}\ LICENSE.TXT ${File} ${MAGO_SOURCE}\ NOTICE.TXT + ${SetOutPath} "$INSTDIR\vscode" + ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatCC.dll + ${File} ${MAGO_SOURCE}\bin\Win32\Release\ MagoNatCC.vsdconfig + ${File} ${MAGO_SOURCE}\EED\MagoNatCC\ .vsdbg-config.json + ${SetOutPath} "$INSTDIR\Mago\x64" ${File} ${MAGO_SOURCE}\bin\x64\Release\ mago-mi.exe ${File} ${MAGO_SOURCE}\bin\x64\Release\ udis86.dll @@ -1176,6 +1182,27 @@ ${MementoSection} "mago" SecMago WriteRegStr HKLM "SOFTWARE\Wow6432Node\MagoDebugger" "MagoGC64.dll" "$INSTDIR\Mago\MagoGC64.dll" ${MementoSectionEnd} + +;-------------------------------- +${MementoSection} "add mago as VSCode debug extension" SecMagoVSCode + + SectionGetFlags ${SecMago} $2 + IntOp $2 $2 & ${SF_SELECTED} + IntCmp $2 ${SF_SELECTED} 0 NoVSCode + + Push 1 + Call DetectVSCodeCPPExtension + StrCmp $0 "0" NoVSCode + + CreateDirectory "$PROFILE\.cppvsdbg\extensions" + FileOpen $0 "$PROFILE\.cppvsdbg\extensions\mago.link" "w" + FileWrite $0 "$INSTDIR\mago\vscode$\r$\n" + FileClose $0 + + NoVSCode: + +${MementoSectionEnd} + !endif SectionGroupEnd ; Components @@ -1225,6 +1252,7 @@ SectionEnd !ifdef MAGO LangString DESC_SecMago ${LANG_ENGLISH} "Mago is a debug engine especially designed for the D-Language." LangString DESC_SecMago2 ${LANG_ENGLISH} "$\r$\nMago is written by Aldo Nunez. Distributed under the Apache License Version 2.0. See www.dsource.org/projects/mago_debugger" + LangString DESC_SecMagoVSCode ${LANG_ENGLISH} "Intergrate Mago with the VSCode Microsoft cpptool debug engine." !endif !ifdef MSBUILD LangString DESC_SecMSBuild ${LANG_ENGLISH} "MSBuild integration into VC++ projects in VS 2013/15/17/19/22" @@ -1267,6 +1295,7 @@ SectionEnd !endif !ifdef MAGO !insertmacro MUI_DESCRIPTION_TEXT ${SecMago} $(DESC_SecMago)$(DESC_SecMago2) + !insertmacro MUI_DESCRIPTION_TEXT ${SecMagoVSCode} $(DESC_SecMagoVSCode) !endif !ifdef MSBUILD !insertmacro MUI_DESCRIPTION_TEXT ${SecMSBuild} $(DESC_SecMSBuild) @@ -1455,6 +1484,10 @@ Section "Uninstall" ; Push ${VS2017_REGISTRY_KEY} ; Call un.RegisterMago + Delete "$PROFILE\.cppvsdbg\extensions\mago.link" + RMDir "$PROFILE\.cppvsdbg\extensions" + RMDir "$PROFILE\.cppvsdbg" + !endif Call un.RegisterIVDServer @@ -1654,6 +1687,13 @@ Function .onInit Done_VS2026: !endif +!ifdef MAGO + Call DetectVSCodeCPPExtension + StrCmp $0 "0" 0 Installed_VSCode + SectionSetFlags ${SecMagoVSCode} ${SF_RO} + Installed_VSCode: +!endif + !ifdef EXPRESS ; detect VCExpress 2008 ClearErrors @@ -2419,7 +2459,7 @@ Function DetectVS StrCmp $0 0 0 no_vswhere StrCmp $1 "" no_vswhere StrCpy $VSVersion "VS2017+" ; value not used, but only checked if empty - no_vswhere: + no_vswhere: FunctionEnd @@ -2504,3 +2544,32 @@ Function DetectVC done: FunctionEnd + +Function DetectVSCodeCPPExtension + Push $1 + Push $2 + + ; VS Code extensions directory + StrCpy $1 "$PROFILE\.vscode\extensions" + + ; Default return value = 0 (not found) + StrCpy $0 "0" + + ; Check if directory exists + IfFileExists "$1\*.*" 0 done + + FindFirst $2 $R0 "$1\ms-vscode.cpptools*" + ${If} $2 == "" + ; Nothing found yet + ${Else} + ; Found at least one extension + StrCpy $0 "1" + FindClose $2 + Goto done + ${EndIf} + +done: + Pop $2 + Pop $1 + ; Return value in $0 +FunctionEnd From dbf15bc69f9b1853eb9b6a46a69ab8ffd675dc5a Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 9 Jan 2026 17:02:00 +0100 Subject: [PATCH 08/18] build tools hiding some unused symbols that AV programs can consider harmful --- build/build.visualdproj | 6 +-- tools/nodebugger.d | 19 +++++++++ tools/nodll.d | 12 ++++++ tools/nogc.d | 16 ++++++++ tools/noregistry.d | 89 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 tools/nodebugger.d create mode 100644 tools/nodll.d create mode 100644 tools/nogc.d create mode 100644 tools/noregistry.d diff --git a/build/build.visualdproj b/build/build.visualdproj index e7211bfb..a25fc3a7 100644 --- a/build/build.visualdproj +++ b/build/build.visualdproj @@ -2111,14 +2111,14 @@ $(DMDInstallDir)\windows\bin\dmd -g -map "$(IntDir)\$(InputName).map" if exist "$(VSINSTALLDIR)\Common7\Tools\vsvars32.bat" call "$(VSINSTALLDIR)\Common7\Tools\vsvars32.bat" if exist "$(VCINSTALLDIR)\Auxiliary\Build\vcvars32.bat" ( pushd . && call "$(VCINSTALLDIR)\Auxiliary\Build\vcvars32.bat" && popd ) if errorlevel 1 goto reportError -$(LDCInstallDir)\bin\ldmd2 -m32 -g "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d user32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\mb2utf16.d" tool="Custom" /> +$(LDCInstallDir)\bin\ldmd2 -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d user32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\mb2utf16.d" tool="Custom" /> +$(LDCInstallDir)\bin\ldmd2 -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\nodll.d ..\tools\noregistry.d ..\stdext\string.d user32.lib oleaut32.lib ole32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\pipedmd.d" tool="Custom" /> Date: Fri, 9 Jan 2026 17:05:37 +0100 Subject: [PATCH 09/18] adjust to dlang/dmd/master as of 2.112.0 --- vdc/dmdserver/dmd | 2 +- vdc/dmdserver/dmdinit.d | 20 +++++++++++++++----- vdc/dmdserver/dmdserver.visualdproj | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/vdc/dmdserver/dmd b/vdc/dmdserver/dmd index 06daddfb..a10efa76 160000 --- a/vdc/dmdserver/dmd +++ b/vdc/dmdserver/dmd @@ -1 +1 @@ -Subproject commit 06daddfb2ec5b8f8746ada6249c11ad8d5be88bf +Subproject commit a10efa76fc529997f894b2ad3517682bc4712c3b diff --git a/vdc/dmdserver/dmdinit.d b/vdc/dmdserver/dmdinit.d index eb52feba..b83ec95a 100644 --- a/vdc/dmdserver/dmdinit.d +++ b/vdc/dmdserver/dmdinit.d @@ -73,7 +73,9 @@ enum string[2][] dmdStatics = // 2.111 // ["_D3dmd4func15FuncDeclaration8genCfuncRPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"], // 2.111.1 - ["_D3dmd4func15FuncDeclaration8genCfuncFPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"], +// ["_D3dmd4func15FuncDeclaration8genCfuncFPSQBm4root5array__T5ArrayTCQCl5mtype9ParameterZQBcCQDjQy4TypeCQDu10identifier10IdentifierEQEw8astenums3STCZ2stCQFr7dsymbol12DsymbolTable", "DsymbolTable"], + // 2.112.0 + ["_D3dmd7funcsem8genCfuncFPSQy4root5array__T5ArrayTCQBw5mtype9ParameterZQBcCQCuQy4TypeCQDf10identifier10IdentifierEQEh8astenums3STCZ2stCQFc7dsymbol12DsymbolTable", "DsymbolTable"], // 2.091 // ["_D3dmd7typesem12typeSemanticRCQBc5mtype4TypeSQBr7globals3LocPSQCi6dscope5ScopeZ11visitAArrayMFCQDpQCn10TypeAArrayZ3feqCQEn4func15FuncDeclaration", "FuncDeclaration"], @@ -140,7 +142,10 @@ enum string[2][] dmdStatics = ["_D3dmd10dsymbolsem18loadCoreStdcConfigFZ16core_stdc_configCQCf7dmodule6Module", "Module"], // EscapeState.reset not accessible in package dmd - ["_D3dmd6escape11EscapeState17scopeInferFailureHiCQBu10rootobject10RootObject", "EscapeInfer" ], + // to 2.111 + // ["_D3dmd6escape11EscapeState17scopeInferFailureHiCQBu10rootobject10RootObject", "EscapeInfer" ], + // 2.112 + ["_D3dmd6escape11EscapeState16scopeInferReasonHiCQBt10rootobject10RootObject", "EscapeInfer" ], // 2.10x ["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ13complex_floatCQEa5mtype4Type", "Type" ], @@ -264,7 +269,7 @@ struct Options bool mixinAnalysis; bool UFCSExpansions; - bool predefineDefaultVersions; + bool predefineDefaultVersions = true; int versionLevel; string[] versionIds; int debugLevel; @@ -420,7 +425,6 @@ void dmdSetupParams(const ref Options opts) // Add in command line versions foreach (charz; *versionids) { - global.versionids.push(new Identifier(charz)); auto ident = charz[0 .. strlen(charz)]; if (VersionCondition.isReserved(ident)) VersionCondition.addPredefinedGlobalIdent(ident); @@ -430,7 +434,13 @@ void dmdSetupParams(const ref Options opts) if (opts.predefineDefaultVersions) addDefaultVersionIdentifiers(global.params, target); - + if (opts.ldcCompiler || opts.gdcCompiler) + { + size_t idx = global.versionids.find(Identifier.idPool("DigitalMars")); + if (idx != size_t.max) + global.versionids.remove(idx); + VersionCondition.addPredefinedGlobalIdent(opts.ldcCompiler ? "LDC" : "GNU"); + } // always enable for tooltips global.params.ddoc.doOutput = true; diff --git a/vdc/dmdserver/dmdserver.visualdproj b/vdc/dmdserver/dmdserver.visualdproj index 4cc172d7..c9ff93da 100644 --- a/vdc/dmdserver/dmdserver.visualdproj +++ b/vdc/dmdserver/dmdserver.visualdproj @@ -2443,6 +2443,7 @@ + @@ -2471,7 +2472,6 @@ if exist "%WindowsSdkDir%\bin\%WindowsSDKVersion%x86\rc.exe" set rc=&q - From 355ef8ebbeb8cd64641feb6268a21fda6d601085 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 09:45:40 +0100 Subject: [PATCH 10/18] CI: update dmd and Visual D versions, fix building tools in CI --- .github/workflows/build-and-test.yml | 12 ++++++------ Makefile | 1 + build/build.visualdproj | 12 ++++++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 58384d33..f11e6a58 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -35,7 +35,7 @@ jobs: - name: Prepare D compiler uses: dlang-community/setup-dlang@v1 with: - compiler: dmd-2.098.1 + compiler: dmd-2.111.0 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.0.2 - name: Setup VS environment @@ -43,17 +43,17 @@ jobs: - name: Download Visual D uses: supplypike/setup-bin@v1 with: - uri: 'https://github.com/dlang/visuald/releases/download/v1.3.0/VisualD-v1.3.0.exe' - name: 'VisualD-v1.3.0.exe' - version: '1.3.0' - command: ./VisualD-v1.3.0.exe /S + uri: 'https://github.com/dlang/visuald/releases/download/v1.4.1/VisualD-v1.4.1.exe' + name: 'VisualD-v1.4.1.exe' + version: '1.4.1' + command: ./VisualD-v1.4.1.exe /S - name: Register visuald run: | reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64" /reg:32 /f reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64\dmd2" /reg:32 /f - name: Build visuald working-directory: visuald/trunk - run: nmake d_modules + run: nmake d_modules dmdserver_test - name: Upload binaries uses: actions/upload-artifact@v4 if: failure() diff --git a/Makefile b/Makefile index fe06de05..4ac73bf8 100644 --- a/Makefile +++ b/Makefile @@ -79,6 +79,7 @@ dmdserver: dmdserver_test: devenv /Project "dmdserver" /Build "TestDebug|x64" visuald_vs10.sln + bin\TestDebug\x64\dmdserver.exe dparser: cd vdc\abothe && $(MSBUILD15) vdserver.sln /p:Configuration=Release;Platform="Any CPU" /p:TargetFrameworkVersion=4.5.2 /p:DefineConstants=NET40 $(MSBUILD_REBUILD) diff --git a/build/build.visualdproj b/build/build.visualdproj index a25fc3a7..310ead91 100644 --- a/build/build.visualdproj +++ b/build/build.visualdproj @@ -2108,17 +2108,21 @@ if errorlevel 1 goto reportError $(DMDInstallDir)\windows\bin\dmd -g -map "$(IntDir)\$(InputName).map" "-of$(OutDir)\$(InputName).dll" "-od$(IntDir)" -defaultlib=user32.lib -m32mscoff -L/SUBSYSTEM:CONSOLE -L/ENTRY:DllMain@12 $(InputPath) kernel32.lib user32.lib" outfile="$(OutDir)\$(InputName).dll" path="..\tools\filemonitor.d" tool="Custom" /> +"%ldmd%" -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d user32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\mb2utf16.d" tool="Custom" /> +"%ldmd%" -m32 -i=std "-of$(OutDir)\$(InputName).exe" $(InputPath) ..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\nodll.d ..\tools\noregistry.d ..\stdext\string.d user32.lib oleaut32.lib ole32.lib -L/SUBSYSTEM:CONSOLE,5.01" dependencies="..\tools\nostacktrace.d ..\tools\nodebugger.d ..\tools\noregistry.d ..\tools\nodll.d" outfile="$(OutDir)\$(InputName).exe" path="..\tools\pipedmd.d" tool="Custom" /> +"$(DMDInstallDir)\windows\bin\dmd" -d -m32mscoff -map "$(IntDir)\$(InputName).map" "-of$(OutDir)\$(InputName).exe" "-od$(IntDir)" $(InputPath) user32.lib oleaut32.lib uuid.lib" outfile="$(OutDir)\$(InputName).exe" path="..\tools\tlb2idl.d" tool="Custom" /> From 8229719eda4b1b60a0e1ca79c12d4374a6247b1f Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 09:53:01 +0100 Subject: [PATCH 11/18] CI: fix versions --- .github/workflows/build-and-test.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f11e6a58..f27c98eb 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -10,6 +10,8 @@ env: BUILD_CONFIGURATION: Release BUILD_PLATFORM: x64 BUILD_PLATFORM_TOOLSET: v142 + DMD_VER: 2.111.0 + VISUALD_VER: 1.4.1 jobs: build: @@ -35,7 +37,7 @@ jobs: - name: Prepare D compiler uses: dlang-community/setup-dlang@v1 with: - compiler: dmd-2.111.0 + compiler: dmd-$DMD_VER - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.0.2 - name: Setup VS environment @@ -43,14 +45,14 @@ jobs: - name: Download Visual D uses: supplypike/setup-bin@v1 with: - uri: 'https://github.com/dlang/visuald/releases/download/v1.4.1/VisualD-v1.4.1.exe' - name: 'VisualD-v1.4.1.exe' - version: '1.4.1' - command: ./VisualD-v1.4.1.exe /S + uri: 'https://github.com/dlang/visuald/releases/download/v$VISUALD_VER/VisualD-v$VISUALD_VER.exe' + name: 'VisualD-v$VISUALD_VER.exe' + version: '$VISUALD_VER' + command: ./VisualD-v$VISUALD_VER.exe /S - name: Register visuald run: | - reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64" /reg:32 /f - reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-2.098.1\x64\dmd2" /reg:32 /f + reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-$DMD_VER\x64" /reg:32 /f + reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-$DMD_VER\x64\dmd2" /reg:32 /f - name: Build visuald working-directory: visuald/trunk run: nmake d_modules dmdserver_test From 88940ee3b4d85ec4f6d6b4104f3d819f075cf05b Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 09:57:41 +0100 Subject: [PATCH 12/18] CI: fix versions --- .github/workflows/build-and-test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f27c98eb..e1bb547b 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -37,7 +37,7 @@ jobs: - name: Prepare D compiler uses: dlang-community/setup-dlang@v1 with: - compiler: dmd-$DMD_VER + compiler: dmd-${{ env.DMD_VER }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.0.2 - name: Setup VS environment @@ -45,10 +45,10 @@ jobs: - name: Download Visual D uses: supplypike/setup-bin@v1 with: - uri: 'https://github.com/dlang/visuald/releases/download/v$VISUALD_VER/VisualD-v$VISUALD_VER.exe' - name: 'VisualD-v$VISUALD_VER.exe' - version: '$VISUALD_VER' - command: ./VisualD-v$VISUALD_VER.exe /S + uri: 'https://github.com/dlang/visuald/releases/download/v$VISUALD_VER/VisualD-v${{ env.VISUALD_VER }}.exe' + name: 'VisualD-v${{ env.VISUALD_VER }}.exe' + version: '${{ env.VISUALD_VER }}' + command: ./VisualD-v${{ env.VISUALD_VER }}.exe /S - name: Register visuald run: | reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-$DMD_VER\x64" /reg:32 /f From 8a52ce7b5d1a2f8acead8d36815f26d9c8abbfbc Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 09:59:50 +0100 Subject: [PATCH 13/18] CI: fix versions --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index e1bb547b..ceaeed57 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -45,7 +45,7 @@ jobs: - name: Download Visual D uses: supplypike/setup-bin@v1 with: - uri: 'https://github.com/dlang/visuald/releases/download/v$VISUALD_VER/VisualD-v${{ env.VISUALD_VER }}.exe' + uri: 'https://github.com/dlang/visuald/releases/download/v${{ env.VISUALD_VER }}/VisualD-v${{ env.VISUALD_VER }}.exe' name: 'VisualD-v${{ env.VISUALD_VER }}.exe' version: '${{ env.VISUALD_VER }}' command: ./VisualD-v${{ env.VISUALD_VER }}.exe /S From 855c10579e6f4eab2041ede8edd4ff317e85d942 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 10:07:03 +0100 Subject: [PATCH 14/18] CI: fix versions --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ceaeed57..25f4e670 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -51,8 +51,8 @@ jobs: command: ./VisualD-v${{ env.VISUALD_VER }}.exe /S - name: Register visuald run: | - reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-$DMD_VER\x64" /reg:32 /f - reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-$DMD_VER\x64\dmd2" /reg:32 /f + reg add "HKLM\SOFTWARE\DMD" /v "InstallationDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-${{ env.DMD_VER }}\x64" /reg:32 /f + reg add "HKLM\SOFTWARE\VisualD" /v "DMDInstallDir" /t REG_SZ /d "c:\hostedtoolcache\windows\dc\dmd-${{ env.DMD_VER }}\x64\dmd2" /reg:32 /f - name: Build visuald working-directory: visuald/trunk run: nmake d_modules dmdserver_test From b20bad038ece1561e0d957231c480edaf2cfb42d Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 10 Jan 2026 11:20:14 +0100 Subject: [PATCH 15/18] allow running tests without phobos --- appveyor.yml | 16 ++++---- vdc/dmdserver/dmdserver.d | 8 ++-- vdc/dmdserver/semanalysis.d | 81 +++++++++++++++++++++++++++---------- 3 files changed, 72 insertions(+), 33 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 1939b1dd..ecdd62b6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -30,9 +30,9 @@ environment: # cache relative to C:\projects\visuald cache: - - C:\projects\cache\dmd2109_1.7z + - C:\projects\cache\dmd2111_0.7z - C:\projects\cache\cd851.zip - - C:\projects\cache\VisualD-v0.50.1.exe + - C:\projects\cache\VisualD-v1.4.1.exe - C:\projects\cache\binutils-2.25.tar.gz #matrix: @@ -55,10 +55,10 @@ install: # Download & extract D compiler - ps: | If ($Env:D_COMPILER -eq 'dmd') { - If (-not (Test-Path 'cache\dmd2109_1.7z')) { - Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.109.1/dmd.2.109.1.windows.7z' -FileName 'cache\dmd2109_1.7z' + If (-not (Test-Path 'cache\dmd2111_0.7z')) { + Start-FileDownload 'http://downloads.dlang.org/releases/2.x/2.111.0/dmd.2.111.0.windows.7z' -FileName 'cache\dmd2111_0.7z' } - 7z x cache\dmd2109_1.7z > $null + 7z x cache\dmd2111_0.7z > $null Set-Item -path env:DMD -value c:\projects\dmd2\windows\bin\dmd.exe } ElseIf ($Env:D_COMPILER -eq 'dmd-nightly') { Start-FileDownload 'http://nightlies.dlang.org/dmd-nightly/dmd.master.windows.7z' -FileName 'dmd2.7z' @@ -79,10 +79,10 @@ install: copy c:\projects\dm\bin\coffimplib.exe c:\projects\dmd2\windows\bin # Download & install Visual D - ps: | - If (-not (Test-Path 'cache\VisualD-v1.3.1.exe')) { - Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v1.3.1/VisualD-v1.3.1.exe' -FileName 'cache\VisualD-v1.3.1.exe' + If (-not (Test-Path 'cache\VisualD-v1.4.1.exe')) { + Start-FileDownload 'https://github.com/dlang/visuald/releases/download/v1.4.1/VisualD-v1.4.1.exe' -FileName 'cache\VisualD-v1.4.1.exe' } - - cache\VisualD-v1.3.1.exe /S + - cache\VisualD-v1.4.1.exe /S # configure DMD path - reg add "HKLM\SOFTWARE\DMD" /v InstallationFolder /t REG_SZ /d c:\projects /reg:32 /f # disable link dependencies monitoring, fails on AppVeyor server diff --git a/vdc/dmdserver/dmdserver.d b/vdc/dmdserver/dmdserver.d index 3dadce56..fcb8cae6 100644 --- a/vdc/dmdserver/dmdserver.d +++ b/vdc/dmdserver/dmdserver.d @@ -1281,20 +1281,20 @@ unittest version(traceGC) dumpGC(); + string stdio = hasPhobos ? "std.stdio" : "source"; for (int i = 0; i < 2; i++) { srv.mModules = null; //clearDmdStatics (); - source = q{ - import std.stdio; + source = "\n" ~ import_stdio ~ q{ int main(string[] args) { int xyz = 7; writeln(1, 2, 3); return xyz; } - }; + } ~ def_writeln; checkErrors(source, ""); version(traceGC) @@ -1307,7 +1307,7 @@ unittest } checkTip(5, 9, "(local variable) `int xyz`"); - checkTip(6, 9, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`..."); + checkTip(6, 9, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`..."); checkTip(7, 12, "(local variable) `int xyz`"); version(traceGC) diff --git a/vdc/dmdserver/semanalysis.d b/vdc/dmdserver/semanalysis.d index 77f68522..09f930fc 100644 --- a/vdc/dmdserver/semanalysis.d +++ b/vdc/dmdserver/semanalysis.d @@ -528,13 +528,17 @@ extern(C) int _CrtDumpMemoryLeaks(); extern(C) void dumpGC(); extern(Windows) void OutputDebugStringA(const(char)* lpOutputString); +bool hasPhobos; + string[] guessImportPaths() { import std.file; string druntime = std.path.dirName(__FILE_FULL_PATH__) ~ r"\dmd\druntime\src"; assert(std.file.exists(druntime ~ r"\object.d")); - return [ druntime, r"c:\s\d\dlang\phobos" ]; // must have version matching compiler and runtime + string phobos = r"c:\s\d\dlang\phobos"; // must have version matching compiler and runtime + hasPhobos = std.file.exists(phobos ~ r"\std\stdio.d"); + return [ druntime, phobos ]; foreach(patch; '0'..'3') { @@ -555,6 +559,18 @@ string[] guessImportPaths() return [ r"c:\d\dmd2\src\druntime\import", r"c:\s\d\rainers\src\phobos" ]; } +string import_stdio() { return hasPhobos ? "import std.stdio;" : ""; } +string def_writeln() { return hasPhobos ? "" : q{ + void writeln(T...)(T args) + { + // infer same attributes + static bool x; + x = true; + if (x) throw new Exception(null); + } +}; +} + unittest { version(traceGC) @@ -727,26 +743,39 @@ void do_unittests() }; m = checkErrors(source, "4,10,4,11:Error: undefined identifier `abc`\n"); - source = q{ - import std.stdio; + bool hasPhobos = false; + string import_stdio = hasPhobos ? "import std.stdio;" : ""; + string def_writeln = hasPhobos ? "" : q{ + void writeln(T...)(T args) + { + // infer same attributes + static bool x; + x = true; + if (x) throw new Exception(null); + }; + }; + + source = "\n" ~ import_stdio ~ q{ int main(string[] args) { int xyz = 7; // Line 5 writeln(1, 2, 3); return xyz; } - }; + } ~ def_writeln; m = checkErrors(source, ""); + string stdio = hasPhobos ? "std.stdio" : "source"; checkTip(m, 5, 8, "(local variable) `int xyz`"); checkTip(m, 5, 10, "(local variable) `int xyz`"); - checkTip(m, 6, 4, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`\n..."); + checkTip(m, 6, 4, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`..."); checkTip(m, 5, 11, ""); - checkTip(m, 6, 8, "`void std.stdio.writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`\n..."); + checkTip(m, 6, 8, "`void " ~ stdio ~ ".writeln!(int, int, int)(int __param_0, int __param_1, int __param_2) @safe`..."); checkTip(m, 7, 11, "(local variable) `int xyz`"); checkDefinition(m, 7, 11, "source.d", 5, 8); // xyz - checkDefinition(m, 2, 14, opts.importDirs[1] ~ r"\std\stdio.d", 0, 1); // std.stdio + if (hasPhobos) + checkDefinition(m, 2, 14, opts.importDirs[1] ~ r"\std\stdio.d", 0, 1); // std.stdio //checkTypeIdentifiers(source); @@ -1370,12 +1399,15 @@ void do_unittests() return sum; } }; - m = checkErrors(source, ""); - //dumpAST(m); + if (hasPhobos) + { + m = checkErrors(source, ""); + //dumpAST(m); - checkTip(m, 6, 12, "(local variable) `int i`"); - checkTip(m, 7, 5, "(local variable) `int sum`"); - checkTip(m, 7, 12, "(local variable) `int i`"); + checkTip(m, 6, 12, "(local variable) `int i`"); + checkTip(m, 7, 5, "(local variable) `int sum`"); + checkTip(m, 7, 12, "(local variable) `int i`"); + } source = q{ import std.array; @@ -1385,10 +1417,13 @@ void do_unittests() auto t = split( } }; - m = checkErrors(source, ""); - // todo: deal with "ditto" - checkTip(m, 5, 13, "`string[] std.array.split!(string, string)(string range, string sep) pure nothrow @safe`\n\nditto"); - checkTip(m, 6, 13, "(template function) `std.array.split(S)(S s) if (isSomeString!S)`"); + if (hasPhobos) + { + m = checkErrors(source, ""); + // todo: deal with "ditto" + checkTip(m, 5, 13, "`string[] std.array.split!(string, string)(string range, string sep) pure nothrow @safe`\n\nditto"); + checkTip(m, 6, 13, "(template function) `std.array.split(S)(S s) if (isSomeString!S)`"); + } source = q{ // Line 1 enum TOK : ubyte @@ -1497,9 +1532,12 @@ void do_unittests() cast(void)readln(); // Line 5 } }; - m = checkErrors(source, ""); - checkTip(m, 5, 14, "`string std.stdio.readln!string(dchar terminator = '\\n') @system`" - ~ "\n\nRead line from `stdin`..."); + if (hasPhobos) + { + m = checkErrors(source, ""); + checkTip(m, 5, 14, "`string std.stdio.readln!string(dchar terminator = '\\n') @system`" + ~ "\n\nRead line from `stdin`..."); + } // string expressions with concat source = q{ @@ -2504,7 +2542,7 @@ void test_ana_dmd() { filename = __FILE_FULL_PATH__; source = cast(string)std.file.read(filename); - if (i & 1) + if (!hasPhobos || i & 1) { import std.array; source = replace(source, "std", "stdx"); @@ -2586,7 +2624,8 @@ void test_ana_dmd() }; Module m = checkErrors(source, ""); } - test_std(); + if (hasPhobos) + test_std(); } unittest From 38d0a8b01c5207516d7023ae8b020cad238c66a3 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 17 Apr 2026 10:55:58 +0200 Subject: [PATCH 16/18] * dbuild: fixed building if source files are compiled with different settings * improved msbuild integration with the "Fast Up To Date Check" of VS * full installer now bundled with DMD 2.112.0 and LDC 1.41.0 --- CHANGES | 7 +- VERSION | 4 +- msbuild/dbuild/CompileD.cs | 22 ++- msbuild/dbuild/CompileDOpt.cs | 2 +- msbuild/dcompile.targets | 230 ++++++++++++++++++++++++++++---- msbuild/dcompile_defaults.props | 4 +- nsis/visuald.nsi | 3 +- vdc/dmdserver/dmdinit.d | 14 +- 8 files changed, 241 insertions(+), 45 deletions(-) diff --git a/CHANGES b/CHANGES index 2aca2597..29037582 100644 --- a/CHANGES +++ b/CHANGES @@ -1475,7 +1475,8 @@ Version history - fix some crashes in the frontend * exclude \\.\C: from dependencies generated by LDC v1.40+ -2025-11-xx version 1.5.0-beta3 +2026-04-xx version 1.5.0-rc1 + * full installer now bundled with DMD 2.112.0 and LDC 1.41.0 * dmdserver: - updated to dmd 2.112 (current master) - dmdserver executable selected by installed dmd version (2.110, 2.111, 2.112) @@ -1485,4 +1486,6 @@ Version history * visuald projects: fixed library dependencies if different project configurations used in a solution configuration * dbuild: added support for VS 2026 18.1-18.3 - * installer: can now also add mago as an extension for cppvsdbg in VSCode + * dbuild: fixed building if source files are compiled with different settings + * improved msbuild integration with the "Fast Up To Date Check" of VS + * installer: can now also add mago as an extension for cppvsdbg in VSCode \ No newline at end of file diff --git a/VERSION b/VERSION index 69aa6f3c..80317bf7 100644 --- a/VERSION +++ b/VERSION @@ -1,5 +1,5 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 5 #define VERSION_REVISION 0 -#define VERSION_BETA -beta -#define VERSION_BUILD 3 +#define VERSION_BETA -rc +#define VERSION_BUILD 1 diff --git a/msbuild/dbuild/CompileD.cs b/msbuild/dbuild/CompileD.cs index 0c9902f0..b0fde44c 100644 --- a/msbuild/dbuild/CompileD.cs +++ b/msbuild/dbuild/CompileD.cs @@ -186,6 +186,7 @@ protected override ArrayList SwitchOrderList private string TLogPrefix { + // get { return Compiler == "LDC" ? "ldmd2-ldc2" : "dmd"; } get { return Compiler == "LDC" ? "ldmd2-ldc2" : "dmd"; } } @@ -193,8 +194,8 @@ protected override string[] ReadTLogNames { get { return new string[2] { - TLogPrefix + ".read.1.tlog", - TLogPrefix + "-cl.read.1.tlog", + TLogPrefix + ".read.*.tlog", + TLogPrefix + "-*.read.*.tlog", }; } } @@ -203,15 +204,26 @@ protected override string[] WriteTLogNames { get { return new string[2] { - TLogPrefix + ".write.1.tlog", - TLogPrefix + "-cl.write.1.tlog", + TLogPrefix + ".write.*.tlog", + TLogPrefix + "-*.write.*.tlog", }; } } + protected override string[] DeleteTLogNames + { + get + { + return new string[2] { + TLogPrefix + ".delete.*.tlog", + TLogPrefix + "-*.delete.*.tlog", + }; + } + } + protected override string CommandTLogName { - get { return "dcompile.command.1.tlog"; } + get { return TLogPrefix + ".command.1.tlog"; } } protected override string TrackerIntermediateDirectory diff --git a/msbuild/dbuild/CompileDOpt.cs b/msbuild/dbuild/CompileDOpt.cs index eac42492..af989678 100644 --- a/msbuild/dbuild/CompileDOpt.cs +++ b/msbuild/dbuild/CompileDOpt.cs @@ -972,7 +972,7 @@ public string Compiler public string ToolName { - get { return _compiler + ".exe"; } + get { return "CompileD"; } } public string TrackerLogDirectory diff --git a/msbuild/dcompile.targets b/msbuild/dcompile.targets index 763ebf64..1cdaa2d2 100644 --- a/msbuild/dcompile.targets +++ b/msbuild/dcompile.targets @@ -15,6 +15,7 @@ $(MSBuildThisFileDirectory)dbuild.$(DBuildVersion).dll $(_VCTargetsPathForToolset)\Microsoft.Build.CPPTasks.Common.dll + false @@ -68,7 +69,7 @@ - + $([System.String]::Copy('%(RelativeDir)|').Replace('\|','').Replace('|','').Replace('..','__').Replace(':','_').Replace('\','.')) @@ -126,46 +127,216 @@ + + + $([System.IO.Path]::GetFileNameWithoutExtension('%(ObjectFileName)')) + + + + + + + <_DebugFull Condition="'$(DCompiler)' == 'LDC'">false + <_DebugFull Condition="'$(DCompiler)' != 'LDC'"> + + + <_DebugFull>false + + + <_DebugFull>%(DebugFull) + + + <_DebugFull>false + + + + + <_clLanguage>%(ClCompile->Metadata('LanguageStandard')->Distinct()) + + + + + <_CppStandard>%(CppStandard) + + + <_CppStandard Condition="'$(_clLanguage)' == 'stdcpp14'">cpp14 + <_CppStandard Condition="'$(_clLanguage)' == 'stdcpp17'">cpp17 + <_CppStandard Condition="'$(_clLanguage)' == 'stdcpplatest'">cpp17 + <_CppStandard Condition="'$(_clLanguage)' == 'Default'">cpp17 + <_CppStandard Condition="'$(_clLanguage)' == ''">default + + + + + + <_AllOptions> + %(DCompile.ImportPaths); + %(DCompile.ImportCPaths); + %(DCompile.ImportCDefines); + %(DCompile.StringImportPaths); + %(DCompile.VersionIdentifiers); + %(DCompile.DebugIdentifiers); + %(DCompile.ObjectFileName); + %(DCompile.PreserveSourcePath); + %(DCompile.DRuntimeLibrary); + %(DCompile.CRuntimeLibrary); + + %(DCompile.Profile) + %(DCompile.ProfileGC) + %(DCompile.Coverage) + %(DCompile.MinCoverage) + %(DCompile.Unittest) + %(DCompile.Optimizer) + %(DCompile.Inliner) + %(DCompile.StackFrame) + %(DCompile.StackStomp) + %(DCompile.AllInst) + %(DCompile.Main) + %(DCompile.CPUArchitecture) + %(DCompile.DebugCode) + %(DCompile.DebugInfo) + %(DCompile._DebugFull) + %(DCompile.DebugMixin) + %(DCompile.BoundsCheck) + %(DCompile.PerformSyntaxCheckOnly) + + %(DCompile.BetterC) + %(DCompile._CppStandard) + %(DCompile.DIP25) + %(DCompile.DIP1000) + %(DCompile.DIP1008) + %(DCompile.DIP1021) + %(DCompile.RevertImport) + %(DCompile.PreviewDtorFields) + %(DCompile.PreviewIntPromote) + %(DCompile.PreviewFixAliasThis) + %(DCompile.PreviewRvalueRefParam) + %(DCompile.PreviewNoSharedAccess) + %(DCompile.PreviewMarkdown) + %(DCompile.PreviewIn) + %(DCompile.PreviewInclusiveInContracts) + %(DCompile.TransitionVMarkdown) + %(DCompile.TransitionField) + %(DCompile.TransitionCheckImports) + %(DCompile.TransitionComplex) + %(DCompile.Warnings) + %(DCompile.Deprecations) + %(DCompile.Verbose) + %(DCompile.ShowTLS) + %(DCompile.ShowGC) + %(DCompile.IgnorePragma) + %(DCompile.ShowDependencies) + %(DCompile.LowMem) + %(DCompile.DocDir) + %(DCompile.DocFile) + %(DCompile.DepFile) + %(DCompile.HeaderDir) + %(DCompile.HeaderFile) + %(DCompile.CppHeaderFile) + %(DCompile.JSONFile) + + + + <_OptionsHash>$([System.Math]::Abs($([System.String]::Concat('%(DCompile._AllOptions)').GetHashCode()))) + + + + + <_Objs Include="@(DCompile)"> + %(ObjectFileName) + %(_OptionsHash) + + + + <_Conflicting Include="@(_Objs)" Condition="@(_Objs->'%(Hash)'->Distinct()->Count()) > 1" /> + + + + + %(CompileUnit)_%(_OptionsHash) + + + + + $([System.IO.Path]::GetDirectoryName('%(ObjectFileName)'))\%(CompileUnit)$([System.IO.Path]::GetExtension('%(ObjectFileName)')) + + + + + + + + + $([System.IO.Path]::GetDirectoryName('%(DCompile.ObjectFileName)'))\%(DCompile.CompileUnit)$([System.IO.Path]::GetExtension('%(DCompile.ObjectFileName)')) + + + + + + + + + + true + $(TLogLocation)\%(CompileUnit).tlog + $(TLogLocation)\%(CompileUnit).tlog\dmd.read.1.tlog + $(TLogLocation)\%(CompileUnit).tlog\dmd.write.1.tlog + + + + + + + + + + + + + + %(CompileUnit.Identity) + + + $(TLogLocation)\%(CompileUnit)_%(Filename)%(Extension) + + + + + + + + - + DependsOnTargets="_collectDFiles;_replacePackageName;_sanitizeOptions;_setTracking"> + + + + + + + - + <_ToolExe Condition="'$(DCompiler)' == 'LDC'">$(LDCBinDir)ldmd2.exe <_ToolExe Condition="'$(DCompiler)' != 'LDC'">$(DMDBinDir)dmd.exe - <_DebugFull Condition="'$(DCompiler)' == 'LDC'">false - <_DebugFull Condition="'$(_DebugFull)' == '' and '@(DCompile->Metadata('DebugInfo')->Distinct())' == 'None'">false - <_DebugFull Condition="'$(_DebugFull)' == ''">@(DCompile->Metadata('DebugFull')->Distinct()) - <_DebugFull Condition="'$(_DebugFull)' != 'true' and '$(_DebugFull)' != 'false'">false - - - - <_CppStandard Condition="'$(_CppStandard)' == ''">@(DCompile->Metadata('CppStandard')->Distinct()) - <_clLanguage Condition="'$(_CppStandard)' == 'fromCpp'">@(ClCompile->Metadata('LanguageStandard')->Distinct()) - <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpp14'">cpp14 - <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpp17'">cpp17 - <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'stdcpplatest'">cpp17 - <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp' and '$(_clLanguage)' == 'Default'">cpp17 - <_CppStandard Condition="'$(_CppStandard)' == 'fromCpp'">default - - - true false $(CL_MPCount) @@ -190,12 +361,13 @@ + DependsOnTargets="_collectDFiles;_sanitizeOptions"> - - + + diff --git a/msbuild/dcompile_defaults.props b/msbuild/dcompile_defaults.props index 60f50171..5293ccc2 100644 --- a/msbuild/dcompile_defaults.props +++ b/msbuild/dcompile_defaults.props @@ -136,8 +136,6 @@ ARM64 echo DMD not supported on this platform exit 1 - - - + diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi index 23c73442..d0bfdc30 100644 --- a/nsis/visuald.nsi +++ b/nsis/visuald.nsi @@ -29,7 +29,7 @@ ; define DMD source path to include dmd installation ; !define DMD -!define DMD_VERSION "2.111.0" +!define DMD_VERSION "2.112.0" !define DMD_SRC c:\d\dmd-${DMD_VERSION} ; define LDC to include ldc installation @@ -389,6 +389,7 @@ Section "Visual Studio package" SecPackage !ifdef VS2026 ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.0.dll ${File} ..\bin\dbuild\release-v18_1\obj\ dbuild.18.1.dll + ${File} ..\bin\dbuild\release-v18_3\obj\ dbuild.18.3.dll !endif WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild !endif diff --git a/vdc/dmdserver/dmdinit.d b/vdc/dmdserver/dmdinit.d index b83ec95a..6602e736 100644 --- a/vdc/dmdserver/dmdinit.d +++ b/vdc/dmdserver/dmdinit.d @@ -24,7 +24,7 @@ import dmd.dmodule; import dmd.dstruct; import dmd.dsymbol; import dmd.dtemplate; -import dmd.templatesem; +import dmd.errors; import dmd.escape; import dmd.expression; import dmd.func; @@ -33,6 +33,7 @@ import dmd.id; import dmd.identifier; import dmd.location; import dmd.mtype; +import dmd.templatesem; import dmd.typesem; import dmd.objc; import dmd.rootobject; @@ -151,6 +152,8 @@ enum string[2][] dmdStatics = ["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ13complex_floatCQEa5mtype4Type", "Type" ], ["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ14complex_doubleCQEb5mtype4Type", "Type" ], ["_D3dmd7typesem21getComplexLibraryTypeFSQBl8location3LocPSQCd6dscope5ScopeEQCu8astenums2TYZ12complex_realCQDz5mtype4Type", "Type" ], + + ["_D3dmd11templatesem17emptyArrayElementCQBl10expression10Expression", "Expression"], ]; string cmangled(string s) @@ -188,6 +191,12 @@ extern __gshared FuncDeclaration* statementsem_fdapply; pragma(mangle, "_D3dmd12statementsem15applyAssocArrayFCQBl9statement16ForeachStatementCQCr10expression10ExpressionCQDt5mtype4TypeZ6fldeTyPCQErQy12TypeDelegate") extern __gshared TypeDelegate* statementsem_fldeTy; +bool vdFatalErrorHandler() nothrow +{ + import core.exception; + onAssertErrorMsg(__FILE__, __LINE__, "fatal error"); + return true; +} void clearSemanticStatics() { @@ -206,7 +215,6 @@ void clearSemanticStatics() // statementsem_fldeTy[0] = statementsem_fldeTy[1] = null; // dmd.dtemplate - emptyArrayElement = null; TemplateValueParameter.edummies = null; TemplateTypeParameter.tdummy = null; TemplateAliasParameter.sdummy = null; @@ -235,6 +243,8 @@ void dmdInit() version(CRuntime_Microsoft) initFPU(); + import std.functional; + fatalErrorHandler = toDelegate(&vdFatalErrorHandler); setTargetBuildDefaults(target); global._init(); //Token._init(); From b2fcf736ac221d3180373e724277afc90a77f638 Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Fri, 24 Apr 2026 08:30:38 +0200 Subject: [PATCH 17/18] fix translating Win SDK 10.0.26100.0 --- c2d/idl2d.d | 10 +++++----- c2d/vsi2d.visualdproj | 2 +- sdk/vsi.visualdproj | 2 ++ visuald_vs10.sln | 18 +++++++++--------- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/c2d/idl2d.d b/c2d/idl2d.d index 0cca2792..d6fa6f8d 100644 --- a/c2d/idl2d.d +++ b/c2d/idl2d.d @@ -644,8 +644,8 @@ class idl2d return 1; // SDK 10.0.26100.0 - case "WINVER": - return 1; + // case "WINVER": + // return 1; default: break; @@ -1439,10 +1439,10 @@ version(all) replaceTokenSequence(tokens, "#ifdef UNICODE\nreturn $_identW(\n#else\nreturn $_identA(\n#endif\n", " return $_identW(", false); - if(currentModule == "winuser") // SDK 10.0.16100.0 + if(currentModule == "winuser") // SDK 10.0.26100.0 { - replaceTokenSequence(tokens, ["#endif /* __cplusplus */"], ["#endif"], false); - replaceTokenSequence(tokens, ["#endif /* __cplusplus */"], ["#endif\n}\n"], false); // bad workaround for missing brace + replaceTokenSequence(tokens, "#if defined(__cplusplus) && !defined(SORTPP_PASS)\n$ifcode\n#else\n$elsecode TOUCHPAD_PARAMETERS_V1;\n#endif", + "$elsecode TOUCHPAD_PARAMETERS_V1 v1;", false); } replaceTokenSequence(tokens, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false); replaceTokenSequence(tokens, "#ifdef defined(__cplusplus)\nextern \"C\" {\n#endif\n", "extern \"C\" {\n", false); diff --git a/c2d/vsi2d.visualdproj b/c2d/vsi2d.visualdproj index 73b3b47c..7ec5e340 100644 --- a/c2d/vsi2d.visualdproj +++ b/c2d/vsi2d.visualdproj @@ -286,7 +286,7 @@ 0 0 0 - 1 + 0 0 0 0 diff --git a/sdk/vsi.visualdproj b/sdk/vsi.visualdproj index 503ad581..a46ed70d 100644 --- a/sdk/vsi.visualdproj +++ b/sdk/vsi.visualdproj @@ -2758,6 +2758,7 @@ + @@ -2847,6 +2848,7 @@ + diff --git a/visuald_vs10.sln b/visuald_vs10.sln index 0090f500..73687912 100644 --- a/visuald_vs10.sln +++ b/visuald_vs10.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.13.35507.96 +# Visual Studio Version 18 +VisualStudioVersion = 18.3.11429.125 d18.3 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2BD51E62-6604-48AE-9E01-C940C0CA1C68}" ProjectSection(SolutionItems) = preProject @@ -427,8 +427,8 @@ Global {32872753-4812-40DA-9B24-1C2114621E78}.Release|x64.Build.0 = Release|x64 {32872753-4812-40DA-9B24-1C2114621E78}.Test|Win32.ActiveCfg = Release|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.Test|Win32.Build.0 = Release|Win32 - {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.ActiveCfg = TestDebug|x64 - {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.Build.0 = TestDebug|x64 + {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.ActiveCfg = Debug|x64 + {32872753-4812-40DA-9B24-1C2114621E78}.Test|x64.Build.0 = Debug|x64 {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|Win32.ActiveCfg = TestDebug|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|Win32.Build.0 = TestDebug|Win32 {32872753-4812-40DA-9B24-1C2114621E78}.TestDebug|x64.ActiveCfg = TestDebug|x64 @@ -474,8 +474,8 @@ Global {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Release|x64.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|Win32.ActiveCfg = Release|Win32 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug GDC|x64 - {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug GDC|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.ActiveCfg = Debug|x64 + {8760F45A-69D9-4B68-BE63-0E055B51D447}.Test|x64.Build.0 = Debug|x64 {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.ActiveCfg = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|Win32.Build.0 = Release COFF32|Win32 {8760F45A-69D9-4B68-BE63-0E055B51D447}.TestDebug|x64.ActiveCfg = Release COFF32|Win32 @@ -615,8 +615,8 @@ Global {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Release|x64.ActiveCfg = Release|x64 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Release|x64.Build.0 = Release|x64 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|Win32.ActiveCfg = Release|Win32 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.ActiveCfg = TestDebug|x64 - {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.Build.0 = TestDebug|x64 + {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.ActiveCfg = Debug|x64 + {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.Test|x64.Build.0 = Debug|x64 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|Win32.ActiveCfg = TestDebug|Win32 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|Win32.Build.0 = TestDebug|Win32 {E2073B79-635A-48FA-A5A3-6E760D3A5DD8}.TestDebug|x64.ActiveCfg = TestDebug|x64 @@ -661,7 +661,7 @@ Global {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release|x64.ActiveCfg = Release|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Release|x64.Build.0 = Release|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|Win32.ActiveCfg = Release|Win32 - {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|x64.ActiveCfg = Debug GDC|Win32 + {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.Test|x64.ActiveCfg = Debug|x64 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|Win32.ActiveCfg = TestDebug|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|Win32.Build.0 = TestDebug|Win32 {E2073B79-635A-48FA-A5A3-6E500D3A5DD8}.TestDebug|x64.ActiveCfg = TestDebug|x64 From c55a4272e25fed5ee4e04c1fe6148ce982e33cfa Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Mon, 27 Apr 2026 09:49:17 +0200 Subject: [PATCH 18/18] dbuild: added support for VS 2026 18.6 --- CHANGES | 2 +- Makefile | 5 ++++- msbuild/dbuild/CompileD.cs | 3 ++- msbuild/dbuild/dbuild.csproj | 32 ++++++++++++++++++++++++++++++-- nsis/visuald.nsi | 1 + sdk/vsi.visualdproj | 2 -- 6 files changed, 38 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 29037582..e3b87613 100644 --- a/CHANGES +++ b/CHANGES @@ -1485,7 +1485,7 @@ Version history VS engine still recommended) * visuald projects: fixed library dependencies if different project configurations used in a solution configuration - * dbuild: added support for VS 2026 18.1-18.3 + * dbuild: added support for VS 2026 18.1, 18.3 and 18.6 * dbuild: fixed building if source files are compiled with different settings * improved msbuild integration with the "Fast Up To Date Check" of VS * installer: can now also add mago as an extension for cppvsdbg in VSCode \ No newline at end of file diff --git a/Makefile b/Makefile index 4ac73bf8..41bdf59f 100644 --- a/Makefile +++ b/Makefile @@ -201,7 +201,10 @@ dbuild18_1: dbuild18_3: cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_3;Platform=AnyCPU $(MSBUILD_REBUILD) -dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_3 +dbuild18_6: + cd msbuild\dbuild && $(MSBUILD) dbuild.csproj /p:Configuration=Release-v18_6;Platform=AnyCPU $(MSBUILD_REBUILD) + +dbuild18_all: dbuild18_0 dbuild18_1 dbuild18_3 dbuild18_6 mago: cd ..\..\mago && devenv /Build "Release|Win32" /Project "MagoNatDE" magodbg_2010.sln diff --git a/msbuild/dbuild/CompileD.cs b/msbuild/dbuild/CompileD.cs index b0fde44c..69299bcb 100644 --- a/msbuild/dbuild/CompileD.cs +++ b/msbuild/dbuild/CompileD.cs @@ -210,6 +210,7 @@ protected override string[] WriteTLogNames } } +#if TOOLS_V17 protected override string[] DeleteTLogNames { get @@ -220,7 +221,7 @@ protected override string[] DeleteTLogNames }; } } - +#endif protected override string CommandTLogName { get { return TLogPrefix + ".command.1.tlog"; } diff --git a/msbuild/dbuild/dbuild.csproj b/msbuild/dbuild/dbuild.csproj index d657d9bb..4b12d931 100644 --- a/msbuild/dbuild/dbuild.csproj +++ b/msbuild/dbuild/dbuild.csproj @@ -511,6 +511,28 @@ MinimumRecommendedRules.ruleset 18.3 + + bin\Release-v18_6\ + TRACE;TOOLS_V17 + true + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.6 + + + bin\Debug-v18_6\ + TRACE;DEBUG;TOOLS_V17 + true + false + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + 18.6 + true full @@ -564,7 +586,7 @@ or '$(TargetVer)' == '17.7' or '$(TargetVer)' == '17.8' or '$(TargetVer)' == '17.9' or '$(TargetVer)' == '17.10' or '$(TargetVer)' == '17.11' or '$(TargetVer)' == '17.12' or '$(TargetVer)' == '17.13' or '$(TargetVer)' == '17.14' or '$(TargetVer)' == '18.0' - or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3'">v4.7.2 + or '$(TargetVer)' == '18.1' or '$(TargetVer)' == '18.3' or '$(TargetVer)' == '18.6'">v4.7.2 false false false @@ -967,7 +989,7 @@ - + assemblies\v18\Microsoft.Build.dll False @@ -1015,6 +1037,12 @@ False + + + assemblies\v18_6\Microsoft.Build.CPPTasks.Common.dll + False + + Designer diff --git a/nsis/visuald.nsi b/nsis/visuald.nsi index d0bfdc30..bf9af42b 100644 --- a/nsis/visuald.nsi +++ b/nsis/visuald.nsi @@ -390,6 +390,7 @@ Section "Visual Studio package" SecPackage ${File} ..\bin\dbuild\release-v18_0\obj\ dbuild.18.0.dll ${File} ..\bin\dbuild\release-v18_1\obj\ dbuild.18.1.dll ${File} ..\bin\dbuild\release-v18_3\obj\ dbuild.18.3.dll + ${File} ..\bin\dbuild\release-v18_6\obj\ dbuild.18.6.dll !endif WriteRegStr HKLM "Software\${APPNAME}" "msbuild" $INSTDIR\msbuild !endif diff --git a/sdk/vsi.visualdproj b/sdk/vsi.visualdproj index a46ed70d..503ad581 100644 --- a/sdk/vsi.visualdproj +++ b/sdk/vsi.visualdproj @@ -2758,7 +2758,6 @@ - @@ -2848,7 +2847,6 @@ -