-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
89 lines (61 loc) · 2.92 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Created on: Apr 21, 2019
# Author: Jakob Almqvist
#
# Copyright (C) 2019 Jakob Almqvist. All rights reserved.
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
cmake_minimum_required(VERSION 3.10.2)
project (line_router)
################################### COMPILER SETTINGS ##################################################################
# Executable output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/Bin)
# Use C++11 (required)
set(CMAKE_CXX_STANDARD 11)
# Set compiler flags
# Use debug symbols
# Optimize level 3
# Enable a couple of warnings
# Disable no-psabi to not spam the compiler with warnings that doesn't matter for this project
set(COMPILER_FLAGS "-g \
-O3 \
-Werror \
-Wall -Wextra -Wcast-align \
-Wno-psabi")
# Compiler flags
# C++
if (CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS}")
endif()
# C
if (CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILER_FLAGS}")
endif()
################################### THREAD #############################################################################
# Add thread library (like pthread)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
link_libraries(Threads::Threads)
################################### GOOGLE TEST ########################################################################
# Defines make target named test.
enable_testing()
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/Cmake_modules)
include(Add_gtest)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/Ext/Google_test)
################################### QT #################################################################################
find_package(Qt5 5.9.5 COMPONENTS Core REQUIRED)
################################### INCLUDE DIRECTORIES ################################################################
set(LINE_ROUTER_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/Grid
${CMAKE_CURRENT_LIST_DIR}/Path_planner
${CMAKE_CURRENT_LIST_DIR}/Path_planner/A_star
${CMAKE_CURRENT_LIST_DIR}/UI/Line_router)
include_directories(${LINE_ROUTER_INCLUDE_DIRECTORIES})
################################### ADD DIRECTORIES ####################################################################
add_subdirectory(Grid)
add_subdirectory(Path_planner)
add_subdirectory(UI)
################################### EXECUTABLES ########################################################################
add_executable(line_router Line_router_main.cpp)
target_link_libraries(line_router line_router_window
Qt5::Core)