24 lines
774 B
CMake
24 lines
774 B
CMake
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)
|