Skip to main content

A simple build tool for C and C++

Project description

Installation

pip install tdbuild

Usage

Usage is dead simple. Use tdbuild new to create a Python script called tdfile.py. Hand-edit some basic inputs to the compiler (what are your source files? what is the executable called? etc). Then, run tdbuild to build and tdbuild run to run your code. Altogether, it looks like this:

mkdir new_project && cd new_project

tdbuild new

emacs tdfile.py

tdbuild

tdbuild run

Why did you write this software?

Do you find CMake's scripting language arcane and its documentation unusable?

Do you struggle to install and maintain a usable set of Unix tools on Windows? And do you hate creating Makefiles that are cross platform?

Do you want to write code instead of learning how to use a flashy new build system like Meson?

Yeah. Me too. Use this C/C++ build system. Fundamentally, all it does it build a command line for your compiler. It's that simple. If tdbuild ever becomes insufficient for you, you can copy thee command line and do whatever the hell you want with it. You can also add custom flags to the command line.

Yes, this means your whole program will rebuild every time. If your program is very big or uses a lot of templates, your build times will be slow. If you are the target audience for this build tool, then you won't care. tdbuild is not for enterprise software, nor is it for large open source projects. It's for people who just want to write a damn C/C++ project that compiles on all platforms without screwing with build tools for a few days.

Some projects that I build with tdbuild every day:

Options

Your build options are simply a Python dictionary. That's it. Here's a list of all the possible options the tool supports:

Top Level

options.project:

options.source_dir:

options.include_dirs:

options.lib_dir:

options.build_dir:

options.source_files:

options.build_type:

options.binary_type:

options.cpp:

options.cpp_standard:

options.disable_console:

options.defines:

Windows

options.Windows.system_libs:

options.Windows.user_libs:

options.Windows.dlls:

options.Windows.ignore:

options.Windows.arch:

options.Windows.out:

options.Windows.runtime_library:

options.Windows.warnings:

options.Windows.extras:

Linux

options.Linux.compiler:

options.Linux.user_libs:

options.Linux.system_libs:

options.Linux.extras:

options.Linux.out:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tdbuild-3.0.3.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tdbuild-3.0.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file tdbuild-3.0.3.tar.gz.

File metadata

  • Download URL: tdbuild-3.0.3.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.2 Windows/10

File hashes

Hashes for tdbuild-3.0.3.tar.gz
Algorithm Hash digest
SHA256 600c4b3eace3aecae18b24f085458dfb80f23821be5488a5ec535b9f581bba92
MD5 a421b2500f4a670b29e6097ec73ea41e
BLAKE2b-256 310aed820ebcc836db004d4f36c201a3c905000fb2375555e6a9f66c51d5d975

See more details on using hashes here.

File details

Details for the file tdbuild-3.0.3-py3-none-any.whl.

File metadata

  • Download URL: tdbuild-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.2 Windows/10

File hashes

Hashes for tdbuild-3.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d5ae223ec17cea331dc4d67e71c054e18e77d3fab664dd6f6fc150c6ba775fbe
MD5 1f71e58a28d2199b6b1e0d1766049eb0
BLAKE2b-256 b7519ec292702474bdef3833e5039fe488f9f4711228a01e7c633b5208bba916

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page