MacSummer / make-it-so

Automatically exported from code.google.com/p/make-it-so
1 stars 0 forks source link

Does not support multiple platform types (e.g. 32 and 64 bit builds) #22

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
All our projects have 32 and 64 bit builds, these equate to Win32 and x64 
platform types. For both platform types the configuration names are the same 
(Release and Debug).

When I convert the projects all the makefiles end up with two Debug and two 
Release target configurations with nothing to identify them uniquely.

To fix please replace the following line in ProjectParser_CPP.cs for both 2008 
and 2010:

           configurationInfo.Name = Utils.call(() => (vcConfiguration.ConfigurationName));

With this code:
            // Get target name (e.g. Release|Win32)
            string pipeString = Utils.call(() => (vcConfiguration.Name));
            // Replace '|' with '_'
            var pipe_index = pipeString.IndexOf("|");
            configurationInfo.Name = pipeString.Substring(0, pipe_index);
            configurationInfo.Name += "_";
            configurationInfo.Name += pipeString.Substring(pipe_index + 1);

This will generate makefiles with target names Release_Win32, Release_x64, 
Debug_Win32 and Debug_x64.

Since this will break exiting usage you might want to make it a command line 
option to use this new convention.

Original issue reported on code.google.com by paulmisl...@gmail.com on 12 Sep 2012 at 6:33