mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-22 02:09:36 +00:00
Added:
- `sharedlib` build kind (shared library output) - ASM projects (`build.language = "asm"`) - NASM and GAS backends - `build.platform` architecture hint for `-march` / `/arch` - Basic CLI integration tests
This commit is contained in:
@@ -33,7 +33,25 @@ By default:
|
||||
- `target/debug/<name>` (or `.exe` on Windows)
|
||||
- `target/release/<name>` (or `.exe` on Windows)
|
||||
|
||||
Default compiler flags:
|
||||
|
||||
GCC/Clang:
|
||||
|
||||
- `debug`: `-O0 -g -Wall -Wextra -fno-omit-frame-pointer -DDEBUG`
|
||||
- `release`: `-O3 -DNDEBUG -march=native`
|
||||
|
||||
MSVC:
|
||||
|
||||
- `debug`: `/Od /Zi /W4 /DDEBUG /Oy-`
|
||||
- `release`: `/O2 /DNDEBUG`
|
||||
|
||||
Static library mode (`kind = "staticlib"`):
|
||||
|
||||
- Linux/macOS: `lib<name>.a`
|
||||
- Windows: `<name>.lib`
|
||||
|
||||
Shared library mode (`kind = "sharedlib"`):
|
||||
|
||||
- Linux: `lib<name>.so`
|
||||
- macOS: `lib<name>.dylib`
|
||||
- Windows: `<name>.dll`
|
||||
|
||||
@@ -10,17 +10,19 @@ compiler = "clang"
|
||||
kind = "bin"
|
||||
# optional:
|
||||
# target = "./dist"
|
||||
# platform = "x86_64"
|
||||
# cflags = ["-Wall"]
|
||||
# ldflags = ["-lm"]
|
||||
```
|
||||
|
||||
## Fields
|
||||
|
||||
- `language` (string, required): `c`, `c++`, `cpp`, or `cxx`.
|
||||
- `language` (string, required): `c`, `c++`, `cpp`, `cxx`, or `asm`.
|
||||
- `standard` (string, required): language standard passed to compiler.
|
||||
- `compiler` (string, required): compiler command (for example `clang`, `gcc`, `cl`).
|
||||
- `kind` (string, required): `bin` or `staticlib`.
|
||||
- `kind` (string, required): `bin`, `staticlib`, or `sharedlib`.
|
||||
- `target` (string, optional): custom output directory for final artifact.
|
||||
- `platform` (string, optional): architecture hint for compiler (used for `-march` or `/arch`).
|
||||
- `cflags` (string array, optional): extra compile flags.
|
||||
- `ldflags` (string array, optional): extra link flags.
|
||||
|
||||
@@ -28,4 +30,4 @@ kind = "bin"
|
||||
|
||||
- Compiler backend is selected by compiler string (`gcc`, `clang`, `cl`, `clang-cl`).
|
||||
- Empty or unknown compiler value falls back to clang-like build path.
|
||||
- `run` is not allowed for `kind = "staticlib"`.
|
||||
- `run` is not allowed for library kinds (`staticlib`, `sharedlib`).
|
||||
|
||||
@@ -35,7 +35,7 @@ kind = "bin"
|
||||
- `build.compiler`
|
||||
- `build.kind`
|
||||
|
||||
`build.kind` must be either `bin` or `staticlib`.
|
||||
`build.kind` must be either `bin`, `staticlib`, or `sharedlib`.
|
||||
|
||||
## Optional keys
|
||||
|
||||
|
||||
Reference in New Issue
Block a user