buildosx

# Building on OSX

## 1. Toolchain

Before compiling make sure you have all the tools installed.

1. To install the dependencies, this guide will use Homebrew which has an installation guide on their project page.

2. This project uses CMake to generate the makefiles. Install it with `brew install cmake`.

## 2. Install External Dependencies

    brewinstallopensslpkgconfig

Usually, you do not need pkgconfig. However, it seems that it throws errors about openssl without.

For voice support, additional dependency is required:

    brewinstallopus

## 3. Build Source Code

    cmake-B./build
    cmake--build./build-j8

Replace the number after `-j` with a number suitable for your setup, usually the same as the number of cores on your machine. `cmake` will fetch any dependencies that are required for you and ensure they are compiled alongside the library.

## 4. Install Globally

    cdbuild
    sudomakeinstall

## 5. Installation to a Different Directory

If you want to install the library, its dependencies, and header files to a different directory, specify this directory when running `cmake`:

    cmake..-DCMAKE_INSTALL_PREFIX=/path/to/install

Then once the build is complete, run `sudo make install` to install to the location you specified.

## 6. Using the Library

Once installed, you can make use of the library in standalone programs simply by including it and linking to it:

    clang++-std=c++20-ldppmydppbot.cpp-odppbot

The important flags in this command-line are:

- `-std=c++20` - Required to compile the headers

- `-ldpp` - Link to libdpp.dylib

- `mydppbot.cpp` - Your source code

- `dppbot` - The name of the executable to make

Compiling your bot with a raw `g++` command is not advised in any real project, and the example above should be used only as a test. From here, you should learn to create a bot in D++ by moving on to Building a Discord Bot Using CMake (UNIX) or if you have not yet created a token for your bot, Creating a Bot Token - If you are having trouble setting up CMake, you can try our template cmake bot project.

Have fun!