@@ -64,7 +64,8 @@ private void GenerateStubs()
64
64
var classList = new AssemblyClassTable
65
65
{
66
66
AssemblyName = _tablesContext . AssemblyDefinition . Name . Name ,
67
- ProjectName = _safeProjectName
67
+ ProjectName = _safeProjectName ,
68
+ IsInterop = ! _withoutInteropCode
68
69
} ;
69
70
70
71
foreach ( var c in _tablesContext . TypeDefinitionTable . TypeDefinitions )
@@ -81,22 +82,10 @@ private void GenerateStubs()
81
82
ClassName = c . Name ,
82
83
ShortNameUpper = $ "{ _assemblyName } _{ _safeProjectName } _{ className } ". ToUpper ( ) ,
83
84
RootNamespace = _assemblyName ,
84
- ProjectName = _safeProjectName
85
+ ProjectName = _safeProjectName ,
86
+ HeaderFileName = _safeProjectName
85
87
} ;
86
88
87
- if ( ! _withoutInteropCode )
88
- {
89
- // Interop code needs to use the root namespace
90
-
91
- classStubs . HeaderFileName = $ "{ _assemblyName } _{ _safeProjectName } ";
92
- }
93
- else
94
- {
95
- // projects with Interop can use a simplified naming
96
-
97
- classStubs . HeaderFileName = _safeProjectName ;
98
- }
99
-
100
89
classList . Classes . Add ( new Class ( )
101
90
{
102
91
Name = className
@@ -241,7 +230,7 @@ private void GenerateStubs()
241
230
// user code stub
242
231
Generator generator = compiler . Compile ( SkeletonTemplates . ClassStubTemplate ) ;
243
232
244
- using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _assemblyName } _ { _safeProjectName } _{ className } .cpp") ) )
233
+ using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _safeProjectName } _{ className } .cpp") ) )
245
234
{
246
235
var output = generator . Render ( classStubs ) ;
247
236
headerFile . Write ( output ) ;
@@ -250,7 +239,7 @@ private void GenerateStubs()
250
239
// marshal code
251
240
generator = compiler . Compile ( SkeletonTemplates . ClassMarshallingCodeTemplate ) ;
252
241
253
- using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _assemblyName } _ { _safeProjectName } _{ className } _mshl.cpp") ) )
242
+ using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _safeProjectName } _{ className } _mshl.cpp") ) )
254
243
{
255
244
var output = generator . Render ( classStubs ) ;
256
245
headerFile . Write ( output ) ;
@@ -259,7 +248,7 @@ private void GenerateStubs()
259
248
// class header
260
249
generator = compiler . Compile ( SkeletonTemplates . ClassHeaderTemplate ) ;
261
250
262
- using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _assemblyName } _ { _safeProjectName } _{ className } .h") ) )
251
+ using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _safeProjectName } _{ className } .h") ) )
263
252
{
264
253
var output = generator . Render ( classStubs ) ;
265
254
headerFile . Write ( output ) ;
@@ -269,8 +258,7 @@ private void GenerateStubs()
269
258
}
270
259
}
271
260
272
- if ( ! _withoutInteropCode &&
273
- classList . Classes . Count > 0 )
261
+ if ( classList . Classes . Count > 0 )
274
262
{
275
263
FormatCompiler compiler = new FormatCompiler
276
264
{
@@ -280,8 +268,20 @@ private void GenerateStubs()
280
268
// CMake module
281
269
Generator generator = compiler . Compile ( SkeletonTemplates . CMakeModuleTemplate ) ;
282
270
283
- // FindINTEROP-NF.AwesomeLib
284
- using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "FindINTEROP-{ _safeProjectName } .cmake") ) )
271
+ string fileName ;
272
+
273
+ if ( ! _withoutInteropCode )
274
+ {
275
+ // this is an Interop library: FindINTEROP-NF.AwesomeLib.cmake
276
+ fileName = Path . Combine ( _path , $ "FindINTEROP-{ classList . AssemblyName } .cmake") ;
277
+ }
278
+ else
279
+ {
280
+ // this is a class library: FindWindows.Devices.Gpio.cmake
281
+ fileName = Path . Combine ( _path , $ "Find{ classList . AssemblyName } .cmake") ;
282
+ }
283
+
284
+ using ( var headerFile = File . CreateText ( fileName ) )
285
285
{
286
286
var output = generator . Render ( classList ) ;
287
287
headerFile . Write ( output ) ;
@@ -298,8 +298,8 @@ private void GenerateAssemblyLookup()
298
298
var assemblyLookup = new AssemblyLookupTable ( )
299
299
{
300
300
IsCoreLib = _isCoreLib ,
301
- Name = _name ,
302
- AssemblyName = _assemblyName ,
301
+ Name = _assemblyName ,
302
+ AssemblyName = _tablesContext . AssemblyDefinition . Name . Name ,
303
303
HeaderFileName = _safeProjectName ,
304
304
NativeVersion = nativeVersion ,
305
305
NativeCRC32 = "0x" + _tablesContext . NativeMethodsCrc . Current . ToString ( "X" )
@@ -373,20 +373,8 @@ private void GenerateAssemblyLookup()
373
373
374
374
FormatCompiler compiler = new FormatCompiler ( ) ;
375
375
Generator generator = compiler . Compile ( SkeletonTemplates . AssemblyLookupTemplate ) ;
376
- string filePath ;
377
-
378
- if ( ! _withoutInteropCode )
379
- {
380
- // Interop code needs to use the root namespace
381
- filePath = Path . Combine ( _path , $ "{ _assemblyName } _{ _safeProjectName } .cpp") ;
382
- }
383
- else
384
- {
385
- // projects with Interop can use a simplified naming
386
- filePath = Path . Combine ( _path , $ "{ _safeProjectName } .cpp") ;
387
- }
388
376
389
- using ( var headerFile = File . CreateText ( filePath ) )
377
+ using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ " { _safeProjectName } .cpp" ) ) )
390
378
{
391
379
var output = generator . Render ( assemblyLookup ) ;
392
380
headerFile . Write ( output ) ;
@@ -505,21 +493,11 @@ private void GenerateAssemblyHeader()
505
493
FormatCompiler compiler = new FormatCompiler ( ) ;
506
494
Generator generator = compiler . Compile ( SkeletonTemplates . AssemblyHeaderTemplate ) ;
507
495
496
+ // create stubs directory
508
497
Directory . CreateDirectory ( _path ) ;
509
- string filePath ;
510
-
511
- if ( ! _withoutInteropCode )
512
- {
513
- // Interop code needs to use the root namespace
514
- filePath = Path . Combine ( _path , $ "{ _assemblyName } _{ _safeProjectName } .h") ;
515
- }
516
- else
517
- {
518
- // projects with Interop can use a simplified naming
519
- filePath = Path . Combine ( _path , $ "{ _safeProjectName } .h") ;
520
- }
521
498
522
- using ( var headerFile = File . CreateText ( filePath ) )
499
+ // output header file
500
+ using ( var headerFile = File . CreateText ( Path . Combine ( _path , $ "{ _safeProjectName } .h") ) )
523
501
{
524
502
var output = generator . Render ( assemblyData ) ;
525
503
headerFile . Write ( output ) ;
0 commit comments