DEVELOPMENT ENVIRONMENT

~liljamo/hare-rust-ffi-test

ref: b76de4b1f83c99c225c83e958636fd6dca09eedf hare-rust-ffi-test/justfile -rw-r--r-- 2.1 KiB
b76de4b1Jonni Liljamo feat: init 4 days ago
                                                                                
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
build:
    #!/usr/bin/env sh
    HAREPATH=""
    if [[ -z "${HAREPATH}" ]]; then
      HAREPATH="$(hare version -v | sed -n '/HAREPATH/{n;p;}' | tr -d '[:space:]')"
      echo "HAREPATH not set, using default: $HAREPATH"
    else
      HAREPATH="${HAREPATH}"
    fi

    # setup build dir
    rm -rf build/
    mkdir -p build/bin/
    mkdir -p build/o/

    # build rust staticlib
    cargo build --release

    # build hare objects
    hare build -F -lc -t o -o build/o/main.o main.ha
    hare build -F -lc -t o -o build/o/ascii.o "$HAREPATH/ascii/"
    hare build -F -lc -t o -o build/o/bufio.o "$HAREPATH/bufio/"
    hare build -F -lc -t o -o build/o/bytes.o "$HAREPATH/bytes/"
    hare build -F -lc -t o -o build/o/encoding.o "$HAREPATH/encoding/"
    hare build -F -lc -t o -o build/o/encoding_utf8.o "$HAREPATH/encoding/utf8/"
    hare build -F -lc -t o -o build/o/errors.o "$HAREPATH/errors/"
    hare build -F -lc -t o -o build/o/fmt.o "$HAREPATH/fmt/"
    hare build -F -lc -t o -o build/o/fs.o "$HAREPATH/fs/"
    hare build -F -lc -t o -o build/o/io.o "$HAREPATH/io/"
    hare build -F -lc -t o -o build/o/linux.o "$HAREPATH/linux/"
    hare build -F -lc -t o -o build/o/linux_vdso.o "$HAREPATH/linux/vdso/"
    hare build -F -lc -t o -o build/o/math.o "$HAREPATH/math/"
    hare build -F -lc -t o -o build/o/memio.o "$HAREPATH/memio/"
    hare build -F -lc -t o -o build/o/os.o "$HAREPATH/os/"
    hare build -F -lc -t o -o build/o/path.o "$HAREPATH/path/"
    hare build -F -lc -t o -o build/o/rt.o "$HAREPATH/rt/"
    hare build -F -lc -t o -o build/o/sort.o "$HAREPATH/sort/"
    hare build -F -lc -t o -o build/o/sort_cmp.o "$HAREPATH/sort/cmp/"
    hare build -F -lc -t o -o build/o/strconv.o "$HAREPATH/strconv/"
    hare build -F -lc -t o -o build/o/strings.o "$HAREPATH/strings/"
    hare build -F -lc -t o -o build/o/time.o "$HAREPATH/time/"
    hare build -F -lc -t o -o build/o/types.o "$HAREPATH/types/"
    hare build -F -lc -t o -o build/o/types_c.o "$HAREPATH/types/c/"

    # link hare objects and rust staticlib together, into an executable
    # ignore startfiles (crt1.o and friends)
    cc -nostartfiles -lc build/o/*.o target/release/libhello.a -o build/bin/out