1
1
cmake_minimum_required (VERSION 3.10)
2
- set (CMAKE_SYSTEM_NAME Generic)
3
- set (CMAKE_SYSTEM_PROCESSOR arm)
4
- set (CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY" )
5
- set (CMAKE_C_COMPILER ${COMPILERPATH} arm-none-eabi-gcc)
6
- set (CMAKE_CXX_COMPILER ${COMPILERPATH} arm-none-eabi-g++)
7
- #set(CMAKE_LINKER ${COMPILERPATH}arm-none-eabi-gcc)
8
- set (CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>" )
9
- #SET (CMAKE_C_COMPILER_WORKS 1)
10
- #SET (CMAKE_CXX_COMPILER_WORKS 1)
11
- # * you will need to define the following properies: (frmo https://github.com/newdigate/teensy-cmake-macros)
12
- #set(TEENSY_VERSION 41 CACHE STRING "Set to the Teensy version corresponding to your board (40 or 41 allowed)" FORCE)
13
- #set(CPU_CORE_SPEED 600000000 CACHE STRING "Set to 24000000, 48000000, 72000000 or 96000000 to set CPU core speed" FORCE) # Derived variables
14
- #set(COMPILERPATH "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/")
15
- #set(DEPSPATH "/home/runner/work/teensy-variable-playback/teensy-variable-playback/deps")
16
- # * core path will be set as below by default. you can change if necessary
17
- #set(COREPATH "${DEPSPATH}/cores/teensy4/")
18
- if (APPLE )
19
- set (CMAKE_OSX_SYSROOT "" )
20
- endif ()
21
-
22
- if (PROJECT_IS_TOP_LEVEL)
23
- set (Arduino_libraries_List "" CACHE INTERNAL "" )
24
- endif ()
25
-
26
- # static configuration
27
- set (runtime_ide_version 159)
28
- set (arduino_ide_version 10607)
29
- set (build_command_gcc arm-none-eabi-gcc)
30
- set (build_command_g++ arm-none-eabi-g++)
31
- set (build_command_ar arm-none-eabi-gcc-ar)
32
- set (build_command_objcopy arm-none-eabi-objcopy)
33
- set (build_command_objdump arm-none-eabi-objdump)
34
- set (build_command_linker arm-none-eabi-gcc)
35
- set (build_command_size arm-none-eabi-size)
36
- set (CMAKE_SYSTEM_NAME Generic)
37
- SET (CMAKE_CXX_ARCHIVE_CREATE "${COMPILERPATH} /${build_command_ar} rcs <TARGET> <LINK_FLAGS> <OBJECTS>" )
38
- SET (CMAKE_C_ARCHIVE_CREATE "${COMPILERPATH} /${build_command_ar} rcs <TARGET> <LINK_FLAGS> <OBJECTS>" )
39
-
40
- function (teensy_set_dynamic_properties)
41
- if (NOT DEFINED teensy_set_dynamic_properties_has_executed)
42
- set (teensy_set_dynamic_properties_has_executed 1 CACHE INTERNAL "teensy_set_dynamic_properties_has_executed" )
43
- message (STATUS "teensy_set_dynamic_properties()" )
44
-
45
- if (NOT DEFINED CPU_CORE_SPEED)
46
- message (FATAL_ERROR "CPU_CORE_SPEED is UNDEFINED" )
47
- else ()
48
- message (STATUS "CPU_CORE_SPEED: ${CPU_CORE_SPEED} " )
49
- endif ()
50
-
51
- set (build_fcpu ${CPU_CORE_SPEED} )
52
-
53
- if (NOT DEFINED COMPILERPATH)
54
- message (FATAL_ERROR "COMPILERPATH is UNDEFINED" )
55
- else ()
56
- message (STATUS "COMPILERPATH: ${COMPILERPATH} " )
57
- endif ()
58
-
59
- set (build_toolchain ${COMPILERPATH} )
60
-
61
- if (NOT DEFINED ${build_usbtype} )
62
- set (build_usbtype USB_SERIAL)
63
- set (build_usbtype ${build_usbtype} CACHE INTERNAL "build_usbtype" )
64
- message (STATUS "build_usbtype: ${build_usbtype} " )
65
- endif ()
66
-
67
- if (NOT DEFINED ${build_usbtype} )
68
- set (build_keylayout US_ENGLISH)
69
- set (build_keylayout ${build_keylayout} CACHE INTERNAL "build_keylayout" )
70
- message (STATUS "build_keylayout: ${build_keylayout} " )
71
- endif ()
72
-
73
- if (TEENSY_VERSION EQUAL 40)
74
- set (CPU_DEFINE __IMXRT1062__)
75
- set (LINKER_FILE ${COREPATH} imxrt1062.ld)
76
- set (build_board TEENSY40)
77
- set (build_flags_ld "-nostdlib -Wl,--gc-sections,--relax " )
78
- set (build_core teensy4)
79
- set (build_mcu imxrt1062)
80
- set (build_warn_data_percentage 99)
81
- set (build_flags_common "-g -Wall -ffunction-sections -fdata-sections " )
82
- set (build_flags_dep "-MMD" )
83
- set (build_flags_optimize "-Os" )
84
- set (build_flags_cpu "-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 " )
85
- set (build_flags_defs "-D${CPU_DEFINE} -DTEENSYDUINO=159 " )
86
- set (build_flags_cpp "-std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing" )
87
- set (build_flags_c "" )
88
- set (build_flags_S "-x assembler-with-cpp" )
89
- set (build_flags_libs "-lm" )
90
- elseif (TEENSY_VERSION EQUAL 41)
91
- message (STATUS "building for teensy 4.1" )
92
- set (CPU_DEFINE __IMXRT1062__)
93
- set (LINKER_FILE ${teensy_cores_SOURCE_DIR} /teensy4/imxrt1062_t41.ld)
94
- set (build_board TEENSY41)
95
- set (build_flags_ld " -Wl,--gc-sections,--relax " )
96
- set (build_core teensy4)
97
- set (build_mcu imxrt1062)
98
- set (build_warn_data_percentage 99)
99
- set (build_flags_common "-g -Wall -ffunction-sections -fdata-sections " )
100
- set (build_flags_dep "-MMD" )
101
- set (build_flags_optimize "-O2" )
102
- set (build_flags_cpu "-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 " )
103
- set (build_flags_defs "-D${CPU_DEFINE} -DTEENSYDUINO=159 " )
104
- set (build_flags_cpp "-std=gnu++17 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing" )
105
- set (build_flags_c "" )
106
- set (build_flags_S "-x assembler-with-cpp" )
107
- #set(build_flags_libs "-larm_cortexM7lfsp_math -lm -lstdc++")
108
- set (build_flags_libs "-lm" )
109
- else ()
110
- message (FATAL_ERROR "Teensy version not defined" )
111
- endif ()
112
-
113
- # search for programs in the build host directories
114
- set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER CACHE INTERNAL "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM" )
115
-
116
- # for libraries and headers in the target directories
117
- set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE INTERNAL "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY" )
118
- set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE INTERNAL "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE" )
119
- set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY CACHE INTERNAL "CMAKE_FIND_ROOT_PATH_MODE_PACKAGE" )
120
-
121
- set (CPP_COMPILE_FLAGS "${build_flags_optimize} ${build_flags_common} ${build_flags_dep} ${build_flags_cpp} ${build_flags_cpu} ${build_flags_defs} -DARDUINO=${arduino_ide_version} -DARDUINO_${build_board} -DF_CPU=${build_fcpu} -D${build_usbtype} -DLAYOUT_${build_keylayout} " )
122
- set (C_COMPILE_FLAGS "${build_flags_optimize} ${build_flags_common} ${build_flags_dep} ${build_flags_c} ${build_flags_cpu} ${build_flags_defs} -DARDUINO=${arduino_ide_version} -DARDUINO_${build_board} -DF_CPU=${build_fcpu} -D${build_usbtype} -DLAYOUT_${build_keylayout} " )
123
- set (S_COMPILE_FLAGS "${build_flags_optimize} ${build_flags_common} ${build_flags_dep} ${build_flags_S} ${build_flags_cpu} ${build_flags_defs} -DARDUINO=${arduino_ide_version} -DARDUINO_${build_board} -DF_CPU=${build_fcpu} -D${build_usbtype} -DLAYOUT_${build_keylayout} " )
124
- set (LINK_FLAGS "${build_flags_optimize} ${build_flags_ld} ${build_flags_ldspecs} ${build_flags_cpu} -T${LINKER_FILE} ${build_flags_libs} " )
125
-
126
- set (CPP_COMPILE_FLAGS ${CPP_COMPILE_FLAGS} CACHE INTERNAL "CPP_COMPILE_FLAGS" )
127
- set (C_COMPILE_FLAGS ${C_COMPILE_FLAGS} CACHE INTERNAL "C_COMPILE_FLAGS" )
128
- set (S_COMPILE_FLAGS ${S_COMPILE_FLAGS} CACHE INTERNAL "S_COMPILE_FLAGS" )
129
- set (LINK_FLAGS ${LINK_FLAGS} CACHE INTERNAL "LINK_FLAGS" )
130
-
131
- #message(STATUS "S_COMPILE_FLAGS: ${S_COMPILE_FLAGS}")
132
- #message(STATUS "CPP_COMPILE_FLAGS: ${CPP_COMPILE_FLAGS}")
133
- endif ()
134
- endfunction ()
135
-
136
- function (import_teensy_cores)
137
- message (STATUS "import_teensy_cores()" )
138
-
139
- file (GLOB_RECURSE TEENSY_C_FILES ABSOLUTE ${COREPATH} **.c)
140
- foreach (SOURCE_C ${TEENSY_C_FILES} )
141
- set_source_files_properties (${SOURCE_C} PROPERTIES COMPILE_FLAGS "${C_COMPILE_FLAGS} " )
142
- #message(STATUS " .c: ${SOURCE_C} ${C_COMPILE_FLAGS}")
143
- endforeach (SOURCE_C ${SOURCES_C} )
144
-
145
- file (GLOB_RECURSE TEENSY_CPP_FILES ${COREPATH} **.cpp)
146
- foreach (SOURCE_CPP ${TEENSY_CPP_FILES} )
147
- set_source_files_properties (${SOURCE_CPP} PROPERTIES COMPILE_FLAGS "${CPP_COMPILE_FLAGS} " )
148
- #message(STATUS " .cpp: ${SOURCE_CPP} ${CPP_COMPILE_FLAGS}")
149
- endforeach (SOURCE_CPP ${SOURCES_CPP} )
150
-
151
- set (TEENSY_SOURCES ${TEENSY_C_FILES} ${TEENSY_CPP_FILES} PARENT_SCOPE)
152
- endfunction ()
153
-
154
- # Macros to wrap add_[executable|library] for seamless Teensy integration
155
- function (teensy_add_executable TARGET )
156
-
157
- message (STATUS "teensy_add_executable(${TARGET} ${ARGN} )" )
158
-
159
- teensy_set_dynamic_properties()
160
-
161
- set (ELFTARGET ${TARGET} .elf)
162
- foreach (arg IN LISTS ARGN)
163
- file (GLOB TEST_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${arg} )
164
- list (FILTER TEST_SOURCE INCLUDE REGEX ".cpp$" )
165
- set (TEENSY_EXE_CPP_SOURCES ${TEENSY_EXE_CPP_SOURCES} ${TEST_SOURCE} )
166
-
167
- file (GLOB INO_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${arg} )
168
- list (FILTER INO_SOURCE INCLUDE REGEX ".ino$" )
169
- set (TEENSY_EXE_INO_SOURCES ${TEENSY_EXE_INO_SOURCES} ${INO_SOURCE} )
170
- endforeach ()
171
-
172
- foreach (SOURCE_CPP ${TEENSY_EXE_CPP_SOURCES} )
173
- set_source_files_properties (${SOURCE_CPP} PROPERTIES COMPILE_FLAGS "${CPP_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES} " )
174
- endforeach (SOURCE_CPP ${TEENSY_EXE_CPP_SOURCES} )
175
-
176
- #foreach(SOURCE_C ${TEENSY_LIB_C_SOURCES})
177
- # set_source_files_properties(${SOURCE_C} PROPERTIES COMPILE_FLAGS "${C_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES}")
178
- #endforeach(SOURCE_C ${TEENSY_LIB_C_SOURCES})
179
-
180
- #foreach(SOURCE_S ${TEENSY_LIB_S_SOURCES})
181
- # set_property(SOURCE ${SOURCE_S} PROPERTY LANGUAGE C)
182
- # set_source_files_properties(${SOURCE_S} PROPERTIES COMPILE_FLAGS "${S_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES}")
183
- #endforeach(SOURCE_S ${TEENSY_LIB_S_SOURCES})
184
-
185
- foreach (SOURCE_INO ${TEENSY_EXE_INO_SOURCES} )
186
- set_property (SOURCE ${SOURCE_INO} PROPERTY LANGUAGE CXX)
187
- set_source_files_properties (${SOURCE_INO} PROPERTIES COMPILE_FLAGS "${CPP_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES} -x c++" )
188
- endforeach (SOURCE_INO ${TEENSY_EXE_INO_SOURCES} )
189
-
190
- add_executable (${ELFTARGET} ${ARGN} )
191
- # add_executable(${ELFTARGET} ${ARGN} ${TEENSY_SOURCES} ${TEENSY_LIB_CPP_SOURCES} ${TEENSY_LIB_C_SOURCES} ${TEENSY_LIB_S_SOURCES})
192
-
193
- set_target_properties (${ELFTARGET} PROPERTIES INCLUDE_DIRECTORIES "${COREPATH} " )
194
- set_target_properties (${ELFTARGET} PROPERTIES LINK_FLAGS "${LINK_FLAGS} " )
195
-
196
- add_custom_command (OUTPUT ${TARGET} .hex
197
- COMMAND ${COMPILERPATH} arm-none-eabi-size ${ELFTARGET}
198
- COMMAND ${COMPILERPATH} arm-none-eabi-objcopy -O ihex -R .eeprom ${ELFTARGET} ${TARGET} .hex
199
- DEPENDS ${ELFTARGET}
200
- COMMENT "Creating HEX file for ${ELFTARGET} " )
201
-
202
- add_custom_target (${TARGET} _hex ALL DEPENDS ${TARGET} .hex)
203
- endfunction ()
204
-
205
- function (teensy_add_library TARGET )
206
- message (STATUS "teensy_add_library(${TARGET} ${ARGN} )" )
207
-
208
- teensy_set_dynamic_properties()
209
-
210
- set (ELFTARGET ${TARGET} .o)
211
-
212
- set (TEENSY_LIB_CPP_SOURCES "" )
213
- set (TEENSY_LIB_C_SOURCES "" )
214
- set (TEENSY_LIB_S_SOURCES "" )
215
-
216
- foreach (arg ${ARGN} )
217
- file (GLOB TEST_CPP_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${arg} )
218
- list (FILTER TEST_CPP_SOURCE INCLUDE REGEX ".cpp$" )
219
- set (TEENSY_LIB_CPP_SOURCES ${TEENSY_LIB_CPP_SOURCES} ${TEST_CPP_SOURCE} )
220
-
221
- file (GLOB TEST_C_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${arg} )
222
- list (FILTER TEST_C_SOURCE INCLUDE REGEX ".c$" )
223
- set (TEENSY_LIB_C_SOURCES ${TEENSY_LIB_C_SOURCES} ${TEST_C_SOURCE} )
224
-
225
- file (GLOB TEST_S_SOURCE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${arg} )
226
- list (FILTER TEST_S_SOURCE INCLUDE REGEX ".S$" )
227
- set (TEENSY_LIB_S_SOURCES ${TEENSY_LIB_S_SOURCES} ${TEST_S_SOURCE} )
228
- endforeach ()
229
- #message(STATUS TEENSY_LIB_S_SOURCES: ${TEENSY_LIB_S_SOURCES})
230
- #message(STATUS TEENSY_LIB_C_SOURCES: ${TEENSY_LIB_C_SOURCES})
231
- #message(STATUS TEENSY_LIB_CPP_SOURCES: ${TEENSY_LIB_CPP_SOURCES})
232
-
233
- foreach (SOURCE_CPP ${TEENSY_LIB_CPP_SOURCES} )
234
- set_source_files_properties (${SOURCE_CPP} PROPERTIES COMPILE_FLAGS "${CPP_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES} " )
235
- endforeach (SOURCE_CPP ${SOURCES_CPP} )
236
-
237
- foreach (SOURCE_C ${TEENSY_LIB_C_SOURCES} )
238
- set_source_files_properties (${SOURCE_C} PROPERTIES COMPILE_FLAGS "${C_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES} " )
239
- endforeach (SOURCE_C ${SOURCES_C} )
240
-
241
- foreach (SOURCE_S ${TEENSY_LIB_S_SOURCES} )
242
- set_property (SOURCE ${SOURCE_S} PROPERTY LANGUAGE C)
243
- set_source_files_properties (${SOURCE_S} PROPERTIES COMPILE_FLAGS "${S_COMPILE_FLAGS} ${INCLUDE_DIRECTORIES} " )
244
- endforeach (SOURCE_S ${SOURCES_S} )
245
-
246
- add_library (${ELFTARGET} STATIC ${ARGN} ${TEENSY_SOURCES} ${TEENSY_LIB_CPP_SOURCES} ${TEENSY_LIB_C_SOURCES} ${TEENSY_LIB_S_SOURCES} )
247
- if (COREPATH)
248
- set_target_properties (${ELFTARGET} PROPERTIES INCLUDE_DIRECTORIES ${COREPATH} )
249
- endif ()
250
- set_target_properties (${ELFTARGET} PROPERTIES LINK_FLAGS "${LINK_FLAGS} " )
251
-
252
- add_custom_command (OUTPUT ${TARGET} .hex
253
- COMMAND ${COMPILERPATH} arm-none-eabi-size ${ELFTARGET}
254
- COMMAND ${COMPILERPATH} arm-none-eabi-objcopy -O ihex -R .eeprom ${ELFTARGET} ${TARGET} .hex
255
- DEPENDS ${ELFTARGET}
256
- COMMENT "Creating HEX file for ${ELFTARGET} " )
257
- endfunction ()
258
-
259
- macro (import_arduino_library LIB_NAME LIB_ROOT)
260
- if ("${LIB_NAME} " IN_LIST Arduino_libraries_List)
261
- message (INFO "-- import_arduino_library -- ${name} is already imported..." )
262
- else ()
263
- list (APPEND Arduino_libraries_List "${LIB_NAME} " )
264
- set (Arduino_libraries_List ${Arduino_libraries_List} CACHE INTERNAL "" )
265
-
266
- message (STATUS "import_arduino_library(${LIB_NAME} ${LIB_ROOT} ${ARGN} )" )
267
- # Check if we can find the library.
268
- if (NOT EXISTS "${LIB_ROOT} " )
269
- message (STATUS "Could not find the directory for library '${LIB_ROOT} ' -- ignoring (its possible that the library is not used for the target you are calling) !!!!!" )
270
- else ()
271
- set (INCLUDE_DIRECTORIES "${INCLUDE_DIRECTORIES} -I${LIB_ROOT} " )
272
-
273
- set (IMPORT_LIB_CPP_SOURCES "" )
274
- set (IMPORT_LIB_C_SOURCES "" )
275
- set (IMPORT_LIB_S_SOURCES "" )
276
-
277
- # Mark source files to be built along with the sketch code.
278
- file (GLOB SOURCES_CPP ABSOLUTE "${LIB_ROOT} /*.cpp" )
279
- foreach (SOURCE_CPP ${SOURCES_CPP} )
280
- set (IMPORT_LIB_CPP_SOURCES ${IMPORT_LIB_CPP_SOURCES} ${SOURCE_CPP} )
281
- endforeach (SOURCE_CPP ${SOURCES_CPP} )
282
-
283
- file (GLOB SOURCES_C ABSOLUTE "${LIB_ROOT} /*.c" )
284
- foreach (SOURCE_C ${SOURCES_C} )
285
- set (IMPORT_LIB_C_SOURCES ${IMPORT_LIB_C_SOURCES} ${SOURCE_C} )
286
- endforeach (SOURCE_C ${SOURCES_C} )
287
-
288
- file (GLOB SOURCES_S ABSOLUTE "${LIB_ROOT} /*.S" )
289
- foreach (SOURCE_S ${SOURCES_S} )
290
- set (IMPORT_LIB_S_SOURCES ${IMPORT_LIB_S_SOURCES} ${SOURCE_S} )
291
- endforeach (SOURCE_S ${SOURCES_S} )
292
-
293
- foreach (arg ${ARGN} )
294
- message (status " checking for ${LIB_ROOT} /${arg} " )
295
- if (NOT EXISTS ${LIB_ROOT} /${arg} )
296
- message (FATAL_ERROR "Could not find the Arduino library directory ${LIB_ROOT} /${arg} " )
297
- endif (NOT EXISTS ${LIB_ROOT} /${arg} )
298
- include_directories ("${LIB_ROOT} /${arg} " )
299
- set (INCLUDE_DIRECTORIES "${INCLUDE_DIRECTORIES} -I${LIB_ROOT} /${arg} " )
300
-
301
- # Mark source files to be built along with the sketch code.
302
- file (GLOB SOURCES_CPP ABSOLUTE "${LIB_ROOT} /${arg} /*.cpp" )
303
- foreach (SOURCE_CPP ${SOURCES_CPP} )
304
- set (IMPORT_LIB_CPP_SOURCES ${IMPORT_LIB_CPP_SOURCES} ${SOURCE_CPP} )
305
- endforeach (SOURCE_CPP ${SOURCES_CPP} )
306
-
307
- file (GLOB SOURCES_C ABSOLUTE "${LIB_ROOT} /${arg} /*.c" )
308
- foreach (SOURCE_C ${SOURCES_C} )
309
- set (IMPORT_LIB_C_SOURCES ${IMPORT_LIB_C_SOURCES} ${SOURCE_C} )
310
- endforeach (SOURCE_C ${SOURCES_C} )
311
-
312
- file (GLOB SOURCES_S ABSOLUTE "${LIB_ROOT} /${arg} /*.S" )
313
- foreach (SOURCE_S ${SOURCES_S} )
314
- set (IMPORT_LIB_S_SOURCES ${IMPORT_LIB_S_SOURCES} ${SOURCE_S} )
315
- endforeach (SOURCE_S ${SOURCES_S} )
316
- endforeach ()
317
-
318
- teensy_add_library(${LIB_NAME} ${IMPORT_LIB_CPP_SOURCES} ${IMPORT_LIB_C_SOURCES} ${IMPORT_LIB_S_SOURCES} )
319
-
320
- endif (NOT EXISTS "${LIB_ROOT} " )
321
- endif ()
322
- endmacro (import_arduino_library)
323
-
324
- macro (teensy_remove_sources LIB_DIR)
325
- file (GLOB_RECURSE FILES_TO_REMOVE ABSOLUTE "${LIB_DIR} /**.*" )
326
- foreach (FILE_TO_REMOVE ${FILES_TO_REMOVE} )
327
- list (REMOVE_ITEM TEENSY_LIB_SOURCES ${FILE_TO_REMOVE} )
328
- message ("REMOVED ${FILE_TO_REMOVE} " )
329
- endforeach (FILE_TO_REMOVE ${FILES_TO_REMOVE} )
330
- endmacro (teensy_remove_sources)
331
-
332
- macro (teensy_include_directories)
333
- set (list_var "${ARGN} " )
334
- foreach (loop_var IN LISTS list_var)
335
- set (INCLUDE_DIRECTORIES "${INCLUDE_DIRECTORIES} -I${CMAKE_CURRENT_SOURCE_DIR} /${loop_var} " )
336
- endforeach ()
337
- endmacro (teensy_include_directories)
338
-
339
- macro (teensy_target_link_libraries TARGET )
340
- set (list_var "${ARGN} " )
341
- foreach (loop_var IN LISTS list_var)
342
- target_link_libraries (${TARGET} .elf ${loop_var} .o)
343
- endforeach ()
344
- endmacro (teensy_target_link_libraries)
345
-
346
- macro (import_arduino_library_git LIB_NAME LIB_URL LIB_BRANCH LIB_PATH)
347
- include (FetchContent)
348
- FetchContent_Declare(${LIB_NAME}
349
- GIT_REPOSITORY ${LIB_URL}
350
- GIT_TAG ${LIB_BRANCH}
351
- )
352
- FetchContent_MakeAvailable(${LIB_NAME} )
353
- string (TOLOWER ${LIB_NAME} LIB_NAME_LOWER)
354
- set (LIB_ROOT "${${LIB_NAME_LOWER} _SOURCE_DIR}/${LIB_PATH} " )
355
-
356
- # Check if we can find the library.
357
- if (NOT EXISTS "${LIB_ROOT} " )
358
- message (STATUS "Could not find the directory for library '${LIB_ROOT} ' -- ignoring (its possible that the library is not used for the target you are calling) !!!!!" )
359
- else ()
360
- import_arduino_library(${LIB_NAME} ${LIB_ROOT} ${ARGN} )
361
- endif (NOT EXISTS "${LIB_ROOT} " )
362
-
363
- endmacro (import_arduino_library_git)
2
+ project (teensy_cmake_macros)
0 commit comments