Install
$ agentstack add skill-xmake-io-xmake-skills-xmake-nim ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Building Nim with Xmake
Nim compiles to C (or C++ / JavaScript) via nim c / nim cpp; xmake wraps this into a regular target model.
1. Minimal project
xmake create -l nim -t console hello
cd hello
xmake run
add_rules("mode.debug", "mode.release")
target("hello")
set_kind("binary")
add_files("src/*.nim")
2. Target kinds
target("app") set_kind("binary")
target("mylib") set_kind("static")
target("mydyn") set_kind("shared")
3. Backend selection
target("app")
add_files("src/main.nim")
set_values("nim.backend", "c") -- default
-- or:
set_values("nim.backend", "cpp")
set_values("nim.backend", "objc")
set_values("nim.backend", "js")
Most projects use c (native). cpp is required if you import C++ libraries via {.importcpp.}. js is for web targets.
4. Flags
target("app")
add_files("src/*.nim")
add_ncflags("-d:release", "--opt:speed") -- Nim compiler flags
add_cxflags("-O3") -- passes to underlying C compiler
add_ncflags = Nim compiler flags. add_cxflags flows through to the C backend.
5. Toolchain
xmake f --toolchain=nim
xmake f --toolchain=nim --sdk=/opt/nim-2.0
6. Mixing Nim with C
Nim code can call C with {.importc.}; xmake can also compile C files alongside:
target("app")
set_kind("binary")
add_files("src/main.nim", "src/helper.c")
add_includedirs("include")
Pitfalls
- Backend mismatch. If Nim code uses
{.importcpp.}, the target must usenim.backend = "cpp". Otherwise link errors. nimblevs xmake. Nim's native package manager isnimble. Xmake doesn't integrate with it — declare Nim deps via nimble manually, and let xmake handle the build.-d:releasepassed as nim flag. It's a Nim define, not a C flag — must go inadd_ncflags, notadd_defines.
When to branch out
- Target basics →
xmake-targets - Mixing with C/C++ →
xmake-targets
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: xmake-io
- Source: xmake-io/xmake-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.