diff options
author | mdarocha <git@mdarocha.pl> | 2022-07-20 22:37:14 +0200 |
---|---|---|
committer | mdarocha <git@mdarocha.pl> | 2022-07-26 18:00:15 +0200 |
commit | 19403a85d93d6814d057ac4f665708b87736e483 (patch) | |
tree | b46c7e9d420923e7af75e99bab0f7a75e57e67a3 /pkgs | |
parent | 3bbb296d9a0088c314ce83038b896753bbe33acb (diff) | |
download | nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar.gz nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar.bz2 nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar.lz nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar.xz nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.tar.zst nixpkgs-19403a85d93d6814d057ac4f665708b87736e483.zip |
buildDotnetModule: add option to make a self-contained build
Diffstat (limited to 'pkgs')
4 files changed, 19 insertions, 2 deletions
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix index 15fe5a2c5d4..339eac16b0b 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix @@ -55,6 +55,8 @@ # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc. , buildType ? "Release" +# If set to true, builds the application as a self-contained - removing the runtime dependency on dotnet +, selfContainedBuild ? false # The dotnet SDK to use. , dotnet-sdk ? dotnetCorePackages.sdk_6_0 # The dotnet runtime to use. diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh index 5a5ece6d997..a8a830195ea 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh +++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh @@ -14,6 +14,12 @@ dotnetBuildHook() { parallelBuildFlag="false" fi + if [ "${selfContainedBuild-}" ]; then + dotnetBuildFlags+=("--self-contained") + else + dotnetBuildFlags+=("--no-self-contained") + fi + if [ "${version-}" ]; then versionFlag="-p:Version=${version-}" fi diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh index 675006508f6..0a881fae9cf 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh +++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh @@ -4,8 +4,12 @@ makeWrapperArgs=( ${makeWrapperArgs-} ) # First argument is the executable you want to wrap, # the second is the destination for the wrapper. wrapDotnetProgram() { + if [ ! "${selfContainedBuild-}" ]; then + dotnetRootFlag=("--set" "DOTNET_ROOT" "@dotnetRuntime@") + fi + makeWrapper "$1" "$2" \ - --set "DOTNET_ROOT" "@dotnetRuntime@" \ + "${dotnetRootFlag[@]}" \ --suffix "LD_LIBRARY_PATH" : "@runtimeDeps@" \ "${gappsWrapperArgs[@]}" \ "${makeWrapperArgs[@]}" diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh index 7984c5ebd3c..fd88ea32ec0 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh +++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh @@ -6,6 +6,12 @@ dotnetInstallHook() { runHook preInstall + if [ "${selfContainedBuild-}" ]; then + dotnetInstallFlags+=("--self-contained") + else + dotnetInstallFlags+=("--no-self-contained") + fi + for project in ${projectFile[@]}; do env \ dotnet publish "$project" \ @@ -15,7 +21,6 @@ dotnetInstallHook() { --output "$out/lib/${pname}" \ --configuration "@buildType@" \ --no-build \ - --no-self-contained \ ${dotnetInstallFlags[@]} \ ${dotnetFlags[@]} done |