# Depper Dan #### Windows Library Builds made easi(er) ## About Depper Dan is a collection of scripts to enable (CMake based) C++ projects with a set of open source dependencies to build them automatically. ## Motivation Unlike Linuxoid systems, C++ projects that use Open Source dependencies traditionally have a hard time building those dependencies, especially automatic, with custom build settings or when they depend on one another. This script realizes this in a re-usable and extendable manner but only for a limited set of libraries. It is meant to be used with Visual Studio 2022 for build tools and modern CMake. ## Usage ### Prerequisites * Visual Studio (2022 was what this was developed for but others might work) * git (available in the Path) * CMake (available in the Path) * Python (3.11, 3.12, etc) * This repository, checked out and with temporary disk space ### Available packages Each package that can be built with this system must be given in `packages.jon`. For every package therein, you will find a build script in the folder `build_functions`. ### Build To use the system, you must specify an installation folder. It should have as short a name as possible (on windows) to avoid MAX_PATH issues which may arise out of any build. In the examples below we will use `C:\devel\3rd_party`. This directory will be used to install each package built with Depper Dan and it should be considered stable and system wide. As a shell, use "x64 Native Tools Command Prompt" to ensure the correct build tools and environment being set. Create a venv unless it's already present and activate it ```PowerShell > cd /depper/dan/repo > python -m venv .venv > .venv\Scripts\Activate ``` Build a single package into your installation dir ```PowerShell > python .\depper_dan.py -i C:\devel\3rd_party -p zlib ``` ## Extension This script is meant to be hacked on. It is not meant to be a complete extensible package manager like conan or [vcpkg](https://vcpkg.io). Extending it by more packages generally involves: * Add package information in `packages.jon`. * Add a build function in `build_functions`. ## License Depper Dan is being published under the Apache License 2.0