1
1
#!/usr/bin/env zx
2
2
3
+ let target = argv . target ;
3
4
let jobs = argv . jobs ;
4
5
5
6
if ( ! jobs ) {
@@ -15,34 +16,52 @@ if (!jobs) {
15
16
}
16
17
}
17
18
18
- try {
19
- await which ( "emcmake" ) ;
20
- } catch {
21
- console . log ( "ERROR: Couldn't find `emcmake`, is emsdk installed?" ) ;
22
- process . exit ( 1 ) ;
23
- }
19
+ async function build ( ) {
20
+ try {
21
+ await which ( "emcmake" ) ;
22
+ } catch {
23
+ console . log ( "ERROR: Couldn't find `emcmake`, is emsdk installed?" ) ;
24
+ process . exit ( 1 ) ;
25
+ }
26
+
27
+ // Create build folder if needed
28
+ if ( ! ( await fs . exists ( "./build" ) ) ) {
29
+ await $ `mkdir build` ;
30
+ }
24
31
25
- // Create build folder if needed
26
- if ( ! ( await fs . exists ( "./build" ) ) ) {
27
- await $ `mkdir build` ;
32
+ cd ( "build" ) ;
33
+
34
+ // Build with emsdk
35
+ await $ `emcmake cmake -G Ninja ..` ;
36
+ await $ `cmake --build . -j ${ jobs } ` ;
37
+
38
+ // Copy artifacts to dist
39
+ await fs . copy ( "postject.wasm" , "../dist/postject.wasm" ) ;
40
+ await fs . copy ( "postject.js" , "../dist/postject.js" ) ;
41
+ await fs . copy ( "../src/main.js" , "../dist/main.js" ) ;
42
+ await fs . copy ( "../postject-api.h" , "../dist/postject-api.h" ) ;
28
43
}
29
- cd ( "build" ) ;
30
44
31
- // Build with emsdk
32
- await $ `emcmake cmake -G Ninja ..` ;
33
- await $ `cmake --build . -j ${ jobs } ` ;
45
+ async function test ( ) {
46
+ // Create build folder if needed
47
+ if ( ! ( await fs . exists ( "./build/test" ) ) ) {
48
+ await $ `mkdir -p build/test` ;
49
+ }
34
50
35
- // Copy artifacts to dist
36
- await fs . copy ( "postject.wasm" , "../dist/postject.wasm" ) ;
37
- await fs . copy ( "postject.js" , "../dist/postject.js" ) ;
38
- await fs . copy ( "../src/main.js" , "../dist/main.js" ) ;
39
- await fs . copy ( "../postject-api.h" , "../dist/postject-api.h" ) ;
51
+ cd ( "build/test" ) ;
40
52
41
- // Build tests
42
- if ( ! ( await fs . exists ( "./test" ) ) ) {
43
- await $ `mkdir test` ;
53
+ await $ `cmake ../../test` ;
54
+ await $ `cmake --build .` ;
44
55
}
45
56
46
- cd ( "test" ) ;
47
- await $ `cmake ../../test` ;
48
- await $ `cmake --build .` ;
57
+ switch ( target ) {
58
+ case "build" :
59
+ await build ( ) ;
60
+ break ;
61
+ case "test" :
62
+ await test ( ) ;
63
+ break ;
64
+ default :
65
+ await build ( ) ;
66
+ await test ( ) ;
67
+ }
0 commit comments