Skip to content

Commit

Permalink
Merge pull request #116 from rainers/master
Browse files Browse the repository at this point in the history
Visual D 0.50.0
  • Loading branch information
rainers authored Jun 23, 2019
2 parents 48f5dd1 + a57617e commit e74bd92
Show file tree
Hide file tree
Showing 18 changed files with 333 additions and 514 deletions.
4 changes: 3 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -1117,7 +1117,7 @@ Version history
* VS2015: workaround VS not correctly updating extension caches after uninstallation
* bugzilla 19826: visualdproj projects created for LDC still use DMD

unreleased Version 0.50.0
2019-06-23 Version 0.50.0
* VS 16.1 Preview 2: ignore tracked files in *.delete.*.tlog as dependencies, too
* now another installer available that includes DMD and LDC
* installer no longer asks for DMD path when updating existing installation
Expand All @@ -1135,6 +1135,7 @@ unreleased Version 0.50.0
- D-Compiler option missing if no english VS language pack installed
* visualdproj:
- Error List: classify warnings and deprecations according to the respective options
- don't pass -mixin= for the link step
* bugzilla 19930: visualdproj: fix building projects with "&|<>" in directory names
* dparser:
- add semantic coloring for module and package names
Expand All @@ -1151,3 +1152,4 @@ unreleased Version 0.50.0
- fix evaluating locals in registers
* slightly change identification of break point locations
* fixed "go to definition" eventually not jumping to correct line after opening document
* scale dialogs according to current text font size, i.e. adapt to DPI scaling
50 changes: 21 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
This is the README file for Visual D, a
Visual Studio package providing both project management and language services

Copyright (c) 2010-2018 by Rainer Schuetze, All Rights Reserved
Copyright (c) 2010-2019 by Rainer Schuetze, All Rights Reserved

Visual D aims at providing seamless integration of the D programming language
into Visual Studio.
Expand All @@ -15,8 +15,8 @@ Use forum http://forum.dlang.org/group/digitalmars.D.ide for questions and the D

Major Features
---------------
* Project management
- all DMD and GDC command line options accessable
* Custom Project management
- all DMD command line options accessible
- support for GDC and LDC
- support for resource compiler
- custom build commands
Expand All @@ -25,9 +25,15 @@ Major Features
- automatic link between dependend projects
- new project templates

* Integration with VC projects
- seamless integration through build customization
- DMD and LDC command line options accessible
- parallel compilation

* Debugger
- integrates cv2pdb for seamless integration with the VS native debugger
- VS debugger extension providing D expression evaluation
- integrates mago, a debug engine dedicated to D
- integrates cv2pdb for debugging executables built with the Digital Mars toolchain

* Language Service
- syntax highlighting with special version/debug and token string support
Expand Down Expand Up @@ -55,23 +61,20 @@ Major Features
- disassembly view synchronized with source code

* Supported Visual Studio versions
- VS 2008
- VS 2010
- VS 2012
- VS 2013
- VS 2015
- VS 2017
- VS 2008 - VS 2019, Community, Professional or Enterprise versions

Unfortunately, Express versions of Visual Studio do not support this
kind of extensions. Use the Visual Studio Shell instead:
Express versions of Visual Studio do not support this
kind of extensions. If you need to use these old version, use the Visual Studio Shell instead:
- VS 2008 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=9771
- VS 2010 Shell: no longer available
- VS 2012 Shell: http://www.microsoft.com/en-us/download/details.aspx?id=30670
+ http://www.microsoft.com/en-us/download/details.aspx?id=30663

Starting with VS 2013, Microsoft also released Community Versions of
Visual Studio, which are free for most users and are similar to the
professional editions.

If you are using the Visual Studio Shell 2008 or 2010, it misses one file,
that is needed for the conversion of the debug information by cv2pdb. This
is msobj80.dll for VS2008 and msobj100.dll for VS2010 and must be extracted
from a standard installation, the Visual C Express edition or the Windows SDK.
You might also find it installed by other Microsoft products.

