summaryrefslogtreecommitdiffstats
path: root/doc/hooks/julec.section.md
blob: f85619ac39e71f631eb3bfe89f074129f5a41c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# julec.hook {#julec-hook}

[Jule](https://jule.dev) is an effective programming language designed to build efficient, fast, reliable and safe software while maintaining simplicity.

In Nixpkgs, `jule.hook` overrides the default build, check and install phases.

## Example code snippet {#julec-hook-example-code-snippet}

```nix
{
  julec,
  clangStdenv,
}:

clangStdenv.mkDerivation (finalAttrs: {
  # ...

  nativeBuildInputs = [ julec.hook ];

  # Customize filenames if needed
  JULE_SRC_DIR = "./src";
  JULE_OUT_DIR = "./bin";
  JULE_OUT_NAME = "hello-jule";
  JULE_TEST_DIR = "./tests";
  JULE_TEST_OUT_DIR = "./test-bin";
  JULE_TEST_OUT_NAME = "hello-jule-test";

  # ...
})
```

## Variables controlling julec.hook {#julec-hook-variables}

### `JULE_SRC_DIR` {#julec-hook-variable-jule-src-dir}

Specifies the source directory containing `main.jule`.
Default is `./src`.

### `JULE_OUT_DIR` {#julec-hook-variable-jule-out-dir}

Specifies the output directory for the compiled binary.
Default is `./bin`.

### `JULE_OUT_NAME` {#julec-hook-variable-jule-out-name}

Specifies the name of the compiled binary.
Default is `output`.

### `JULE_TEST_DIR` {#julec-hook-variable-jule-test-dir}

Specifies the directory containing test files.
Default is the value of [`JULE_SRC_DIR`](#julec-hook-variable-jule-src-dir).

### `JULE_TEST_OUT_DIR` {#julec-hook-variable-jule-test-out-dir}

Specifies the output directory for compiled test binaries.
Default is the value of [`JULE_OUT_DIR`](#julec-hook-variable-jule-out-dir).

### `JULE_TEST_OUT_NAME` {#julec-hook-variable-jule-test-out-name}

Specifies the name of the compiled test binary.
Default is the value of [`JULE_OUT_NAME`](#julec-hook-variable-jule-out-name) with `-test` suffix.

### `dontUseJulecBuild` {#julec-hook-variable-dontusejulecbuild}

When set to true, doesn't use the predefined `julecBuildHook`.
Default is false.

### `dontUseJulecCheck` {#julec-hook-variable-dontusejuleccheck}

When set to true, doesn't use the predefined `julecCheckHook`.
Default is false.

### `dontUseJulecInstall` {#julec-hook-variable-dontusejulecinstall}

When set to true, doesn't use the predefined `julecInstallHook`.
Default is false.