DepperDan/README.md

76 lines
2.2 KiB
Markdown

# 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