Menu

Tree [835d10] master /
 History

HTTPS access


File Date Author Commit
 scratch 1 day ago Sander Raaijmakers Sander Raaijmakers [835d10] BTTB 3.3.0 Debian package
 src 1 day ago Sander Raaijmakers Sander Raaijmakers [835d10] BTTB 3.3.0 Debian package
 web 2 days ago Sander Raaijmakers Sander Raaijmakers [9f391b] BTTB 3.3.0 with explorer integration, CLI and u...
 CMakeLists.txt 1 day ago Sander Raaijmakers Sander Raaijmakers [835d10] BTTB 3.3.0 Debian package
 LICENSE 3 days ago Sander Raaijmakers Sander Raaijmakers [9c8a58] Initial commit of BTTB 3.0.0
 README.md 2 days ago Sander Raaijmakers Sander Raaijmakers [a91237] BTTB 3.2.0 release
 README_WINDOWS.md 3 days ago Sander Raaijmakers Sander Raaijmakers [9c8a58] Initial commit of BTTB 3.0.0

Read Me

Burn to the Brim (C++ Port)

Burn to the Brim (BTTB) is a modern C++20 desktop application designed to optimally fit files and folders onto target storage mediums (such as CDs, DVDs, or Custom sizes).

This is a complete port of the classic Delphi application to C++20 supporting:

  1. Linux: Natively compiled GTK 4 desktop application running on Ubuntu 24.04+.
  2. Windows: Native, lightweight Win32 SDK GUI desktop application running natively on Windows with zero external DLL dependencies.

It solves the subset-sum / bin packing problem instantly using an advanced recursive backtracking solver, matching files efficiently, and providing file organization and ISO creation capabilities.


Features

  • Backtracking Bin Packing Solver: Employs the highly optimized subset-sum algorithm from the original BTTB version, executing in milliseconds with a fluid non-blocking background thread.
  • Directory Split Constraints: Control directory structures by configuring a splitDepth waterlevel (atomic vs recursive scanning).
  • Modern Rule Groupings: Group files/directories together on the same medium using standard wildcards (globs) or powerful regular expressions (std::regex).
  • File Organization: Copy or move matched selections directly to target organizing folders automatically.
  • ISO Creation Integration: Generate ISO 9660 / Joliet / Rock Ridge images natively via standard command line utilities (genisoimage/mkisofs) with real-time log capturing.
  • Vibrant User Interfaces:
  • Linux (GTK 4): Standard GNOME Adwaita aesthetic featuring a HeaderBar, scrolling side results tree, interactive progress tracking, and detailed colored log viewer.
  • Windows (Win32 Native): Ultra-lightweight (~160KB standalone binary), statically linked, utilizing standard native Windows SDK controls, comctl32 progress elements, and Windows Shell folder selectors.

Windows Installation & Running

1. Download and Run

Simply extract the release package bttb-cpp-3.2.0-Win64-Native-GUI.zip and run:

  • bttb_win32.exe: Double-click to launch the native Windows GUI application instantly!

2. Creating ISO Images on Windows (Optional)

To use the Create ISO Image feature, a command-line ISO generation utility (genisoimage.exe or mkisofs.exe) must be installed on your Windows system and added to your environment PATH.

Here are the simplest ways to install it:

  • Method 1: Using Scoop (Recommended - Easiest & Automatic PATH)
  • Open PowerShell and run this command to install Scoop (if not installed):
    powershell irm get.scoop.sh | iex
  • Install cdrtools (which includes mkisofs):
    powershell scoop install cdrtools
  • Restart Burn to the Brim and create your ISO!

  • Method 2: Using Chocolatey (Automatic PATH)

  • Open an Administrator PowerShell and run:
    powershell choco install cdrtools
  • Restart Burn to the Brim and create your ISO!

  • Method 3: Using Cygwin

  • Run the Cygwin setup-x86_64.exe installer.
  • In the Package Selection screen, search for and select the cdrkit (contains genisoimage) or cdrtools (contains mkisofs) package.
  • Add C:\cygwin64\bin to your Windows System environment variable PATH.
  • Restart Burn to the Brim.

  • Method 4: Using MSYS2

  • Open your MSYS2 UCRT64 terminal and install cdrtools:
    bash pacman -S mingw-w64-ucrt-x86_64-cdrtools
  • Add C:\msys64\ucrt64\bin to your Windows System environment variable PATH.
  • Restart Burn to the Brim.

Linux Installation & Running (Ubuntu 24.04)

1. Install Dependencies

sudo apt update
sudo apt install -y libgtk-4-dev build-essential cmake pkg-config genisoimage

2. Building from Source (Linux)

Compile the application from the root of the project folder:

# Create and navigate to the build folder
mkdir -p build
cd build

# Configure and compile
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)

This compiles:

  1. bttb: The GTK 4 desktop GUI application.
  2. test_solver: An offline programmatic unit test suite.

3. Running on Linux

# Launch the desktop app
./build/bttb

# Run the unit tests
./build/test_solver

Building from Source (Windows MSYS2 UCRT64)

To build the native GTK 4 Windows GUI from source:

  1. Open the MSYS2 UCRT64 terminal.
  2. Update system and install the compiler, CMake, and GTK 4:
    bash pacman -Syu pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-gtk4
  3. Navigate to the project root directory and build:
    bash mkdir build && cd build cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release .. mingw32-make -j$(nproc)

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License (GPLv2). See the accompanying LICENSE file for the full terms.

MongoDB Logo MongoDB