* Includes tools to
- convert some idl/h files of the Windows SDK to D
Expand Down Expand Up @@ -107,17 +110,6 @@ For LDC and GDC, after installation you must setup Visual D to find them: see
Tools->Options->Projects and Solutions->Visual D Settings->LDC Directories
and GDC Directories, respectively.

For debugging applications, you should also install cv2pdb which is now
included in the Visual D installer. Please make sure, changes to
Common7\Packages\Debugger\autoexp.dat do not mix with previous manual
installations of cv2pdb.

If you are using the Visual Studio Shell 2008 or 2010, it misses one file,
that is needed for the conversion of the debug information by cv2pdb. This
is msobj80.dll for VS2008 and msobj100.dll for VS2010 and must be extracted
from a standard installation, the Visual C Express edition or the Windows SDK.
You might also find it installed by other Microsoft products.

Changes
-------
For documentation on the changes between this version and
Expand All @@ -128,8 +120,8 @@ Building Visual D
In a nutshell:

- install the Visual Studio SDK
- start Visual Studio and load solution visuald_vs9.sln (VS 2008) or
visuald_vs10.sln (VS 2010+)
- start Visual Studio VS 2013+ and load solution visuald_vs10.sln
- select configuration "Debug COFF32|Win32"
- build project "build"
- build project "VisualD"

