-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
executable file
·60 lines (48 loc) · 1.63 KB
/
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
cmake_minimum_required(VERSION 3.1.0)
project(Elegant86 VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
if (NOT (GCC_VERSION VERSION_GREATER 11 OR GCC_VERSION VERSION_EQUAL 11))
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 11 or greater.")
endif ()
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE CLANG_VERSION)
if (NOT (CLANG_VERSION VERSION_GREATER 11 OR CLANG_VERSION VERSION_EQUAL 11))
message(FATAL_ERROR "${PROJECT_NAME} requires clang 11 or greater.")
endif ()
else ()
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 11, clang 11 or higher.")
endif ()
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
include_directories("include/" )
file(GLOB project_files
"*.cpp"
"*.h"
"source/*.cpp"
"include/*.h"
"codeEditor/source/*.cpp"
"codeEditor/include/*.h"
"assembler/source/*.cpp"
"assembler/include/*.h"
"assembler/fpasm/*.cpp"
"assembler/fpasm/*.h"
"resources.qrc"
)
set(CMAKE_BUILD_TYPE Debug)
find_package(Qt5 COMPONENTS Widgets Script REQUIRED)
add_executable(Elegant86 ${project_files})
set_property(TARGET Elegant86 PROPERTY CXX_STANDARD 20)
target_link_libraries(Elegant86 Qt5::Widgets Qt5::Script)
#Testing setup
if(UNIX)
enable_testing()
add_subdirectory(tests)
endif()