You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+56Lines changed: 56 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,9 @@ Those are the additions I've made over dub
21
21
-[**Library API**](#using-its-library-api) - Integrate redub directly in your application
22
22
-**Watching Directories** - `redub watch`- Builds dependents automatically on changes. Add `--run` to run the program after building.
23
23
-**MacOS Universal Builds** - `redub build-universal` - Generates a single binary containing arm64 and x86_64 architectures on MacOS
24
+
-[**Redub Executable Icons**](#redub-executable-icons) - Adds inside the recipe file a way to define how your program icon will look
25
+
-[**Linker Diagnostics**](#redub-linker-diagnostics) - Experimental support to improve linker message errors.
26
+
-[**Cross Compilation Targets**](#redub-cross-compile) - Adds support to build targets, selecting a compiler, architecture and other configuration by just calling `redub --target=PSVita`
24
27
25
28
26
29
## Redub Help
@@ -123,6 +126,59 @@ You can also control the bundle configurations by using. Failing to use a valid
123
126
}
124
127
```
125
128
129
+
130
+
## Redub Linker Diagnostics
131
+
-**1.29.0**: Added Windows Linker Diagnostics.
132
+
133
+
Sometimes people may get cryptic error messages regarding anundefined __ModuleInitZ symbol. Since Redub already had information on how each module imports each other, I've ended up adding support to improve the linker messages as that may reduce by a lot iteration time. Example:
134
+
135
+
```
136
+
hipreme_engine.obj : error LNK2001: unresolved external symbol _D3hip3api12__ModuleInfoZ
137
+
C:\Users\Hipreme\AppData\Local\.dub\.redub\1AB9D53797DC3516\1AB9D53797DC3516\hipreme_engine.exe : fatal error LNK1120: 1 unresolved external symbol
-**1.30.0**: Added cross compilation definition support via the `--target` flag.
150
+
151
+
Ever wanted to configure a default compiler/arch based on the configuration? Now you can (mostly). This is an example on how a `target` will look in your recipe JSON:
152
+
153
+
```json
154
+
{
155
+
"name": "my-project",
156
+
"targets": {
157
+
"wasm": {
158
+
"compiler": "ldc2",
159
+
"arch": "wasm32-unknown-unknown-wasm"
160
+
},
161
+
"PSVita": {
162
+
"compiler": "ldc2",
163
+
"arch": "armv7a-unknown-unknown-eabi",
164
+
"dflags": [
165
+
"--revert=dtorfields",
166
+
"-mcpu=cortex-a9",
167
+
"-mattr=+neon,+neonfp,+thumb-mode",
168
+
"-fvisibility=hidden",
169
+
"-gcc=$VITASDK/bin/arm-vita-eabi-gcc",
170
+
"--relocation-model=static"
171
+
],
172
+
"versions": ["PSVita"],
173
+
"dependencies": {
174
+
"custom-rt": {"path": "my/custom/runtime"}
175
+
}
176
+
}
177
+
}
178
+
}
179
+
```
180
+
Now you can just call `redub --target=wasm` or `redub --target=PSVita` and every dependency will inherit this configuration.
181
+
126
182
## Multi language
127
183
128
184
Redub has also an experimental support for building and linking C/C++ code together with D code. For that, you need to define a dub.json:
0 commit comments