Pc

Pcons: new software build tool in Python, inspired by SCons and CMake

Hacker News

Pcons: new software build tool in Python, inspired by SCons and CMake

I've been really gratified to see a bit of uptake of pcons in the open-source community, so I thought I'd post an update since it's up to v0.14.1 now. Pcons is a new open-source build tool that's the best of SCons and CMake with fewer of their problems. Since v0.7 (last HN post), there's now a porting guide, LaTeX toolchain, full C++20 module support, Fortran toolchain (including MODULE/USE), WebAssembly via WASI and EMSDK. It can generate pkg-config files, finds MSVC more reliably, added Ninja restat support for even faster builds, better target.depends(), better logging and debugging, CMake-style template-based config headers and a lot of improvements and fixes. I was one of the original developers of SCons and helped maintain it for years. I love that Python is the configuration language — it makes build descriptions incredibly flexible. But over time, working with CMake on other projects, I came to appreciate things SCons doesn't do as well: the separation between describing a build and executing it, transitive dependency propagation, package manager integration, and modern python semantics. I'd been thinking about a fresh start for years but never had the time. Recently, working collaboratively with Claude Code, it finally became feasible. So, meet pcons. You can use it as `uvx pcons` for true zero-install (great for other open source projects). There's a comparison with other common build tools here: https://github.com/DarkStarSystems/pcons/blob/main/COMPARISO... — corrections and updates appreciated! Major features as of v0.14.1: - Toolchains for GCC, LLVM/Clang, MSVC, and clang-cl with auto-detection, LaTeX, gfortran, WebAssembly etc. - Generators for Ninja, Makefile, Xcode, compile_commands.json, and Mermaid/DOT dependency diagrams - Can create installers: msix on Windows, pkg/dmg on Mac, tgz on Linux - Package management via pkg-config, Conan 2.x, and a pcons-fetch tool for building dependencies from source - Compiler cache support (ccache/sccache), semantic presets (warnings, sanitizers, LTO, hardening), cross-compilation presets (Android NDK, iOS, WebAssembly) - Platform-specific helpers: macOS bundles/frameworks/.pkg/.dmg, Windows manifests/MSIX, and an msvcup module for installing MSVC without Visual Studio - An extensible module/add-on system for domain-specific tasks - Debug tracing (--debug=resolve,subst) with source-location tracking on every node - Plenty of examples included, unit tests for all features, tested on Mac, Windows and Linux It's under active development — ready for experimentation, but it's quite stable — enough for light production. I'd love bug reports, feedback on the API design and what you'd want from a modern Python-based software build system. I take my tools seriously and intend to support it well, so please try it out! Open source, MIT licensed. GitHub: https://github.com/DarkStarSystems/pcons | Docs: https://pcons.readthedocs.io | PyPI: `uvx pcons` or `pip install pcons`

Share card

Actual performance

1points
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Indie HackersFits the IH revenue-focused audience · Strong signals: latex, para, ios · Missing: supports, reddit linkedin, podcasting
95%95% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Product HuntOn track for Day 1 leaderboard · Strong signals: mac, macos, claude · Missing: agents, agent, cursor
92%92% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: open source, ide, io · Missing: https docs, excited, just released
66%66% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
TrustMRRLess likely to generate early MRR · Strong signals: ios, para · Missing: mobile apps, personal, entrepreneurs
40%40% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
AppSumoMay struggle as an AppSumo deal · Strong signals: platform · Missing: plus, intuitive, reviews
34%34% predicted probability of success on AppSumo, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Strong signals: active · Missing: arr, mrr, revenue
17%17% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

Le
Letlang specification inspired by Python PEPs (WIP)65%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Letlang specification inspired by Python PEPs (WIP)

Hacker News1
Co
Consecution: A Python Pipeline Tool Inspired by Apache Storm Topologies50%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Consecution: A Python Pipeline Tool Inspired by Apache Storm Topologies

Hacker News3
Py
PyBench 2.0 – Python benchmark tool inspired by Geekbench51%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

PyBench 2.0 – Python benchmark tool inspired by Geekbench

Hacker News1
zo
zodiac, a new approach to monkey patching in python60%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

zodiac, a new approach to monkey patching in python

Hacker News39
I
I made a boxen library for Python (inspired by sindresorhus)63%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I made a boxen library for Python (inspired by sindresorhus)

Hacker News2
Ca
Cassandradump – Exporting tool for Cassandra inspired from mysqldump52%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Cassandradump – Exporting tool for Cassandra inspired from mysqldump

Hacker News1
Ta
Tach – a Python tool to enforce modular design, inspired by nx67%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Tach – a Python tool to enforce modular design, inspired by nx

Hacker News4
Ma
Matroschka – A Python steganography tool54%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Matroschka – A Python steganography tool

Hacker News69
To
Tool for pinpointing circular imports in Python54%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Tool for pinpointing circular imports in Python

Hacker News1
(C
(Crocs) Regex and Backus-Naur on Python classes. A parsing tool38%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

(Crocs) Regex and Backus-Naur on Python classes. A parsing tool

Hacker News2