Install
$ agentstack add skill-xmake-io-xmake-skills-xmake-fortran ✓ 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 Fortran with Xmake
Xmake supports Fortran since v2.3.6 via gfortran, and Intel Fortran (ifort) since v2.3.8.
1. Minimal project
xmake create -l fortran -t console hello
cd hello
xmake run
add_rules("mode.debug", "mode.release")
target("hello")
set_kind("binary")
add_files("src/*.f90")
Recognized extensions: .f, .F, .f90, .F90, .f95, .F95, .f03, .F03, .f08, .F08, .for, .FOR. The uppercase variants get preprocessed.
2. Target kinds
target("app") set_kind("binary")
target("mylib") set_kind("static")
target("mydyn") set_kind("shared")
3. Compiler selection
xmake f --toolchain=gfortran # default gfortran
xmake f --toolchain=ifort # Intel Fortran
xmake f --toolchain=ifx # Intel oneAPI LLVM-based Fortran
Pin a specific install with --sdk=/opt/intel/oneapi.
4. Flags
target("app")
add_files("src/*.f90")
add_fcflags("-O3", "-ffree-form") -- gfortran flags
add_ldflags("-lm")
add_fcflags = Fortran compiler flags.
5. Mixing Fortran with C
target("solver")
set_kind("static")
add_files("src/*.f90", "src/*.c")
add_includedirs("include", {public = true})
target("app")
set_kind("binary")
add_files("src/main.cpp")
add_deps("solver")
set_languages("c++17")
Use iso_c_binding on the Fortran side and extern "C" on the C++ side. Xmake handles the link step — gfortran's runtime is added automatically when Fortran objects are present.
6. Modules (Fortran modules, not C++ modules)
Fortran module/end module produces .mod files. Xmake tracks them automatically for dependency ordering — list source files in add_files in any order; xmake scans USE statements.
Pitfalls
- Fixed-form vs free-form.
.f/.fordefault to fixed form (columns matter);.f90+ default to free form. Flag overrides work per-file if needed. .modleaking across targets. Each target has its own module cache. Share modules by linking the static/shared library and letting xmake propagate the-Ipath.- Intel compiler flag dialect.
ifortandifxdiffer fromgfortranin many flag names. Gate withis_toolchain. - Mixing Fortran and C++ without a C intermediate. Fortran↔C++ name mangling is messy; always bridge through a C layer.
When to branch out
- Target basics →
xmake-targets - Cross-compile →
xmake-cross-compilation - 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.