Skip to content

Commit a00c2cc

Browse files
committed
Remove _stub.cs file generation
1 parent 31795c3 commit a00c2cc

1 file changed

Lines changed: 56 additions & 72 deletions

File tree

csharp/ql/src/Stubs/make_stubs_nuget.py

Lines changed: 56 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@
100100
stubsDir = os.path.join(outputDir, stubsDirName)
101101
os.makedirs(stubsDir)
102102

103-
stubFileName = '_stub.cs'
104-
105103
frameworksDirName = 'frameworks'
106104
frameworksDir = os.path.join(stubsDir, frameworksDirName)
107105

@@ -124,66 +122,7 @@
124122
if not os.path.exists(packageDir):
125123
os.makedirs(packageDir)
126124
print(' * Processing package: ' + name + '/' + version)
127-
with open(os.path.join(packageDir, stubFileName), 'a') as f:
128-
with open(os.path.join(packageDir, name + '.csproj'), 'a') as pf:
129-
130-
pf.write('<Project Sdk="Microsoft.NET.Sdk">\n')
131-
pf.write(' <PropertyGroup>\n')
132-
pf.write(' <TargetFramework>net5.0</TargetFramework>\n')
133-
pf.write(' <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n')
134-
pf.write(' <OutputPath>bin\</OutputPath>\n')
135-
pf.write(
136-
' <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>\n')
137-
pf.write(' </PropertyGroup>\n\n')
138-
pf.write(' <ItemGroup>\n')
139-
140-
f.write('// Stub for ' + name + ' version ' + version + '\n\n')
141-
142-
dlls = set()
143-
if 'compile' in data['targets'][target][package]:
144-
for dll in data['targets'][target][package]['compile']:
145-
dlls.add(
146-
(name + '/' + version + '/' + dll).lower())
147-
if 'runtime' in data['targets'][target][package]:
148-
for dll in data['targets'][target][package]['runtime']:
149-
dlls.add((name + '/' + version + '/' + dll).lower())
150-
151-
for pathInfo in pathInfos:
152-
for dll in dlls:
153-
if pathInfo.lower().endswith(dll):
154-
copiedFiles.add(pathInfo)
155-
shutil.copy2(pathInfos[pathInfo], packageDir)
156-
f.write('// semmle-extractor-options: ' +
157-
os.path.basename(pathInfos[pathInfo]) + '\n')
158-
159-
if 'dependencies' in data['targets'][target][package]:
160-
for dependency in data['targets'][target][package]['dependencies'].keys():
161-
depVersion = data['targets'][target][package]['dependencies'][dependency]
162-
f.write('// semmle-extractor-options: ../../' +
163-
dependency + '/' + depVersion + '/' + stubFileName + '\n')
164-
pf.write(' <ProjectReference Include="../../' +
165-
dependency + '/' + depVersion + '/' + dependency + '.csproj" />\n')
166-
167-
if 'frameworkReferences' in data['targets'][target][package]:
168-
if not os.path.exists(frameworksDir):
169-
os.makedirs(frameworksDir)
170-
for framework in data['targets'][target][package]['frameworkReferences']:
171-
frameworks.add(framework)
172-
frameworkDir = os.path.join(
173-
frameworksDir, framework)
174-
if not os.path.exists(frameworkDir):
175-
os.makedirs(frameworkDir)
176-
f.write('// semmle-extractor-options: ../../' + frameworksDirName + '/' +
177-
framework + '/' + stubFileName + '\n')
178-
pf.write(' <ProjectReference Include="../../' +
179-
frameworksDirName + '/' + framework + '/' + framework + '.csproj" />\n')
180-
181-
pf.write(' </ItemGroup>\n')
182-
pf.write('</Project>\n')
183-
184-
for framework in frameworks:
185-
with open(os.path.join(frameworksDir, framework, stubFileName), 'a') as f:
186-
with open(os.path.join(frameworksDir, framework, framework + '.csproj'), 'a') as pf:
125+
with open(os.path.join(packageDir, name + '.csproj'), 'a') as pf:
187126

