Skip to content

Commit a124305

Browse files
committed
Update to docs on actions.json support
Signed-off-by: worksofliam <[email protected]>
1 parent 8856fd8 commit a124305

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

docs/pages/cli/make.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ So that means that 4 objects are going to be rebuilt. Usually, parents always ne
2626

2727
### When is a incremental build right?
2828

29-
It is always recommended to do a incremental build when working in a new branch. Ensure that you have a library of objects from a previous full build on the library list!
29+
It is always recommended to do a incremental build when working in a new branch. Ensure that you have a library of objects from a previous full build on the library list.
3030

3131
## `iproj.json` properties
3232

@@ -43,6 +43,39 @@ If you are making use of service programs, Source Orbit will automatically maint
4343

4444
## Changing compile options
4545

46+
When you use `so -bf make`, Source Orbit will generate a makefile that contains the compile commands for each object. The compile commands can come from two places
47+
48+
### Setting up generic compiles (`actions.json`)
49+
50+
The `actions.json` standard determines how files that match specific extensions are compiled. The file is typically created by a user and is located in `.vscode/actions.json`. The `actions.json` standard comes from Code for IBM i and is now used by Source Orbit.
51+
52+
Check out how to use the `actions.json` file in the [Code for IBM i documentation](https://codefori.github.io/docs/developing/local/actions/).
53+
54+
#### Multiple levels of actions
55+
56+
The `.vscode/actions.json` is the default location for the `actions.json` file. However, you can also create a `actions.json` file in a specific directory, which will be merged with the default one. This allows you to have directory specific actions, while still using the defaults.
57+
58+
```
59+
.vscode:
60+
actions.json ## Actions defined here apply to the entire project
61+
62+
qddssrc:
63+
actions.json ## Actions defined here only apply to qddssrc
64+
department.table
65+
employee.table
66+
emps.dspf
67+
nemp.dspf
68+
69+
qrpglesrc:
70+
depts.pgm.sqlrpgle
71+
empdet.sqlrpgle
72+
employees.pgm.sqlrpgle
73+
mypgm.pgm.rpgle
74+
newemp.pgm.sqlrpgle
75+
```
76+
77+
### Changing project wide compiles (`iproj.json`)
78+
4679
The `iproj.json` can contain a `compiles` property to customize how each extension type gets compiled. To generate the defaults, you can use `so --init` to create or update the `iproj.json` file. When you define an extension in the `compiles` property, the properties of it will override the `so` defaults.
4780

4881
Here is the schema for the compiles option:
@@ -68,7 +101,7 @@ interface CompileData {
68101
};
69102
```
70103

71-
### Example: build object from commands
104+
#### Example: build object from commands
72105

73106
Objects like data areas do not have source. In the `compiles` property, there is a flag that can be used to tell Source Orbit to get the commands from the source.
74107

0 commit comments

Comments
 (0)