cmake_minimum_required(VERSION 3.10) project(main) # exports compile_commands.json for the IDE set(CMAKE_EXPORT_COMPILE_COMMANDS ON) include_directories(BEFORE SYSTEM ${PROJECT_SOURCE_DIR}/../fastflow/) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) if(UNIX AND NOT APPLE) set(CMAKE_CXX_COMPILER "/usr/bin/g++") set(CMAKE_CXX_FLAGS "-Wall") else() set(CMAKE_CXX_COMPILER "/opt/homebrew/bin/g++-13") set(CMAKE_CXX_FLAGS "-Wall -DNO_DEFAULT_MAPPING") endif() # set(CMAKE_CXX_FLAGS "-Wall -DNO_DEFAULT_MAPPING -DBLOCKING_MODE") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -finline-functions") set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) add_library(timer timer.cpp timer.hpp) add_library(threadpool threadPool.cpp threadPool.hpp) target_link_libraries(threadpool Threads::Threads) add_executable(main main.cpp reader.hpp writer.hpp task.hpp stencil.hpp) include_directories(main PUBLIC ${PROJECT_SOURCE_DIR}/) target_link_libraries(main Threads::Threads timer threadpool)