Jump to page: 1 2 3
Thread overview
[Issue 11266] New: Ship new sc.ini with expanded support for more versions of Visual Studio/Windows SDK
Oct 15, 2013
Brad Anderson
Oct 15, 2013
Brad Anderson
Oct 15, 2013
Brad Anderson
Oct 15, 2013
Rainer Schuetze
Oct 15, 2013
Brad Anderson
Oct 15, 2013
Rainer Schuetze
Oct 15, 2013
Brad Anderson
Oct 15, 2013
Rainer Schuetze
Oct 15, 2013
Martin Nowak
Oct 15, 2013
Brad Anderson
Oct 16, 2013
Brad Anderson
Oct 16, 2013
Brad Anderson
Oct 16, 2013
Rainer Schuetze
Oct 16, 2013
Rainer Schuetze
Oct 16, 2013
Rainer Schuetze
Oct 16, 2013
Walter Bright
Oct 16, 2013
Brad Anderson
Oct 17, 2013
Brad Anderson
Oct 17, 2013
Brad Anderson
Oct 17, 2013
Brad Anderson
Oct 17, 2013
Brad Anderson
Oct 17, 2013
Brad Anderson
Oct 17, 2013
Rainer Schuetze
Oct 17, 2013
Brad Anderson
Oct 19, 2013
Rainer Schuetze
Oct 20, 2013
Brad Anderson
Oct 20, 2013
Brad Anderson
Oct 20, 2013
Brad Anderson
Oct 20, 2013
Walter Bright
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266

           Summary: Ship new sc.ini with expanded support for more
                    versions of Visual Studio/Windows SDK
           Product: D
           Version: D2
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: eco@gnuk.net


--- Comment #0 from Brad Anderson <eco@gnuk.net> 2013-10-14 18:32:56 PDT ---
Created an attachment (id=1264)
New sc.ini

Attached is the new sc.ini I'd like which is compatible with the Window's installer's sc.ini rewriting.

Here it is inline for easy reference:

---
[Version]
version=7.51 Build 020

[Environment]
DFLAGS="-I%@P%\..\..\src\phobos" "-I%@P%\..\..\src\druntime\import"

[Environment32]
LIB="%@P%\..\lib";\dm\lib
LINKCMD=%@P%\link.exe

[Environment64] LIB=%VCINSTALLDIR%lib\amd64;%WindowsSdkDir%lib\x64;"%@P%\..\lib";\dm\lib; LINKCMD=%VCINSTALLDIR%bin\amd64\link.exe
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #1 from Brad Anderson <eco@gnuk.net> 2013-10-14 18:44:36 PDT ---
Requires: https://github.com/D-Programming-Language/dmd/pull/2667

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #2 from Brad Anderson <eco@gnuk.net> 2013-10-14 19:21:17 PDT ---
If pull request 2667 doesn't get merged this can still be used but LINKCMD in the Environment64 section must be changed to LINKCMD64.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266


Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de


--- Comment #3 from Rainer Schuetze <r.sagitario@gmx.de> 2013-10-14 23:41:21 PDT ---
I think you should not include \dm\lib in sc.ini. It is pretty uncommon to have this directory and it does not work across multiple drives.

