Skip to content

Commit a6ac79b

Browse files
committed
Add source generator support for TypeScript parser native libraries
- Detect source generator projects based on OutputType and IncludeBuildOutput - Use AdditionalFiles and EmbeddedResource for source generators - Keep existing CopyToOutputDirectory behavior for regular projects - Update publish logic to exclude source generator projects
1 parent fa03a88 commit a6ac79b

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

TypeScriptParser/build/TypeScriptParser.targets

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,29 @@
88
<TypeScriptParserRuntimeIdentifier Condition="'$(TypeScriptParserRuntimeIdentifier)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx-arm64</TypeScriptParserRuntimeIdentifier>
99

1010
<TypeScriptParserNativePath>$(MSBuildThisFileDirectory)../runtimes/$(TypeScriptParserRuntimeIdentifier)/native/</TypeScriptParserNativePath>
11+
12+
<!-- 检测是否为源生成器项目 -->
13+
<IsSourceGenerator Condition="'$(OutputType)' == 'Library' AND '$(IncludeBuildOutput)' == 'false'">true</IsSourceGenerator>
1114
</PropertyGroup>
1215

13-
<!-- 包含native库文件到输出目录 -->
16+
<!-- 收集native库文件 -->
1417
<ItemGroup Condition="Exists('$(TypeScriptParserNativePath)')">
1518
<TypeScriptParserNativeFiles Include="$(TypeScriptParserNativePath)**/*" />
19+
</ItemGroup>
20+
21+
<!-- 源生成器项目:使用AdditionalFiles方式 -->
22+
<ItemGroup Condition="'$(IsSourceGenerator)' == 'true' AND '@(TypeScriptParserNativeFiles)' != ''">
23+
<AdditionalFiles Include="@(TypeScriptParserNativeFiles)" />
24+
<EmbeddedResource Include="@(TypeScriptParserNativeFiles)" />
25+
</ItemGroup>
26+
27+
<!-- 常规项目:复制到输出目录 -->
28+
<ItemGroup Condition="'$(IsSourceGenerator)' != 'true' AND '@(TypeScriptParserNativeFiles)' != ''">
1629
<None Include="@(TypeScriptParserNativeFiles)" CopyToOutputDirectory="PreserveNewest" />
1730
</ItemGroup>
1831

19-
<!-- 发布时包含native库文件 -->
20-
<ItemGroup Condition="'$(PublishDir)' != '' AND Exists('$(TypeScriptParserNativePath)')">
32+
<!-- 发布时包含native库文件(非源生成器项目) -->
33+
<ItemGroup Condition="'$(IsSourceGenerator)' != 'true' AND '$(PublishDir)' != '' AND '@(TypeScriptParserNativeFiles)' != ''">
2134
<ResolvedFileToPublish Include="@(TypeScriptParserNativeFiles)">
2235
<RelativePath>%(Filename)%(Extension)</RelativePath>
2336
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>

0 commit comments

Comments
 (0)