mirror of
https://github.com/HappyTanuki/BumbleCee.git
synced 2025-12-18 21:23:29 +00:00
스킵 구현
This commit is contained in:
129
DPP-master/docpages/make_a_bot/cmake.md
Normal file
129
DPP-master/docpages/make_a_bot/cmake.md
Normal file
@@ -0,0 +1,129 @@
|
||||
\page buildcmake Building a Discord Bot Using CMake (UNIX)
|
||||
|
||||
\warning **This tutorial will assume that you have already installed DPP.** If you haven't, please head over to \ref install-linux-deb "this page", or any install page that matches your OS. If you want to use source, then continue your journey over at \ref buildlinux "this page" for a full explanation into using CMake with source.
|
||||
|
||||
## 1. Toolchain
|
||||
Before continuing, you will need to install `cmake` on your system. To be sure that `cmake` is installed, you can type the following command:
|
||||
|
||||
```bash
|
||||
$ cmake --version
|
||||
cmake version 3.22.1
|
||||
```
|
||||
|
||||
If your CMake version is not as shown above then don't worry! You can still follow along, even if you're ahead or behind!
|
||||
|
||||
## 2. Create a CMake project
|
||||
|
||||
In an empty directory, create the following files and directories:
|
||||
|
||||
\dot
|
||||
digraph "Example Directory" {
|
||||
graph [ranksep=1];
|
||||
node [colorscheme="blues9", fontname="helvetica"];
|
||||
|
||||
"Your Directory" [style=filled, color=1, shape=rect]
|
||||
|
||||
subgraph cluster_0 {
|
||||
style=filled;
|
||||
color=lightgrey;
|
||||
node [style=filled, color=2, shape=rect]
|
||||
build;
|
||||
cmake;
|
||||
src;
|
||||
"CMakeLists.txt";
|
||||
label = "The main area for your bot's files.";
|
||||
}
|
||||
|
||||
subgraph cluster_1 {
|
||||
style=filled;
|
||||
color=lightgrey;
|
||||
node [style=filled, color=3, shape=rect]
|
||||
"FindDPP.cmake";
|
||||
label = "This file is to tell CMake where DPP is.";
|
||||
}
|
||||
|
||||
subgraph cluster_2 {
|
||||
style=filled;
|
||||
color=lightgrey;
|
||||
node [style=filled, color=3, shape=rect]
|
||||
"main.cpp";
|
||||
"main.h";
|
||||
"more code...";
|
||||
label = "This is where your bot's code will go.";
|
||||
}
|
||||
|
||||
"Your Directory" -> build;
|
||||
"Your Directory" -> src;
|
||||
"Your Directory" -> cmake;
|
||||
"Your Directory" -> "CMakeLists.txt";
|
||||
|
||||
cmake -> "FindDPP.cmake";
|
||||
|
||||
src -> "main.cpp";
|
||||
src -> "main.h";
|
||||
src -> "more code...";
|
||||
}
|
||||
\enddot
|
||||
|
||||
## 3. Configure CMake
|
||||
|
||||
You'll need to modify the `CMakeLists.txt` to tell CMake what it's looking for, and other information.
|
||||
|
||||
Here is an example CMake configuration, you can adapt it according to your needs:
|
||||
|
||||
~~~~~~~~~~~~~~cmake
|
||||
# Minimum CMake version required, we'll just use the latest version.
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
# Project name, version and description
|
||||
project(discord-bot VERSION 1.0 DESCRIPTION "A discord bot")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
|
||||
# Create an executable
|
||||
add_executable(${PROJECT_NAME}
|
||||
src/main.cpp
|
||||
)
|
||||
|
||||
# Find our pre-installed DPP package (using FindDPP.cmake).
|
||||
find_package(DPP REQUIRED)
|
||||
|
||||
# Link the pre-installed DPP package.
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
${DPP_LIBRARIES}
|
||||
)
|
||||
|
||||
# Include the DPP directories.
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${DPP_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Set C++ version
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
CXX_STANDARD 17
|
||||
CXX_STANDARD_REQUIRED ON
|
||||
)
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
We'll also need to populate our `FindDPP.cmake` file, inside the `cmake` directory!
|
||||
|
||||
Here's what you should use:
|
||||
|
||||
~~~~~~~~~~~~~~cmake
|
||||
find_path(DPP_INCLUDE_DIR NAMES dpp/dpp.h HINTS ${DPP_ROOT_DIR})
|
||||
|
||||
find_library(DPP_LIBRARIES NAMES dpp "libdpp.a" HINTS ${DPP_ROOT_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(DPP DEFAULT_MSG DPP_LIBRARIES DPP_INCLUDE_DIR)
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
## 4. Build the bot.
|
||||
|
||||
Now that we have our all our cmake stuff setup and we've got our code in place, we can initalise CMake. You'll want to go inside the `build/` directory and do `cmake ..`.
|
||||
|
||||
Once that's completed, you'll want to head back to your up-most folder (where all the folders are for your bot) and run `cmake --build build/ -j4` (replace -j4 with however many threads you want to use). This will start compiling your bot and creating the executable.
|
||||
|
||||
After that has finished, you can head into `build/` and run your bot by doing `./discord-bot`! If everything went well, you should see your bot come online!
|
||||
|
||||
**Have fun!**
|
||||
Reference in New Issue
Block a user