This commit is contained in:
Florent Denef 2021-01-07 21:01:47 +01:00
commit d2de39e108
No known key found for this signature in database
GPG Key ID: 873C3ACCF970C74E
3 changed files with 55 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.idea
cmake-build-*

47
CMakeLists.txt Normal file
View File

@ -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)

6
main.cpp Normal file
View File

@ -0,0 +1,6 @@
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return EXIT_SUCCESS;
}