Frequently Asked Questions

I am getting weird Git errors about an unknown -C option

You may be using a system with an old version of Git. You may install a recent version of Git for your user by running nix-env -iA nixpkgs.git.

A file I created isn’t found when I run nix build

If your top is a Git repository, you must git add those files to make them recognized by Nix.

An App can’t find a build product from another App

EPNix enables parallel builds by default. These means that if App dependencies aren’t specified, these Apps will compile in no particular order. Use <consumerApp>_DEPEND_DIRS += <producerApp> in your top-level Makefile.

How do I version a whole EPNix top?

Meaning, not versioning an App separate from the top. This might be justified if you don’t intend to share an App in any other top.

  1. First, create a top and an App, as in the Creating a StreamDevice IOC tutorial.

  2. Make sure to add an exception for the exampleApp folder at the end of the top’s .gitignore file:

...
# Applications and Support modules should be an EPNix dependency in flake.nix
*App
*Sup
# You can add exceptions like this:
# ---
#!myCustomLocalApp
!exampleApp
  1. Then, version both the top and the App:

git init
git add -N .
  1. Finally, in your flake.nix, you can remove any input and value in epnix.applications.apps that refers to this directory.