-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
32 lines (26 loc) · 1004 Bytes
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.19)
project(LibraMain LANGUAGES CXX)
# Set C++ standard to use
set(CMAKE_CXX_STANDARD 17)
# Find architecture property
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(PROJECT_ARCH_TARGET "amd64") # x64
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(PROJECT_ARCH_TARGET "i386") # x86
else()
message(FATAL_ERROR "Unkwnown architecture, CMake will exit.")
endif()
# Defines options of project
# Ex : set(EXT_OPT_LIBRARY_XYZ 0)
# Export generated binaries
if(NOT PROJECT_BUILD_OUTPUT)
set(PROJECT_BUILD_OUTPUT ${CMAKE_SOURCE_DIR}/build/output/${PROJECT_ARCH_TARGET}/${CMAKE_BUILD_TYPE})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BUILD_OUTPUT}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BUILD_OUTPUT}/bin)
endif()
# Run subdirectory routine
add_subdirectory(deps/qlogger)
add_subdirectory(lib)
add_subdirectory(example)