-
Zig 0.13.0 or later
- Download from: https://ziglang.org/download/
- Add to PATH
-
CMake 3.20 or later
- Linux:
sudo apt install cmake(Ubuntu/Debian) - macOS:
brew install cmake - Windows: Download from https://cmake.org/
- Linux:
-
Qt 6 6.5 or later
- Linux:
sudo apt install qt6-base-dev(Ubuntu/Debian) - macOS:
brew install qt@6 - Windows: Download from https://www.qt.io/download
- Linux:
-
C++ Compiler with C++23 support
- Linux: GCC 13+ or Clang 16+
- macOS: Xcode 15+ or Clang 16+
- Windows: Visual Studio 2022 or later
# Install dependencies
sudo apt update
sudo apt install build-essential cmake qt6-base-dev git
# Install Zig
wget https://ziglang.org/download/0.13.0/zig-linux-x86_64-0.13.0.tar.xz
tar -xf zig-linux-x86_64-0.13.0.tar.xz
sudo mv zig-linux-x86_64-0.13.0 /opt/zig
echo 'export PATH=/opt/zig:$PATH' >> ~/.bashrc
source ~/.bashrc
# Clone and build
git clone https://github.com/yourusername/VBDecompiler.git
cd VBDecompiler
# Build core library
cd core
zig build -Doptimize=ReleaseSafe
cd ..
# Build full project with CMake
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j$(nproc)
# Install
sudo cmake --install .# Install dependencies
brew install cmake qt@6 zig
# Clone and build
git clone https://github.com/yourusername/VBDecompiler.git
cd VBDecompiler
# Build core library
cd core
zig build -Doptimize=ReleaseSafe
cd ..
# Build with CMake
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=$(brew --prefix qt@6) ..
cmake --build . -j$(sysctl -n hw.ncpu)
# Install
sudo cmake --install .# Prerequisites:
# 1. Install Visual Studio 2022 with C++ workload
# 2. Install CMake from https://cmake.org/
# 3. Install Qt 6 from https://www.qt.io/download
# 4. Install Zig from https://ziglang.org/download/
# Add Zig to PATH
$env:PATH += ";C:\zig"
# Clone repository
git clone https://github.com/yourusername/VBDecompiler.git
cd VBDecompiler
# Build core library
cd core
zig build -Doptimize=ReleaseSafe
cd ..
# Build with CMake
mkdir build
cd build
cmake -G "Visual Studio 17 2022" -A Win32 `
-DCMAKE_PREFIX_PATH="C:\Qt\6.5.0\msvc2022" ..
cmake --build . --config Release
# Install
cmake --install . --config Releasecmake -DBUILD_GUI=ON \ # Build Qt GUI (default: ON)
-DBUILD_CLI=ON \ # Build CLI tool (default: ON)
-DBUILD_TESTS=ON \ # Build tests (default: ON)
-DCMAKE_BUILD_TYPE=Release ..# In core/ directory
zig build -Doptimize=Debug # Debug build
zig build -Doptimize=ReleaseSafe # Release with safety checks
zig build -Doptimize=ReleaseFast # Maximum optimization
zig build -Doptimize=ReleaseSmall # Optimize for sizeIf you only want the core decompiler library without the GUI:
cd core
zig build -Doptimize=ReleaseSafe
# Library will be in: core/zig-out/lib/libvbdecomp.so (Linux)
# core/zig-out/lib/libvbdecomp.dylib (macOS)
# core/zig-out/lib/vbdecomp.dll (Windows)
# CLI tool will be in: core/zig-out/bin/vbdecompcd core
zig build -Doptimize=ReleaseSafe
# Run CLI
./zig-out/bin/vbdecomp helpcd core
zig build testcd build
ctestFor active development with faster compile times:
# Debug build with all checks
mkdir build-debug && cd build-debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
# Run with debugger
gdb ./gui/vbdecomp-gui
# or
lldb ./gui/vbdecomp-guicd core
zig build -Dtarget=x86-windows-gnu -Doptimize=ReleaseSafe
# This creates vbdecomp.dll for Windowscd core
zig build -Dtarget=x86_64-linux-gnu -Doptimize=ReleaseSafeMake sure Zig is in your PATH:
which zig # Linux/macOS
where zig # WindowsSpecify Qt location explicitly:
cmake -DCMAKE_PREFIX_PATH=/path/to/qt6 ..Update your compiler:
- Linux:
sudo apt install g++-13orsudo apt install clang-16 - macOS: Update Xcode Command Line Tools
- Windows: Use Visual Studio 2022 17.6 or later
Clear cache and rebuild:
cd core
rm -rf zig-cache zig-out
zig buildcd build
rm -rf *
cmake ..Install extensions:
- C/C++ (Microsoft)
- CMake Tools
- Zig Language
Open project and use CMake extension to configure and build.
Open CMakeLists.txt as project. CLion will auto-configure.
Open CMakeLists.txt. Qt Creator will detect Qt automatically.
After building:
-
Try the CLI tool:
./core/zig-out/bin/vbdecomp analyze <vb6-file.exe>
-
Launch the GUI (once implemented):
./build/gui/vbdecomp-gui
-
Read the documentation: