login Signup

Speeding up the creation of makefiles with Visual Studio

Hi, we're using EA 7.2.x with Visual Studio 2012. In our solution, we have over 300 projects. 268 are C#, 48 are VB, and the rest are C++. We see acceleration because many of these projects can run in parallel and independently of each other.

In steady-state, we see 3-4x speed improvement. However, our first-time runs have 35-minute makefile creation times. We are presently sensitive about this makefile creation time because EA is new to us and we're trying optimize our experiences. This means we're checking out fresh code, updating environment variables, and adjusting some inputs. Since we have many C# and VB projects, we feel maybe there is room to make things even better.

We have been experimenting with the parameters below. We're wondering about the PARSE_PROJECTS value and why it doesn't seem to be influencing our makefile creation time.

 ECADDIN_RUN_LOCAL_PROJECT (for a final packaging project)

Is ECADDIN_DONT_PARSE_PROJECTS suitable for a Visual Studio solution that is primarily C# and VB?

Are there other options we should consider to reduce the makefile creation time?

avatar image By marcoman 2.2k asked Jul 10, 2014 at 03:05 PM
more ▼
(comments are locked)
10|750 characters needed characters left

2 answers: sort voted first

ECADDIN_DONT_PARSE_PROJECTS is only relevant for C++ files. C# and VB projects are not parsed.

The slow parse time is probably due to the conversion of project references to file references. emake does this to prevent msbuild building dependent projects. However, later versions of msbuild allow you to ignore building dependent projects (/p:BuildProjectReferences=false), so you can safely turn off emake's conversion of project references to file references by setting ECADDIN_REMOVE_DEPENDENCIES=false.

avatar image By rthomas 2.6k answered Jul 10, 2014 at 06:34 PM
more ▼
(comments are locked)
10|750 characters needed characters left

Something to try... To avoid the conversion of the solution to nmake makefiles, set “Always Rescan Solution” to false. This will cache the previously generated makefiles and use them next time (if nothing has changed that would affect the makefiles)

Also, to avoid an excessively long initial (no history) build, set “Use Order Only Dependencies” to true.

Both of these settings are default in v4.0.

avatar image By emake_curious 2.7k answered Jul 10, 2014 at 03:28 PM
more ▼
(comments are locked)
avatar image marcoman Jul 10, 2014 at 03:38 PM

Thanks for those tips, but we already had those false and true.

10|750 characters needed characters left
Your answer
toggle preview:

Up to 8 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.