levyhoo / gyp

Automatically exported from code.google.com/p/gyp
0 stars 0 forks source link

ConfigurationType can not be set to Makefile for Visual Studio. (Fix inside) #422

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What is the expected output? What do you see instead?
I would like to either add support to create a Visual Studio (2013) project 
that supports the Makefile configuration type.

Please provide any additional information below.
Currently using msvs_configuration_attributes you can set the ConfigurationType 
manually. This is usually set via targets->type in gyp and actually overwrites 
any and all values manually set for ConfigurationType inside 
msvs_configuration_attributes. Currently the supported values are executable, 
shared_library, loadable_module, static_library and none. The Makefile option 
does not exist. 

One way to support this is to add support to the options list to support 
"Makefile" and modify msvs.py to include this is the enum. However this feature 
is really a MSVS only feature (as far as I know) so that puts an exception on 
the type field which is not great.

The better way to support this in my opinion it to not overwrite the 
ConfigurationType set by the msvs_configuration_attributes if the value is set. 
This can be fixed with one modification in msvs.py.

on line 1334 in msvs.py:
prepared_attrs['ConfigurationType'] = config_type

change to:
prepared_attrs['ConfigurationType'] = 
prepared_attrs.get(prepared_attrs['ConfigurationType'], config_type)

This will only update the ConfigurationType if it has not been manually set. 
This does mean that ConfigurationType in msvs_configuration_attributes 
overrides targets->type.

Original issue reported on code.google.com by valleyma...@gmail.com on 29 Apr 2014 at 4:37