-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
138 lines (121 loc) · 4.02 KB
/
CMakeLists.txt
File metadata and controls
138 lines (121 loc) · 4.02 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
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
cmake_minimum_required(VERSION 3.25)
project(Firmware)
enable_language(
C
ASM
)
# Setup compiler settings
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
# Messages
if(NOT DEFINED CMAKE_PRESET_NAME)
message(
FATAL_ERROR
"This project requires configuration using a CMake preset. Please use 'cmake --preset <preset-name>' or select a preset in your IDE."
)
endif()
message(
STATUS
"Build type: "
${CMAKE_BUILD_TYPE}
)
message(STATUS "Target type: ${TARGET_TYPE}")
message(
STATUS
"Active CMake Preset: "
${CMAKE_PRESET_NAME}
)
# Compiler Cache Configuration
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM AND NOT CMAKE_C_COMPILER_LAUNCHER)
message(STATUS "Found ccache: ${CCACHE_PROGRAM}")
set(CCACHE_DIR_PATH "${CMAKE_SOURCE_DIR}/ccache")
set(
CMAKE_C_COMPILER_LAUNCHER
"${CMAKE_COMMAND}"
-E
env
"CCACHE_DIR=${CCACHE_DIR_PATH}"
"${CCACHE_PROGRAM}"
)
set(
CMAKE_ASM_COMPILER_LAUNCHER
"${CMAKE_COMMAND}"
-E
env
"CCACHE_DIR=${CCACHE_DIR_PATH}"
"${CCACHE_PROGRAM}"
)
message(STATUS "ccache directory: ${CCACHE_DIR_PATH}")
elseif(CMAKE_C_COMPILER_LAUNCHER)
message(
STATUS
"Not using ccache: CMAKE_C_COMPILER_LAUNCHER already set to ${CMAKE_C_COMPILER_LAUNCHER}"
)
else()
message(STATUS "Not using ccache: ccache not found in PATH")
endif()
# Globals
set(lib_path "Lib")
set(platform_path "${lib_path}/Platform")
# Vendor
include("${lib_path}/Vendor/CMSIS_5/cmsis_5.cmake")
include("${lib_path}/Vendor/STM32_HAL_LL/cube.cmake")
add_subdirectory("${lib_path}/Vendor/BCC")
include("${lib_path}/Vendor/MLX90640/combined.cmake")
# Platforms
include("${platform_path}/STM32G474xE/chip.cmake")
include("${platform_path}/STM32G431x8/chip.cmake")
include("${platform_path}/STM32U5A9xJ/chip.cmake")
include("${platform_path}/STM32L476xG/chip.cmake")
include("${platform_path}/STM32H523xE/chip.cmake")
# Utils
include("${lib_path}/GlobalShare/common.cmake")
include("${lib_path}/Utils/Logomatic/logomatic.cmake")
include("${lib_path}/Utils/VirtualComPort/vcp.cmake")
include("${lib_path}/Utils/CircularBuffer/circular-buffer-lib.cmake")
include("${lib_path}/Utils/MsgBuffer/msg-buffer-lib.cmake")
include("${lib_path}/cmake/gr-lib.cmake")
include("${lib_path}/Utils/BitManipulations/bit-utils.cmake")
# Autogen
include("Autogen/CAN/CANfigurator.cmake")
# Peripherals
include("${lib_path}/Peripherals/USART/common.cmake")
include("${lib_path}/Peripherals/CAN/common.cmake")
include("${lib_path}/FancyLayers-RENAME/GRCAN/grcan_fancylayer.cmake")
include("${lib_path}/FancyLayers-RENAME/ADC/adc.cmake")
include("${lib_path}/FancyLayers-RENAME/SPI/spi.cmake")
include("${lib_path}/FancyLayers-RENAME/NeoPixel/neopixel.cmake")
# Projects
add_gr_project(STM32G474xE ECU)
add_gr_project(STM32G474xE CCU)
add_gr_project(STM32G474xE DashPanel)
add_gr_project(STM32G474xE AnalogCalibration)
add_gr_project(STM32G474xE CANine)
add_gr_project(STM32G431x8 TireTemp)
# Development
add_gr_project(STM32G474xE G4PERTESTING)
add_gr_project(STM32G474xE G4SPITESTING)
add_gr_project(STM32G474xE G4ADCTESTING)
add_gr_project(STM32G474xE G4NEOTESTING)
# CAN Peripheral Testing
add_gr_project(STM32G474xE G474xE_CAN_TESTING CAN_BASIC_TEST)
add_gr_project(STM32G474xE G474xE_CAN_TESTING CAN_RELEASE_TEST)
add_gr_project(STM32G474xE G474xE_CAN_TESTING CAN_STRESS_TEST)
add_gr_project(STM32G474xE G474xE_CAN_TESTING CAN_LOST_RX_TEST)
add_gr_project(STM32G474xE G474xE_CAN_TESTING CAN_FILTER_TEST)
add_gr_project(STM32G474xE G474xE_CAN_TESTING PROFILER_TEST)
add_gr_project(STM32G431x8 G431x8_CAN_TESTING G431x8_CAN_BASIC_TEST)
add_gr_project(STM32G474xE G4FANCYCANTESTING CAN_LOOPBACK_TEST)
# BLINKY Demos
add_gr_project(STM32G474xE BLINKY G4BLINKY)
add_gr_project(STM32U5A9xJ BLINKY U5BLINKY)
add_gr_project(STM32L476xG BLINKY L4BLINKY)
add_gr_project(STM32L476xG BLINKY L4HELLO)
add_gr_project(STM32G474xE BLINKY G4HELLO)
add_gr_project(STM32G474xE BLINKY G4ECHO)
# Onboarding Workshops
add_gr_project(STM32G474xE Onboarding W3_G4SPI_Receive)
add_gr_project(STM32G474xE Onboarding W3_G4SPI_Transmit)