mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-13 07:23:39 +00:00
all: add Nix flake file
This adds a flake.nix file that makes it possible to quickly create a development environment. You can download Nix here, for use on your Linux or macOS system: https://nixos.org/download.html After you have installed Nix, you can enter the development environment as follows: nix develop This drops you into a bash shell, where you can install TinyGo simply using the following command: go install That's all! Assuming you've set up your $PATH correctly, you can now use the tinygo command as usual: tinygo version You can also do many other things from this environment. Building and flashing should work as you're used to: it's not a VM or container so there are no access restrictions.
This commit is contained in:
committed by
Ron Evans
parent
d801d0cd53
commit
72b715fa99
@@ -43,6 +43,12 @@ var hasBuiltinTools = false
|
||||
// directory.
|
||||
var TINYGOROOT string
|
||||
|
||||
// If a particular Clang resource dir must always be used and TinyGo can't
|
||||
// figure out the directory using heuristics, this global can be set using a
|
||||
// linker flag.
|
||||
// This is needed for Nix.
|
||||
var clangResourceDir string
|
||||
|
||||
// Variables read from a `go env` command invocation.
|
||||
var goEnvVars struct {
|
||||
GOPATH string
|
||||
@@ -298,6 +304,15 @@ func isSourceDir(root string) bool {
|
||||
// In that case, the resource dir is always returned (even when linking
|
||||
// dynamically against LLVM) because libclang always needs this directory.
|
||||
func ClangResourceDir(libclang bool) string {
|
||||
if clangResourceDir != "" {
|
||||
// The resource dir is forced to a particular value at build time.
|
||||
// This is needed on Nix for example, where Clang and libclang don't
|
||||
// know their own resource dir.
|
||||
// Also see:
|
||||
// https://discourse.nixos.org/t/why-is-the-clang-resource-dir-split-in-a-separate-package/34114
|
||||
return clangResourceDir
|
||||
}
|
||||
|
||||
if !hasBuiltinTools && !libclang {
|
||||
// Using external tools, so the resource dir doesn't need to be
|
||||
// specified. Clang knows where to find it.
|
||||
|
||||
Reference in New Issue
Block a user