Expand Down
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define VERSION_MAJOR 0
#define VERSION_MINOR 50
#define VERSION_REVISION 0
#define VERSION_BETA -rc
#define VERSION_BUILD 1
#define VERSION_BETA
#define VERSION_BUILD 0
101 changes: 54 additions & 47 deletions doc/BuildFromSource.dd
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,11 @@ Ddoc
$(P The latest sources of Visual D are available from the github repository at
$(LINK https://github.com/dlang/visuald).)

$(H2 Prerequisites)

$(P You need the following tools to build Visual D:)
$(UL
$(LI Visual Studio 2013/2015 (other versions might also work, VS 2017 was ok
until update 15.3.1))
$(LI a recent version of Visual D)
$(LI $(LINK2 https://www.microsoft.com/en-us/download/details.aspx?id=40758,
Visual Studio Integration SDK for VS2013) or enable it during $(LINK2
https://msdn.microsoft.com/en-us/library/mt683786.aspx, VS 2015) or VS 2017 installation.)
$(LI Windows SDK 6.0A (included in VS2008) or later (tested with most versions
up to 10.0.15063.0))
$(LI DMD 2.071 or newer)
$(LI coffimplib from ($(LINK http://ftp.digitalmars.com/coffimplib.zip)))
$(LI for installer: $(LINK2 http://nsis.sourceforge.net/Download, NSIS). External projects
included in installer:)
$(UL
$(LI $(LINK2 https://github.com/rainers/cv2pdb, cv2pdb) checked
out to ../../cv2pdb/trunk for historic reasons)
$(LI $(LINK2 https://github.com/rainers/mago, mago) checked
out to ../../mago)
$(LI $(LINK2 http://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz, binutils 2.25)
extracted to ../../binutils-2.25)
)
)

$(P Visual D consists of a number of components that need to be built separately:)
$(UL
$(LI $(LINK2 https://github.com/dlang/visuald, visuald): the core package loaded as a language service by Visual Studio: visuald_vs10.sln)
$(LI $(LINK2 https://github.com/rainers/D_Parser/tree/visuald, dparser): the semantic engine
integrated as a sub module: vdc/abothe/VDServer.sln)
integrated as a sub module: vdc/abothe/VDServer.sln. Needs VS 2017 or later)
$(LI vdextensions: some extensions to visuald only accessible via C#: vdextensions/vdextensions.csproj)
$(LI dbuild: MSBuild integration: msbuild/dbuild/dbuild.csproj)
$(LI $(LINK2 https://github.com/rainers/mago, mago): the debug engine: ../../mago/MagoDbg_2010.sln)
Expand All @@ -42,58 +16,74 @@ $(UL
$(LI pipedmd, dcxxfilt: additional command line tools in the "tools" folder)
)

$(H2 Building Visual D)
$(H2 Building the Visual Studio extension package)

$(H3 Prerequisites)

$(P Short version:
$(P You need the following tools to build main package of Visual D:)
$(UL
$(LI Visual Studio 2013/2015/2017/2019)
$(LI a recent version of Visual D)
$(LI Visual Studio Integration SDK for VS2013 or later (enable it during VS installation.))
$(LI Windows SDK 6.0A or later (tested with most versions up to 10.0.17763.0))
$(LI DMD 2.084 or newer)
)

$(H3 Short build instructions:)
$(UL
$(LI Load visuald_vs10.sln into Visual Studio 2013+.)
$(LI Select configuration Debug/Win32)
$(LI Build project "build".)
$(LI Select configuration "$(B Debug COFF32)|Win32")
$(LI Build project "$(B build)". You might get prompted to reload the solution.)
$(LI Build project "VisualD".)
)
)

$(P Longer version:)
$(H3 Longer build instructions:)

$(P There is an $(LINK2 https://ci.appveyor.com/project/rainers/visuald, AppVeyor project)
that verifies recent changes to the development
branch of Visual D. This can also be used as a reference for the build process.)

$(P The Visual D source code is usually updated to work with the latest release version
of DMD (2.077 as of now), so you should use this release of the compiler when using
the latest svn/git checkout.)

$(P If you want to start developing or debugging, you should load visuald_vs10.sln
in Visual Studio with Visual D installed. Build the "build" project at least once
of DMD (2.086.0 as of now), so you should use this release of the compiler when using
the latest git checkout.)

$(P To start developing or debugging, you should load visuald_vs10.sln
in Visual Studio with Visual D installed.
The preferred configuration to use is "Debug COFF32|Win32". This chooses building
with the Microsoft runtime libraries. As Visual Studio is a 32-bit process, an extension
has to be built for that platform, too.
Build the "build" project at least once
to build the necessary prerequisites and tools, e.g. D translations from
the Windows and Visual Studio SDK.)

$(P The standard build procedure for the release version is to execute
"nmake install_vs" in the trunk directory. $(B Please check the variable settings at the
top of the Makefile and adjust them to the installation directories on your system.))
$(P If you want to build against the Digital Mars toolchain using OMF object files,
you'll need coffimplib from ($(LINK http://ftp.digitalmars.com/coffimplib.zip)) installed
somewhere in your PATH. Use Configuration "Debug OMF|Win32" in that case.)

$(H2 Deployment)
$(H3 Deployment)

$(P You should debug Visual D within Visual Studio using a different
branch in the registry, so it does not interfere with your working
environment.)

$(UL
$(LI VS2010-VS2017: The mechanism has changed with VS2010, as the non-standard registry settings are rebuilt
$(LI VS2010-VS2019: The mechanism has changed with VS2010, as the non-standard registry settings are rebuilt
on every start of Visual Studio.
$(UL
$(LI in the following items, VS 2015 is similar to VS 2013 (replace version 12.0 with 14.0),
and CS 2019 is similar to VS 2017 (replace version 15.0 with 16.0).)
$(LI Copy the files from `$(DOLLAR)(VSINSTALLDIR)\Common7\IDE\Extensions\Rainer Schuetze\VisualD` into the folder
`$(DOLLAR)(APPDATA)\Local\Microsoft\VisualStudio\12.0\Extensions\VisualD` (replace 12.0 with 14.0 for VS2015, 15.0_`<id>`
`$(DOLLAR)(APPDATA)\Local\Microsoft\VisualStudio\12.0\Extensions\VisualD` (replace 12.0 with 15.0_`<id>`
for VS2017 with `<id>` some identifier generated during VS installation))
$(LI Move the files from `$(DOLLAR)(VSINSTALLDIR)\Common7\IDE\Extensions\Rainer Schuetze\VisualD` into the folder
`$(DOLLAR)(APPDATA)\Local\Microsoft\VisualStudio\12.0D\Extensions\VisualD` (replace 12.0D with 14.0D for VS2015, 15.0_`<id>`D
`$(DOLLAR)(APPDATA)\Local\Microsoft\VisualStudio\12.0D\Extensions\VisualD` (replace 12.0D with 15.0_`<id>`D
for VS2017 with `<id>` some identifier generated during VS installation))
$(LI in visuald.pkgdef, replace the path "C:\\Program Files (x86)\\Visual D\\visuald.dll" with your debug build output path.)
$(LI Modify a line in `$(DOLLAR)(VSINSTALLDIR)\Common7\IDE\devenv.pkgdef:
$(PRE -"PkgDefSearchPath" = "$ApplicationExtensionsFolder$;$RootFolder$\Common7\IDE\CommonExtensions;$RootFolder$\Common7\IDE\devenv.admin.pkgdef;")
$(PRE +"PkgDefSearchPath" = "$ApplicationExtensionsFolder$;$RootFolder$\Common7\IDE\CommonExtensions;$AppDataLocalFolder$\Extensions;$RootFolder$\Common7\IDE\devenv.admin.pkgdef;")
)
$(LI in the registry, delete hives
$(LI for VS2015 or earlier delete these hives in the registry:
$(UL
$(LI `HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0D`)
$(LI `HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0D_Config`)
Expand All @@ -103,6 +93,7 @@ $(UL
$(LI Visual D will now be shown in the Extension Manager where it might have to be enabled.)
)
)
$(P)
$(LI VS2008: To create a configuration named "D"
$(UL
$(LI As administrator, execute from the command line:
Expand All @@ -118,8 +109,24 @@ $(UL
)
)

$(H3 Building the installer)

$(P The standard build procedure for the release version is to execute
"nmake install_vs" in the trunk directory. $(B Please check the variable settings at the
top of the Makefile and adjust them to the installation directories on your system.))

$(LI for installer: $(LINK2 http://nsis.sourceforge.net/Download, NSIS). External projects
included in installer:)
$(UL
$(LI $(LINK2 https://github.com/rainers/cv2pdb, cv2pdb) checked
out to ../../cv2pdb/trunk for historic reasons)
$(LI $(LINK2 https://github.com/rainers/mago, mago) checked
out to ../../mago)
$(LI $(LINK2 http://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.gz, binutils 2.25)
extracted to ../../binutils-2.25)
)

$(P Good luck!)

Macros:
TITLE=Building from Source

24 changes: 20 additions & 4 deletions doc/Installation.dd
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,19 @@ for all users, not only for a single user.)

$(P To compile your application, you must have $(LINK2 http://www.digitalmars.com/d/download.html, DMD),
$(LINK2 https://github.com/D-Programming-GDC/GDC, GDC) or $(LINK2 https://github.com/ldc-developers/ldc, LDC)
installed. Not all functionality
has been thoroughly tested with GDC and LDC, so having DMD available for cross-checking is recommended.)
installed.)

$(H2 Using DMD)

$(P DMD is a the reference D compiler. It has the latest features of D implemented first, and
usually provides the fastest compilation times for debug builds.)

$(P Not all functionality of Visual D has been adopted to GDC and LDC, so having DMD available is recommended.)
It is also used as the default in most options, e.g. when creating new projects.

$(P You can change the DMD installation path at the global
Tools->Options->Projects and Solutions->Visual D Settings->DMD Directories
option page.)

$(H2 Using LDC)

Expand All @@ -24,8 +35,13 @@ option page. Then switch the "Compiler" option in the project configuration to "
$(H2 Using GDC)

$(P GDC is a D compiler using the GNU compiler suite backend. It can produce more efficient code than DMD.)
You can find a rather dated build at $(LINK http://gdcproject.org/downloads). Please also install the respective
MinGW environment.

$(B As there is currently no uptodate build of GDC available for Windows, support for it has
fallen behind and is untested. With GDC being included with the GCC compiler suite in May 2019, this might change in the
near future.)

$(P You can find a rather dated build at $(LINK http://gdcproject.org/downloads). Please also install the respective
MinGW environment.)

$(P Enter the GDC installation path at the global Tools->Options->Projects and Solutions->Visual D Settings->GDC Directories
option page. Then switch the "Compiler" option in the project configuration to "GDC".)
Expand Down
Loading

0 comments on commit e74bd92

Please sign in to comment.