77 lines
2.2 KiB
Markdown
77 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
|
|
> pip install -r requirements.txt
|
|
```
|
|
|
|
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 |