cmake_minimum_required(VERSION 3.10) # Modify only these if one source file! project(CppBreakMemory) set(CURRENT_PROJECT_CODE_NAME breakmemory) set(FILE_EXT cpp) # End set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) # We want all the warnings and as errors enabled if (MSVC) # warning level 4 and all warnings as errors add_compile_options(/W4 /WX) else() # lots of warnings and all warnings as errors add_compile_options(-Wall -Wextra -pedantic -Werror) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) list(APPEND EXTRA_LIBS "Threads::Threads") endif() add_executable(${CMAKE_PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/${CURRENT_PROJECT_CODE_NAME}.${FILE_EXT}) target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${EXTRA_INCLUDES} ) target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC ${EXTRA_LIBS} )