diff options
| author | JassJam <[email protected]> | 2026-02-28 15:37:56 +0000 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-03-14 00:10:58 +0800 |
| commit | a92e7c4087443cd91dafe14d2a5aa316a288b7c5 (patch) | |
| tree | e356878da6af96a71d547906006fe45ebdbb8ed3 /xmake/rules/csharp/xmake.lua | |
| parent | a35ec2dcea9ca5c639ca9d1332a46ede16b959c0 (diff) | |
feat: generate csproj on demand
Diffstat (limited to 'xmake/rules/csharp/xmake.lua')
| -rw-r--r-- | xmake/rules/csharp/xmake.lua | 83 |
1 files changed, 80 insertions, 3 deletions
diff --git a/xmake/rules/csharp/xmake.lua b/xmake/rules/csharp/xmake.lua index 5d358e099..b5e76dfa9 100644 --- a/xmake/rules/csharp/xmake.lua +++ b/xmake/rules/csharp/xmake.lua @@ -24,10 +24,87 @@ -- target("app") -- set_kind("binary") -- or "shared" -- add_rules("csharp") --- add_files("src/*.cs", "src/app.csproj") +-- add_files("src/*.cs") -- --- -- optional: override runtime identifier (arch-specific) for self-contained publish (e.g. "win-x64", "linux-x64", "osx-x64", "osx-arm64") --- -- add_values("csharp.runtime_identifier", "win-x64") +-- -- optional: if a .csproj is provided, xmake uses it directly. +-- -- otherwise xmake auto-generates one in .xmake/... for dotnet build/publish. +-- -- add_files("src/app.csproj") +-- +-- -- add_values("csharp.<prop>", <value>) -- use one the properties below +-- -- add_values("csharp.properties", "AnotherProperty=Value") -- declare a custom property +-- +-- -- mapped csharp properties (lua key => generated xml): +-- -- https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target +-- -- csharp.sdk => <Project Sdk="..."> (project attribute) (defaults to "Microsoft.NET.Sdk") +-- -- csharp.target_frameworks => <TargetFrameworks> (list, ';' separated) +-- -- csharp.target_framework => <TargetFramework> (defaults to latest installed dotnet sdk major, e.g. net8.0) +-- -- csharp.implicit_usings => <ImplicitUsings> +-- -- csharp.nullable => <Nullable> +-- -- csharp.lang_version => <LangVersion> +-- -- csharp.enable_default_compile_items => <EnableDefaultCompileItems> +-- -- csharp.enable_default_embedded_resource_items => <EnableDefaultEmbeddedResourceItems> +-- -- csharp.enable_default_none_items => <EnableDefaultNoneItems> +-- -- csharp.root_namespace => <RootNamespace> +-- -- default/derived: set_basename(...) => <AssemblyName> +-- -- csharp.generate_assembly_info => <GenerateAssemblyInfo> +-- -- csharp.deterministic => <Deterministic> +-- -- default/derived: set_optimize(...) => <Optimize> +-- -- default/derived: get_plat()/get_arch() => <PlatformTarget> +-- -- csharp.prefer_32bit => <Prefer32Bit> +-- -- csharp.allow_unsafe_blocks => <AllowUnsafeBlocks> +-- -- csharp.check_for_overflow_underflow => <CheckForOverflowUnderflow> +-- -- default/derived: set_warnings(...) => <WarningLevel> +-- -- csharp.analysis_level => <AnalysisLevel> +-- -- csharp.enable_net_analyzers => <EnableNETAnalyzers> +-- -- csharp.enforce_code_style_in_build => <EnforceCodeStyleInBuild> +-- -- default/derived: set_warnings("error") => <TreatWarningsAsErrors>true</...> +-- -- csharp.warnings_as_errors => <WarningsAsErrors> (list, ';' separated) +-- -- csharp.warnings_not_as_errors => <WarningsNotAsErrors> (list, ';' separated) +-- -- default/derived: add_defines(...) => <DefineConstants> +-- -- csharp.error_log => <ErrorLog> +-- -- default/derived: set_symbols(...) => <DebugType>/<DebugSymbols> +-- -- csharp.generate_documentation_file => <GenerateDocumentationFile> +-- -- csharp.documentation_file => <DocumentationFile> +-- -- csharp.runtime_identifier => <RuntimeIdentifier> +-- -- csharp.runtime_identifiers => <RuntimeIdentifiers> (list, ';' separated) +-- -- csharp.self_contained => <SelfContained> +-- -- csharp.use_app_host => <UseAppHost> +-- -- csharp.roll_forward => <RollForward> +-- -- csharp.publish_single_file => <PublishSingleFile> +-- -- csharp.publish_trimmed => <PublishTrimmed> +-- -- csharp.trim_mode => <TrimMode> +-- -- csharp.publish_ready_to_run => <PublishReadyToRun> +-- -- csharp.invariant_globalization => <InvariantGlobalization> +-- -- csharp.include_native_libraries_for_self_extract => <IncludeNativeLibrariesForSelfExtract> +-- -- csharp.enable_compression_in_single_file => <EnableCompressionInSingleFile> +-- -- csharp.publish_aot => <PublishAot> +-- -- csharp.strip_symbols => <StripSymbols> +-- -- csharp.enable_trim_analyzer => <EnableTrimAnalyzer> +-- -- csharp.json_serializer_is_reflection_enabled_by_default => <JsonSerializerIsReflectionEnabledByDefault> +-- -- csharp.satellite_resource_languages => <SatelliteResourceLanguages> (list, ';' separated) +-- -- csharp.version => <Version> +-- -- csharp.assembly_version => <AssemblyVersion> +-- -- csharp.file_version => <FileVersion> +-- -- csharp.informational_version => <InformationalVersion> +-- -- csharp.package_id => <PackageId> +-- -- csharp.authors => <Authors> +-- -- csharp.company => <Company> +-- -- csharp.product => <Product> +-- -- csharp.description => <Description> +-- -- csharp.copyright => <Copyright> +-- -- csharp.repository_url => <RepositoryUrl> +-- -- csharp.repository_type => <RepositoryType> +-- -- csharp.package_license_expression => <PackageLicenseExpression> +-- -- csharp.package_project_url => <PackageProjectUrl> +-- -- csharp.neutral_language => <NeutralLanguage> +-- -- csharp.enable_preview_features => <EnablePreviewFeatures> +-- -- csharp.generate_runtime_configuration_files => <GenerateRuntimeConfigurationFiles> +-- -- csharp.copy_local_lock_file_assemblies => <CopyLocalLockFileAssemblies> +-- -- csharp.append_target_framework_to_output_path => <AppendTargetFrameworkToOutputPath> (default: false) +-- -- csharp.append_runtime_identifier_to_output_path => <AppendRuntimeIdentifierToOutputPath> (default: false) +-- -- csharp.produce_reference_assembly => <ProduceReferenceAssembly> +-- -- csharp.disable_implicit_framework_references => <DisableImplicitFrameworkReferences> +-- -- csharp.generate_target_framework_attribute => <GenerateTargetFrameworkAttribute> -- @endcode -- rule("csharp") |
