status-mobile/nix
Jakub Sokołowski 0d78e71ece
allow for TARGET_OS to be not set
If we don't we will rebuild status-go for every platform
when we running `make shell`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-17 12:07:18 -04:00
..
desktop nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
lein nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
mobile nix: Only include fastlane in main shell when targetting iOS. 2019-07-15 16:35:01 +02:00
patched-go nix: Make status-go mobile artifacts reproducible 2019-07-15 16:08:01 +02:00
status-go nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
targets nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
tools nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
README.md allow for TARGET_OS to be not set 2019-07-17 12:07:18 -04:00
bootstrapped-shell.nix nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
derivation.nix nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
nix.conf add alternative nix-cache in China 2019-05-13 19:37:19 +02:00
nixpkgs-bootstrap.nix Ensure shell.nix uses same nixpkgs as the rest of the environment 2019-06-20 09:18:24 -04:00
platform.nix allow for TARGET_OS to be not set 2019-07-17 12:07:18 -04:00
shell.sh allow for TARGET_OS to be not set 2019-07-17 12:07:18 -04:00
utils.nix Print a friendlier message when Xcode/iPhone SDK are not installed 2019-05-10 15:07:52 +02:00

README.md

Description

This folder contains configuration for Nix, a purely functional package manager used by the Status app for its build process.

Configuration

The main config file is nix/nix.conf and its main purpose is defining the binary caches which allow download of packages to avoid having to compile them yourself locally.

NOTE: If you are in Asia you might want to move the nix-cache-cn to be first in order of extra-substituters. Removing cache.nixos.org could also help.

Shell

In order to access an interactive Nix shell a user should run make shell.

The Nix shell is started in this repo via the nix/shell.sh script, which is a wrapper around the nix-shell command and is intended for use with our main Makefile. This allows for an implicit use of nix-shell as the default shell in the Makefile.

By default the shell starts without any specific target platform, if you want to change that you should export the TARGET_OS env variable with the right value:

TARGET_OS=android make shell

This way your shell and all other nix commands should run in a setup that is tailored towards Android development.

For valid values you can check the nix/platform.nix file.