From d2de39e10819e5a270f154a69dbd1fd6ccf17f9b Mon Sep 17 00:00:00 2001 From: Florent Denef Date: Thu, 7 Jan 2021 21:01:47 +0100 Subject: [PATCH] init --- .gitignore | 2 ++ CMakeLists.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++++ main.cpp | 6 ++++++ 3 files changed, 55 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de08f6d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +cmake-build-* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..e634724 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.17 FATAL_ERROR) +project(GeminiServer CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_COMPILER_LAUNCHER ccache) + +find_package(Boost REQUIRED COMPONENTS system) +find_package(OpenSSL REQUIRED) +include_directories(${Boost_INCLUDE_DIR} ${OpenSSL_INCLUDE_DIR}) + +set(COMPILE_FLAGS + -pipe + -march=skylake # change to native or your architecture. + -mtune=skylake # same as above + -mrdrnd + -Wall + -Wextra + -Wpessimizing-move + -Wredundant-move + -funroll-loops + -flto=thin -fwhole-program-vtables + -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free + ) +set(LINKER_OPTIONS + PRIVATE -Wl,--sort-common,--as-needed + -flto=thin + -fwhole-program-vtables + -fuse-ld=gold + ) + +set(LINKER_FLAGS + jemalloc + ) + +file(GLOB HEADERS includes/*.hpp) + +set(FILES + main.cpp) + +add_executable(GeminiServer ${FILES}) +target_precompile_headers(GeminiServer PRIVATE ${HEADERS}) +target_compile_definitions(GeminiServer PRIVATE _GLIBCXX_DEBUG) +target_compile_options(GeminiServer PRIVATE ${COMPILE_FLAGS}) +target_link_options(GeminiServer ${LINKER_OPTIONS}) +target_link_libraries(GeminiServer ${Boost_LIBRARIES} ${LINKER_FLAGS} OpenSSL::SSL) \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..ec3351e --- /dev/null +++ b/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + std::cout << "Hello, World!" << std::endl; + return EXIT_SUCCESS; +}