188127
pf.write('<Project Sdk="Microsoft.NET.Sdk">\n')
189128
pf.write(' <PropertyGroup>\n')
@@ -192,18 +131,63 @@
192131
pf.write(' <OutputPath>bin\</OutputPath>\n')
193132
pf.write(
194133
' <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>\n')
195-
pf.write(' </PropertyGroup>\n')
196-
pf.write('</Project>\n')
197-
198-
f.write('// Stub for ' + framework + '\n\n')
134+
pf.write(' </PropertyGroup>\n\n')
135+
pf.write(' <ItemGroup>\n')
136+
137+
dlls = set()
138+
if 'compile' in data['targets'][target][package]:
139+
for dll in data['targets'][target][package]['compile']:
140+
dlls.add(
141+
(name + '/' + version + '/' + dll).lower())
142+
if 'runtime' in data['targets'][target][package]:
143+
for dll in data['targets'][target][package]['runtime']:
144+
dlls.add((name + '/' + version + '/' + dll).lower())
199145

200146
for pathInfo in pathInfos:
201-
if 'packs/' + framework.lower() in pathInfo.lower():
202-
copiedFiles.add(pathInfo)
203-
shutil.copy2(pathInfos[pathInfo], os.path.join(
204-
frameworksDir, framework))
205-
f.write('// semmle-extractor-options: ' +
206-
os.path.basename(pathInfos[pathInfo]) + '\n')
147+
for dll in dlls:
148+
if pathInfo.lower().endswith(dll):
149+
copiedFiles.add(pathInfo)
150+
shutil.copy2(pathInfos[pathInfo], packageDir)
151+
152+
if 'dependencies' in data['targets'][target][package]:
153+
for dependency in data['targets'][target][package]['dependencies'].keys():
154+
depVersion = data['targets'][target][package]['dependencies'][dependency]
155+
pf.write(' <ProjectReference Include="../../' +
156+
dependency + '/' + depVersion + '/' + dependency + '.csproj" />\n')
157+
158+
if 'frameworkReferences' in data['targets'][target][package]:
159+
if not os.path.exists(frameworksDir):
160+
os.makedirs(frameworksDir)
161+
for framework in data['targets'][target][package]['frameworkReferences']:
162+
frameworks.add(framework)
163+
frameworkDir = os.path.join(
164+
frameworksDir, framework)
165+
if not os.path.exists(frameworkDir):
166+
os.makedirs(frameworkDir)
167+
pf.write(' <ProjectReference Include="../../' +
168+
frameworksDirName + '/' + framework + '/' + framework + '.csproj" />\n')
169+
170+
pf.write(' </ItemGroup>\n')
171+
pf.write('</Project>\n')
172+
173+
for framework in frameworks:
174+
with open(os.path.join(frameworksDir, framework, framework + '.csproj'), 'a') as pf:
175+
176+
pf.write('<Project Sdk="Microsoft.NET.Sdk">\n')
177+
pf.write(' <PropertyGroup>\n')
178+
pf.write(' <TargetFramework>net5.0</TargetFramework>\n')
179+
pf.write(' <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n')
180+
pf.write(' <OutputPath>bin\</OutputPath>\n')
181+
pf.write(
182+
' <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>\n')
183+
pf.write(' </PropertyGroup>\n')
184+
pf.write('</Project>\n')
185+
186+
for pathInfo in pathInfos:
187+
if 'packs/' + framework.lower() in pathInfo.lower():
188+
copiedFiles.add(pathInfo)
189+
shutil.copy2(pathInfos[pathInfo], os.path.join(
190+
frameworksDir, framework))
207191

208192
for pathInfo in pathInfos:
209193
if pathInfo not in copiedFiles:

0 commit comments

Comments
 (0)