www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 9736] New: VS2010 project file does full rebuild every time

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736

           Summary: VS2010 project file does full rebuild every time
           Product: D
           Version: D2
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: trivial
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: thecybershadow gmail.com
                CC: r.sagitario gmx.de


--- Comment #0 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
15:09:58 EET ---
For some reason, the VS2010 project never appears to be "cleanly built" - every
time I hit build or run, it rebuilds DMD entirely, starting from compiling and
running idgen. I can reproduce the problem with both VS2010 and 2012.

I've tried to enable CPS diagnostics by adding the system.diagnostics XML
snippet to devenv.exe.config [1], but this has produced no insightful output.

This flaw is not present in the VS2008 project file. 

[1]:
http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-c-project-system-logging.aspx

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #1 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
15:29:57 EET ---
Converting the VS2008 project file to VS2010 created a VS2010 project file that
does not exhibit the problem.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #2 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
15:54:58 EET ---
And now it doesn't work again. And when I run the conversion again, only
optabgen would run every time. Looks like a VS bug.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #3 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
16:23:10 EET ---
VS2010's CPS diagnostics output was more helpful. Buried, I found the line:

Information: 0 : Project 'C:\Projects\Extern\D\dmd\src\dmd_msc.vcxproj' not up
to date because build input 'C:\PROJECTS\EXTERN\D\DMD\SRC\BACKEND\CPP.H' is
missing.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #4 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
16:29:13 EET ---
OK... after removing nonexistent files from the project, Visual Studio
acknowledges that the project is built right after a build. However, now, after
touching one source file, VS still reruns idgen/optabgen/etc.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #5 from Rainer Schuetze <r.sagitario gmx.de> 2013-03-16 07:48:01
PDT ---
Yes, msbuild is pretty horrible. Non existing files in the project cause it to
think it needs update, but won't find anything to do.

I usually use VS2008, but I don't have problems with unnecessary rebuilding the
generated files with VS2012. They do have dependencies to a few source files
though (e.g. mtype.h).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #6 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
16:49:17 EET ---
I've set the msbuild debug level to "Diagnostic". In the build log file, I see
this line:

"Forcing rebuild of source file "C:\Projects\Extern\D\dmd\src\idgen.c" due to a
change in the command line since the last build. (TaskId:16)"

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #7 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
17:14:15 EET ---
I found the problem. It was caused by newlines in the custom build tools'
command line. I've replaced the "if" lines with the && operator and the problem
is gone.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736


Vladimir Panteleev <thecybershadow gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull


--- Comment #8 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
17:25:20 EET ---
https://github.com/D-Programming-Language/dmd/pull/1756

Rainer, would you mind reviewing that?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736



--- Comment #9 from github-bugzilla puremagic.com 2013-03-16 09:20:25 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/7721267c2c9f1caa0876a8e00cba48ae831fa7e8
Update VS2010 project files (Issue 9736)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9736


Vladimir Panteleev <thecybershadow gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


--- Comment #10 from Vladimir Panteleev <thecybershadow gmail.com> 2013-03-16
18:39:22 EET ---
Thanks!

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 16 2013