init
This commit is contained in:
		
				commit
				
					
						d2de39e108
					
				
			
		
					 3 changed files with 55 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
.idea
 | 
			
		||||
cmake-build-*
 | 
			
		||||
							
								
								
									
										47
									
								
								CMakeLists.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								CMakeLists.txt
									
										
									
									
									
										Normal 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
									
								
							
							
						
						
									
										6
									
								
								main.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
	std::cout << "Hello, World!" << std::endl;
 | 
			
		||||
	return EXIT_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue