Open GoogleCodeExporter opened 9 years ago
This pattern is used in Chromium to work around Visual Studio stupidity with
MIDL.
MIDL processes .idl files and in turn generates multiple files, by default into
the <(INTERMEDIATE_DIR> ($(IntDir) on Windows)
$(InputName).h
$(InputName)_i.c - An IID file
$(InputName)_p.c - The Proxy File
Dependents typically need to include the .h, which defines the interfaces,
GUIDS, etc.
However, the following results in an error, because no actual object files are
produced.
{
'target_name': 'generate_my_idl',
'type': '(static|shared)_library',
'sources': [
'my_file.idl',
]
}
However, as currently implemented, the following works, allowing targets to
depend on the common generated header. Because it is a 'none' target, Visual
Studio does not complain, because it maps the type as a 'Utility' project
{
'target_name': 'generate_my_idl',
'type': 'none',
'sources': [
'my_file.idl',
]
}
The reason IDL files are somewhat special is that they like normal 'rules',
except Visual Studio has a built-in handler for it, with options/configuration
in the IDE, and gyp knows this.
For a more concrete example, see
http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/chrome_frame.gyp?an
notate=99949#l60
Original comment by rsleevi@chromium.org
on 20 Sep 2011 at 3:26
Original issue reported on code.google.com by
ev...@google.com
on 12 Sep 2011 at 10:42