-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
98 lines (79 loc) · 5.01 KB
/
Copy pathDirectory.Build.props
File metadata and controls
98 lines (79 loc) · 5.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<Project>
<PropertyGroup>
<!-- Package Versions -->
<FSharpCoreVersion>8.0.100</FSharpCoreVersion>
<SystemReactiveVersion>6.0.1</SystemReactiveVersion>
<FSharpControlReactiveVersion>6.1.2</FSharpControlReactiveVersion>
<!-- Whisper.cpp version - used for runtime downloads, not build-time -->
<WhisperCppVersion>v1.7.6</WhisperCppVersion>
<!-- Standard nuget.org location -->
<RestoreSources>https://api.nuget.org/v3/index.json</RestoreSources>
<!-- Enable GPU testing on specific machines (customize as needed) -->
<WHISPERFS_TESTGPU Condition="'$(COMPUTERNAME)' == 'YOUR-GPU-MACHINE'">true</WHISPERFS_TESTGPU>
<!-- Runtime capability detection flags for tests -->
<TestWithCuda Condition="'$(WHISPERFS_TESTGPU)' == 'true' AND Exists('$(CUDA_PATH)')">true</TestWithCuda>
<TestWithCoreML Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</TestWithCoreML>
<!-- F# Compiler flags -->
<!-- Turn on unused variable warnings -->
<OtherFlags>--warnon:1182 $(OtherFlags)</OtherFlags>
<!-- Turn on documentation warnings -->
<OtherFlags>--warnon:3390 $(OtherFlags)</OtherFlags>
<!-- Turn off 'experimental' warnings for advanced features -->
<OtherFlags>--nowarn:57 $(OtherFlags)</OtherFlags>
</PropertyGroup>
<PropertyGroup>
<!-- Package metadata -->
<Version>0.1.0</Version>
<Authors>WhisperFS Contributors</Authors>
<Owners>WhisperFS Maintainers</Owners>
<PackageProjectUrl>https://github.com/yourusername/WhisperFS</PackageProjectUrl>
<RepositoryUrl>https://github.com/yourusername/WhisperFS</RepositoryUrl>
<RepositoryBranch>main</RepositoryBranch>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
<Copyright>Copyright 2024-2025 WhisperFS Contributors</Copyright>
<PackageTags>F# fsharp Whisper Speech Recognition Transcription Audio AI ML whisper.cpp GPU CUDA</PackageTags>
<Description>F# bindings for whisper.cpp with comprehensive streaming and batch transcription support. Features automatic runtime selection, model management, and GPU acceleration support across Windows, Linux, and macOS.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<!-- Generate documentation files -->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Enable Source Link for better debugging experience -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<!-- Local build uses unique version by day -->
<PackageVersion Condition="'$(GITHUB_ACTIONS)' != 'true'">$(Version)-local-$([System.DateTime]::Now.ToString(`yyMMdd`))</PackageVersion>
<!-- CI/CD Package versioning -->
<!-- When running in GitHub Actions, use the version from the Version property -->
<!-- We use semantic versioning: Major.Minor.Patch -->
<PackageVersion Condition="'$(GITHUB_ACTIONS)' == 'true' AND '$(GITHUB_REF_TYPE)' != 'tag'">$(Version)-preview-$(GITHUB_RUN_NUMBER)</PackageVersion>
<PackageVersion Condition="'$(GITHUB_ACTIONS)' == 'true' AND '$(GITHUB_REF_TYPE)' == 'tag'">$(Version)</PackageVersion>
<!-- Package output directory -->
<PackageOutputPath>$(MSBuildThisFileDirectory)bin/packages</PackageOutputPath>
<!-- NuSpec properties -->
<NuspecProperties>Authors=$(Authors);Owners=$(Owners);ProjectId=$(MSBuildProjectName);PackageVersion=$(PackageVersion)</NuspecProperties>
</PropertyGroup>
<!-- WhisperFS uses dynamic runtime loading, not bundled native libraries -->
<!-- Native libraries are downloaded at runtime based on system capabilities -->
<!-- Models are downloaded from Hugging Face on demand -->
<!-- Define runtime identifiers for multi-platform support -->
<PropertyGroup>
<RuntimeIdentifiers>win-x64;win-arm64;linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
</PropertyGroup>
<!-- Source Link Configuration -->
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>
<!-- Validation target to ensure version consistency -->
<Target Name="ValidateVersion" BeforeTargets="PrepareForBuild"
Condition="'$(GITHUB_REF_TYPE)' == 'tag' AND '$(GITHUB_REF_NAME)' != '' AND '$(GITHUB_REF_NAME)' != 'v$(Version)'">
<Error Text="Mismatch between GitHub tag '$(GITHUB_REF_NAME)' and version 'v$(Version)' in Directory.Build.props. Please ensure they match." />
</Target>
<!-- WhisperFS downloads native libraries at runtime, not build time -->
<!-- This allows optimal runtime selection based on system capabilities -->
<Target Name="ValidateRuntimeConfig" BeforeTargets="Build">
<Message Importance="normal" Text="WhisperFS will download native libraries at runtime based on system capabilities (CUDA, AVX, BLAS, CoreML)" />
</Target>
</Project>