On Sunday, 1 September 2013 at 07:42:47 UTC, Walter Bright wrote:
On 8/31/2013 7:05 PM, Manu wrote:
The only compiler you can realistically use productively in windows is
DMD-Win64, and that doesn't work out of the box.
We needed to mess with sc.ini for quite some time to get the stars aligned such
that it would actually compile and find the linker+libs.

Walter: DMD needs to internally detect installations of various versions of VisualStudio, and either 'just work', or amend sc.ini on its own. Or the installer needs to amend sc.ini. Either way, leaving it to a user to fiddle with an ini file just isn't acceptable. We had to google solutions to this problem, and even then, we had trouble with the paths we added to sc.ini; are spaces
acceptable? Do they have quites around them?...
I might also suggest that Microsoft supplied (ie, 'standard'), libraries should
be automatically detected and path entries added in there too:
  C:\Program Files (x86)\Microsoft SDKs\...
  C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\...
These are on basically every windows developers machine, and each of us had to
configure them ourselves.

The default sc.ini contains:
-----------------------------
[Version]
version=7.51 Build 020

[Environment]
LIB="%@P%\..\lib";\dm\lib
DFLAGS="-I%@P%\..\..\src\phobos" "-I%@P%\..\..\src\druntime\import"
LINKCMD=%@P%\link.exe
LINKCMD64=%VCINSTALLDIR%bin\amd64\link.exe
VCINSTALLDIR=%VCINSTALLDIR%
WindowsSdkDir=%WindowsSdkDir%
----------------------------------

When I installed VC 2010, it set the environment variables VCINSTALLDIR and WindowsSdkDir. Then, the default sc.ini should "just work".

What went wrong, specifically?

I can make the installer detect which versions of Visual Studio are installed and the path they are installed. Would I rather I have the installer modify the installed sc.ini or set an environment variable?

Reply via email to