It is even harmful for win64 as there are no 64-bit libraries in the dm folders.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #4 from Brad Anderson <eco@gnuk.net> 2013-10-14 23:43:25 PDT ---
(In reply to comment #3)
> I think you should not include \dm\lib in sc.ini. It is pretty uncommon to have this directory and it does not work across multiple drives.
> 
> It is even harmful for win64 as there are no 64-bit libraries in the dm folders.

Ok, will remove.

I need to add PATH to this so VS2012/2013's LINKCMD will work too so this isn't ready in it's current state.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #5 from Rainer Schuetze <r.sagitario@gmx.de> 2013-10-14 23:45:41 PDT ---
I've suggested a slightly more elaborate version of sc.ini here: http://forum.dlang.org/thread/20130903205311.00003c40@unknown?page=5#post-l10vtc:2476o:241:40digitalmars.com

Just adding all possible library paths for the different SDKs should do the trick to support different installations.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #6 from Brad Anderson <eco@gnuk.net> 2013-10-15 00:02:48 PDT ---
(In reply to comment #5)
> I've suggested a slightly more elaborate version of sc.ini here: http://forum.dlang.org/thread/20130903205311.00003c40@unknown?page=5#post-l10vtc:2476o:241:40digitalmars.com
> 
> Just adding all possible library paths for the different SDKs should do the trick to support different installations.

Do you see any harm in(In reply to comment #5)
> I've suggested a slightly more elaborate version of sc.ini here: http://forum.dlang.org/thread/20130903205311.00003c40@unknown?page=5#post-l10vtc:2476o:241:40digitalmars.com
> 
> Just adding all possible library paths for the different SDKs should do the trick to support different installations.

So you are saying something like (modified slightly)?:

---
; environment for both 32/64 bit
[Environment]
LIB="%@P%\..\lib"
DFLAGS="-I%@P%\..\..\src\phobos" "-I%@P%\..\..\src\druntime\import"

[Environment32]
LINKCMD=%@P%\link.exe

[Environment64]
; VS2010
;VS2010LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe

; VS2012
;VS2012LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
; needed with /DEBUG to find mspdb*.dll
;VS2012PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE

; VS2013
;VS2013LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
; needed with /DEBUG to find mspdb*.dll
;VS2013PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE

; needed to avoid COMDAT folding (bugzilla 10664)
DFLAGS=%DFLAGS% -L/OPT:NOICF

LIB="%@P%\..\lib64"

;;;; search path for C Runtime libraries
; the following lib path works with VS2008, VS2010 and VS2012
LIB=%LIB%;"%VCINSTALLDIR%\lib\amd64"

;;;; search path for Platform libraries
; the following lib path works with Windows SDK 6.x and 7.x
LIB=%LIB%;%WindowsSdkDir%\Lib\x64

; the following lib path works with Windows SDK 8.0 LIB=%LIB%;%WindowsSdkDir%\Lib\win8\um\x64
---

The VS{2010,2012,2013}{LINKCMD,PATH} business is because the way the installer does things is by simple find and replace so that'd make those easy to enable. If you see no harm in having the LIB for every version active that'd certainly make things easier.

Optlink is never valid in 64 so I moved the LINKCMD for it to 32 (do you see
any problems with that)?

Any tips for getting this working with Express?  If I remember correctly a person need a specific version of the platform SDK to get the necessary command line tools but I can't remember the details beyond that.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #7 from Rainer Schuetze <r.sagitario@gmx.de> 2013-10-15 00:50:04 PDT ---
(In reply to comment #6)
> The VS{2010,2012,2013}{LINKCMD,PATH} business is because the way the installer does things is by simple find and replace so that'd make those easy to enable. If you see no harm in having the LIB for every version active that'd certainly make things easier.

If LINKCMD is patched by the installer, I'm fine with it. But how does the sc.ini in the zip file look like? I don't have a solution to making it work with both VS2010 and VS2012 yet.

> 
> Optlink is never valid in 64 so I moved the LINKCMD for it to 32 (do you see
> any problems with that)?

That should be no problem.

> Any tips for getting this working with Express?  If I remember correctly a person need a specific version of the platform SDK to get the necessary command line tools but I can't remember the details beyond that.

I haven't used the Express versions recently, but IIRC VS2012 Express installation was very similar to the full version, while VS2010 Express never had x64 support. You had to install the Windows 7 SDK to get the x64 tool chain.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266


Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code@dawg.eu


--- Comment #8 from Martin Nowak <code@dawg.eu> 2013-10-15 03:37:08 PDT ---
(In reply to comment #3)
> I think you should not include \dm\lib in sc.ini. It is pretty uncommon to have this directory and it does not work across multiple drives.
> 
> It is even harmful for win64 as there are no 64-bit libraries in the dm folders.

Do we still need dmc's lib folder on Win32?
There is an old Bug 459 that mentiones removing \dm\lib too.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11266



--- Comment #9 from Brad Anderson <eco@gnuk.net> 2013-10-15 09:25:54 PDT ---
(In reply to comment #7)
> (In reply to comment #6)
> > The VS{2010,2012,2013}{LINKCMD,PATH} business is because the way the installer does things is by simple find and replace so that'd make those easy to enable. If you see no harm in having the LIB for every version active that'd certainly make things easier.
> 
> If LINKCMD is patched by the installer, I'm fine with it. But how does the sc.ini in the zip file look like? I don't have a solution to making it work with both VS2010 and VS2012 yet.
> 

It'd look just like above. If neither LINKCMD64 nor LINKCMD64 is found dmd just uses "link". I believe this means it'll still work if someone just runs the usual vcvarsall.bat to get the MSVC toolset in the PATH (if they installed MSVC after dmd, for instance).  vcvarsall.bat prepends to the PATH so optlink shouldn't get in the way in this case.  vcvarsall.bat is already required for the current sc.ini so this should be functionally no different then what we have now.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
« First   ‹ Prev
1 2 3