From a3973a5a5344bb2fa71adccd01d17c4218644667 Mon Sep 17 00:00:00 2001 From: yuangongji <82787816@qq.com> Date: Wed, 19 Jun 2019 22:27:39 +0800 Subject: doc: add MSVC and GNUC options --- Documentation/Building.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/Building.md b/Documentation/Building.md index d32816cb..cf02d79f 100644 --- a/Documentation/Building.md +++ b/Documentation/Building.md @@ -76,6 +76,7 @@ $ make verify # Optional ``` ## CMake Variables +General options: ``` # Type of the library to build (SHARED or STATIC) # Default is: SHARED for MSVC, otherwise BOTH @@ -124,6 +125,26 @@ EVENT__FORCE_KQUEUE_CHECK:BOOL=OFF # Build documentation with doxygen EVENT__DOXYGEN:BOOL=OFF ``` +MSVC specific options: +``` +# Link static runtime libraries. +# Defaults to ON if EVENT_LIBRARY_TYPE is equal to "STATIC", otherwise OFF +EVENT__MSVC_STATIC_RUNTIME:BOOL +``` +GNUC specific options: +``` +# Disable verbose warnings with GCC +EVENT__DISABLE_GCC_WARNINGS:BOOL=OFF + +# Enable compiler security checks +EVENT__ENABLE_GCC_HARDENING:BOOL=OFF + +# Enable gcc function sections +EVENT__ENABLE_GCC_FUNCTION_SECTIONS:BOOL=OFF + +# Make all GCC warnings into errors +EVENT__ENABLE_GCC_WARNINGS:BOOL=OFF +``` __More variables can be found by running `cmake -LAH `__ [Back to top ↑](#jump-to) -- cgit v1.2.1 From 3d82675e37463045fe113c7ebe43adc3bf00af69 Mon Sep 17 00:00:00 2001 From: yuangongji <82787816@qq.com> Date: Sat, 22 Jun 2019 00:03:36 +0800 Subject: doc: add build prerequisites [ci skip] --- Documentation/Building.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/Documentation/Building.md b/Documentation/Building.md index cf02d79f..c78f99cd 100644 --- a/Documentation/Building.md +++ b/Documentation/Building.md @@ -1,11 +1,87 @@ # Building and installing Libevent + ### Jump to: + +- [Prerequisites](#Prerequisites) - [Autoconf](#autoconf) - [Flags](#autoconf-flags) - [Building on Windows](#building-on-windows) - [Building on Unix (With CMake)](#building-on-unix-cmake) - [CMake Variables](#cmake-variables) +## Prerequisites + +### Linux deb-like (ubuntu/debian/...) + +Just install tools using your preferred package manager if you build using autotools: + +```sh +sudo apt-get install automake autoconf libtool pkg-config +``` + +or build using cmake: + +```sh +sudo apt-get install cmake +``` + +Doxygen is a tool for generating documentation. Git is used to fetch the package version. +Install them if needed: + +``` +sudo apt-get install doxygen git +``` + +libevent has encryption layer, you need openssl or mbedTLS for it, you can +install one of this using: + +```sh +sudo apt-get install libssl-dev libmbedtls-dev +``` + +To support multithreaded environments, libpthread is a must, and it already exists in the system. + +To run the tests, you should install zlib: + +```sh +sudo apt-get install zlib1g-dev +``` + +Finally, python interpreter should be installed if you want to run regression tests. + +### MacOS + +On MacOS you can use `brew` to manage packages. + +The installation process on MacOS is roughly the same as on Linux, +the difference is installation of openssl and zlib: + +```sh +brew install openssl zlib +``` + +### Windows + +To install it, there are two choices: installer and zip file. + +If using zip file, you should set the PATH variable in the Environment +Variables for your User to include the installation path of cmake. + +Install Visual Studio which is the true compiler that will be used. + +Install OpenSSL to support for encryption, then add the installation path into the PATH variable in the Environment Variables, +or set OPENSSL_ROOT_DIR in command prompt: + +```sh +set "OPENSSL_ROOT_DIR=C:\path\to\OpenSSL" +``` + +or add `OPENSSL_ROOT_DIR` definition to the cmake command: + +```sh +cmake -DOPENSSL_ROOT_DIR=C:/path/to/OpenSSL ... +``` + ## Autoconf ``` -- cgit v1.2.1