cmake_minimum_required(VERSION 3.18..3.28) project(MultiThreading VERSION 1.0 LANGUAGES CXX) if (PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) message(FATAL_ERROR "In-source builds are not allowed") endif() file(GLOB_RECURSE HEADERS "include/*.h" "include/*.hpp") file(GLOB_RECURSE SOURCES "src/*.c" "src/*.cpp") set(CMAKE_CXX_STANDARD 20) if (UNIX AND NOT APPLE) add_library(MultiThreading SHARED ${SOURCES} "include/MultiThreading/CollisionGuard.h") endif() if(WIN32) add_library(MultiThreading STATIC ${SOURCES} "include/MultiThreading/CollisionGuard.h") endif() target_include_directories(MultiThreading PUBLIC ${PROJECT_SOURCE_DIR}/include) add_executable(MultiThreadingDemo main.cpp) target_link_libraries(MultiThreadingDemo PUBLIC MultiThreading)