-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
50 lines (40 loc) · 1.62 KB
/
CMakeLists.txt
File metadata and controls
50 lines (40 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
cmake_minimum_required(VERSION 3.10)
# Use static libs always, even on Windows.
if(WIN32)
set(VCPKG_TARGET_TRIPLET "x64-windows-static")
elseif (LINUX)
set(VCPKG_TARGET_TRIPLET "x64-linux")
endif()
# For case if there is no CMAKE_TOOLCHAIN_FILE, but VCPKG_HOME exists.
if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
if (DEFINED ENV{VCPKG_HOME})
set(_vcpkg_env_var_name VCPKG_HOME)
endif()
if(_vcpkg_env_var_name)
message(STATUS "*** vcpkg environment variable to use: ${_vcpkg_env_var_name}")
set(_vcpkg_env_var_value $ENV{${_vcpkg_env_var_name}})
message(STATUS "*** vcpkg to use: ${_vcpkg_env_var_value}")
set(CMAKE_TOOLCHAIN_FILE "${_vcpkg_env_var_value}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
message(STATUS "*** CMAKE_TOOLCHAIN_FILE is set to: ${CMAKE_TOOLCHAIN_FILE}")
unset(_vcpkg_env_var_name)
else()
message(FATAL_ERROR "No environment variable VCPKG_HOME found!")
endif()
endif()
set(VCPKG_FEATURE_FLAGS versions)
project(so5_dining_philosophers LANGUAGES CXX)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
if(NOT CMAKE_CXX_STANDARD)
message(STATUS "C++17 will be used by default")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CXX_EXTENSIONS NO)
else()
message(STATUS "C++ standard is set to C++${CMAKE_CXX_STANDARD}")
endif()
find_package(sobjectizer CONFIG REQUIRED)
find_package(so5extra CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
add_subdirectory(dining_philosophers)