Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at fix-function-merge 76 lines 1.8 kB view raw
1{ lib 2, stdenv 3, buildGoModule 4, fetchFromGitHub 5, pkg-config 6, makeWrapper 7, go 8, nodejs 9, zlib 10 # Linux specific dependencies 11, gtk3 12, webkitgtk 13}: 14 15buildGoModule rec { 16 pname = "wails"; 17 version = "2.9.1"; 18 19 src = fetchFromGitHub { 20 owner = "wailsapp"; 21 repo = pname; 22 rev = "v${version}"; 23 hash = "sha256-dtfFeNK7ZfqriK4S0/+Wor1hUJv5kgnRWURVqt+RrNU="; 24 } + "/v2"; 25 26 vendorHash = "sha256-15Vo4AKmd9qOF0ea1klTlrXJOUs+IHvsNT2rw4R7ZiU="; 27 28 proxyVendor = true; 29 30 subPackages = [ "cmd/wails" ]; 31 32 # These packages are needed to build wails 33 # and will also need to be used when building a wails app. 34 nativeBuildInputs = [ 35 pkg-config 36 makeWrapper 37 ]; 38 39 # Wails apps are built with Go, so we need to be able to 40 # add it in propagatedBuildInputs. 41 allowGoReference = true; 42 43 # Following packages are required when wails used as a builder. 44 propagatedBuildInputs = [ 45 pkg-config 46 go 47 stdenv.cc 48 nodejs 49 ] ++ lib.optionals stdenv.isLinux [ 50 gtk3 51 webkitgtk 52 ]; 53 54 ldflags = [ 55 "-s" 56 "-w" 57 ]; 58 59 # As Wails calls a compiler, certain apps and libraries need to be made available. 60 postFixup = '' 61 wrapProgram $out/bin/wails \ 62 --prefix PATH : ${lib.makeBinPath [ pkg-config go stdenv.cc nodejs ]} \ 63 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath (lib.optionals stdenv.isLinux [ gtk3 webkitgtk ])}" \ 64 --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH" \ 65 --set CGO_LDFLAGS "-L${lib.makeLibraryPath [ zlib ]}" 66 ''; 67 68 meta = { 69 description = "Build applications using Go + HTML + CSS + JS"; 70 homepage = "https://wails.io"; 71 license = lib.licenses.mit; 72 maintainers = with lib.maintainers; [ ianmjones ]; 73 mainProgram = "wails"; 74 platforms = lib.platforms.unix; 75 }; 76}