mirror of
https://github.com/CrowCpp/Crow.git
synced 2024-06-07 21:10:44 +00:00
80 lines
3.2 KiB
Markdown
80 lines
3.2 KiB
Markdown
Here's how you can install Crow on your favorite GNU/Linux distro.
|
|
# Getting Crow
|
|
|
|
## Requirements
|
|
- C++ compiler with at least C++11 support.
|
|
- boost library & development headers (1.64 or later).
|
|
- **(optional)** ZLib for HTTP Compression.
|
|
- **(optional)** OpenSSL for HTTPS support.
|
|
- **(optional)** CMake and Python3 to build tests and/or examples.
|
|
!!!note
|
|
|
|
Crow's CI uses `g++-9.3` and `clang-7.0` running on AMD64 (x86_64) and ARM64v8 architectures.
|
|
|
|
|
|
<br><br>
|
|
|
|
## Using a package Manager
|
|
You can install Crow on GNU/Linux as a pre-made package
|
|
=== "Debian/Ubuntu"
|
|
|
|
Simply download Crow's `.deb` file from the [release section](https://github.com/CrowCpp/Crow/releases/latest) and Install it.
|
|
|
|
=== "Arch"
|
|
|
|
Crow is available for pacman through AUR, you only need to run `pacman -S crow`
|
|
|
|
|
|
<br><br>
|
|
## Release package
|
|
Crow provides an archive containing the framework and CMake files, just copy the `include` folder to `/usr/local/include` and `lib` folder to `/usr/local/lib`.<br><br>
|
|
You can also download the `crow_all.h` file and simply include that into your project.
|
|
<br><br>
|
|
## Installing from source
|
|
### Using CMake
|
|
1. Download Crow's source code (Either through github's UI or by using<br> `git clone https://github.com/CrowCpp/Crow.git`).
|
|
2. Run `mkdir build` inside of crow's source directory.
|
|
3. Navigate to the new "build" directory and run the following:<br>
|
|
`cmake .. -DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF`
|
|
4. Run `make install`.
|
|
!!!note
|
|
|
|
You can ignore `-DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF` if you want to build the Examples and Unit Tests.
|
|
<br>
|
|
### Manually
|
|
Crow can be installed manually on your Linux computer.
|
|
#### Multiple header files
|
|
=== "Project Only"
|
|
|
|
Copy Crow's `include` directory to your project's `include` directory.
|
|
|
|
=== "System wide"
|
|
|
|
Copy Crow's `include` directory to the `/usr/local/include` directory.
|
|
|
|
#### Single header (crow_all.h)
|
|
!!!warning
|
|
|
|
`crow_all.h` is recommended only for small, possibly single source file projects, and ideally should not be installed on your system.
|
|
navigate to the `scripts` directory and run `./merge_all.py ../include crow_all.h`. This will generate a `crow_all.h` file that you can use in your projects.
|
|
!!!note
|
|
|
|
You can also include or exclude middlewares from your `crow_all.h` by using `-i` or `-e` followed by the middleware header file names separated by a comma (e.g. `merge_all.py ../include crow_all.h -e cookie_parser` to exclude the cookie parser middleware).
|
|
# Compiling your project
|
|
## Using CMake
|
|
In order to get your CMake project to work with Crow, all you need are the following lines in your CMakeLists.txt:
|
|
```
|
|
find_package(Crow)
|
|
target_link_libraries(your_project PUBLIC Crow::Crow)
|
|
```
|
|
From there CMake should handle compiling and linking your project.
|
|
## Directly using a compiler
|
|
All you need to do is run the following command:
|
|
```
|
|
g++ main.cpp -lpthread
|
|
```
|
|
You can use arguments like `-DCROW_ENABLE_DEBUG`, `-DCROW_ENABLE_COMPRESSION -lz` for HTTP Compression, or `-DCROW_ENABLE_SSL -lssl` for HTTPS support, or even replace g++ with clang++.
|
|
!!!warning
|
|
|
|
If you're using a version of boost prior to 1.69, you'll need to add the argument `-lboost_system` in order for you Crow application to compile correctly.
|