summaryrefslogtreecommitdiff
path: root/sw/cmake/st-project.cmake
blob: f52fce325e68ca89f1c65a47b5198eb11dc17194 (plain)
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
# BASED ON /Users/nevetsokyeron/Documents/GitHub/plinky_public/sw

function(add_st_target_properties TARGET_NAME)

target_compile_definitions(
    ${TARGET_NAME} PRIVATE
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:USE_HAL_DRIVER>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:STM32L476xx>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:DEBUG>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:USE_HAL_DRIVER>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:STM32L476xx>"
)

target_include_directories(
    ${TARGET_NAME} PRIVATE
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Include>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Src/tinyusb/src>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Inc>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32L4xx/Include>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Include>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Src/tinyusb/src>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Inc>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32L4xx/Include>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy>"
)

target_compile_options(
    ${TARGET_NAME} PRIVATE
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:ASM>>:-g3>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:-g3>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:CXX>>:-g3>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:ASM>>:-g0>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:-g0>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:-g0>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:-O3>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:-Os>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:>"
    "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:CXX>>:>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:>"
    "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:>"
    "$<$<CONFIG:Debug>:-mcpu=cortex-m4>"
    "$<$<CONFIG:Debug>:-mfpu=fpv4-sp-d16>"
    "$<$<CONFIG:Debug>:-mfloat-abi=hard>"
    "$<$<NOT:$<CONFIG:Debug>>:-mcpu=cortex-m4>"
    "$<$<NOT:$<CONFIG:Debug>>:-mfpu=fpv4-sp-d16>"
    "$<$<NOT:$<CONFIG:Debug>>:-mfloat-abi=hard>"
)

target_link_libraries(
    ${TARGET_NAME} PRIVATE
)

target_link_directories(
    ${TARGET_NAME} PRIVATE
)

target_link_options(
    ${TARGET_NAME} PRIVATE
    "$<$<CONFIG:Debug>:-mcpu=cortex-m4>"
    "$<$<CONFIG:Debug>:-mfpu=fpv4-sp-d16>"
    "$<$<CONFIG:Debug>:-mfloat-abi=hard>"
    "$<$<NOT:$<CONFIG:Debug>>:-mcpu=cortex-m4>"
    "$<$<NOT:$<CONFIG:Debug>>:-mfpu=fpv4-sp-d16>"
    "$<$<NOT:$<CONFIG:Debug>>:-mfloat-abi=hard>"
    -T
    "$<$<CONFIG:Debug>:${PROJECT_SOURCE_DIR}/STM32L476VGTX_FLASH.ld>"
    "$<$<NOT:$<CONFIG:Debug>>:${PROJECT_SOURCE_DIR}/STM32L476VGTX_FLASH.ld>"
)

target_sources(
    ${TARGET_NAME} PRIVATE
    "Core/Src/gfx.c"
    "Core/Src/lis2dh12_reg.c"
    "Core/Src/main.c"
    "Core/Src/plinky.c"
    "Core/Src/stm32l4xx_hal_msp.c"
    "Core/Src/stm32l4xx_it.c"
    "Core/Src/syscalls.c"
    "Core/Src/sysmem.c"
    "Core/Src/system_stm32l4xx.c"
    "Core/Src/tinyusb/src/class/audio/audio_device.c"
    "Core/Src/tinyusb/src/class/bth/bth_device.c"
    "Core/Src/tinyusb/src/class/cdc/cdc_device.c"
    "Core/Src/tinyusb/src/class/cdc/cdc_host.c"
    "Core/Src/tinyusb/src/class/cdc/cdc_rndis_host.c"
    "Core/Src/tinyusb/src/class/dfu/dfu_rt_device.c"
    "Core/Src/tinyusb/src/class/hid/hid_device.c"
    "Core/Src/tinyusb/src/class/hid/hid_host.c"
    "Core/Src/tinyusb/src/class/midi/midi_device.c"
    "Core/Src/tinyusb/src/class/msc/msc_device.c"
    "Core/Src/tinyusb/src/class/msc/msc_host.c"
    "Core/Src/tinyusb/src/class/net/net_device.c"
    "Core/Src/tinyusb/src/class/usbtmc/usbtmc_device.c"
    "Core/Src/tinyusb/src/class/vendor/vendor_device.c"
    "Core/Src/tinyusb/src/class/vendor/vendor_host.c"
    "Core/Src/tinyusb/src/common/tusb_fifo.c"
    "Core/Src/tinyusb/src/device/usbd_control.c"
    "Core/Src/tinyusb/src/device/usbd.c"
    "Core/Src/tinyusb/src/host/hub.c"
    "Core/Src/tinyusb/src/host/usbh_control.c"
    "Core/Src/tinyusb/src/host/usbh.c"
    "Core/Src/tinyusb/src/portable/dialog/da146xx/dcd_da146xx.c"
    "Core/Src/tinyusb/src/portable/ehci/ehci.c"
    "Core/Src/tinyusb/src/portable/espressif/esp32s2/dcd_esp32s2.c"
    "Core/Src/tinyusb/src/portable/microchip/samd/dcd_samd.c"
    "Core/Src/tinyusb/src/portable/microchip/samg/dcd_samg.c"
    "Core/Src/tinyusb/src/portable/nordic/nrf5x/dcd_nrf5x.c"
    "Core/Src/tinyusb/src/portable/nuvoton/nuc120/dcd_nuc120.c"
    "Core/Src/tinyusb/src/portable/nuvoton/nuc121/dcd_nuc121.c"
    "Core/Src/tinyusb/src/portable/nuvoton/nuc505/dcd_nuc505.c"
    "Core/Src/tinyusb/src/portable/nxp/khci/dcd_khci.c"
    "Core/Src/tinyusb/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c"
    "Core/Src/tinyusb/src/portable/nxp/lpc17_40/dcd_lpc17_40.c"
    "Core/Src/tinyusb/src/portable/nxp/lpc17_40/hcd_lpc17_40.c"
    "Core/Src/tinyusb/src/portable/nxp/transdimension/dcd_transdimension.c"
    "Core/Src/tinyusb/src/portable/nxp/transdimension/hcd_transdimension.c"
    "Core/Src/tinyusb/src/portable/ohci/ohci.c"
    "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c"
    "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/hcd_rp2040.c"
    "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c"
    "Core/Src/tinyusb/src/portable/renesas/usba/dcd_usba.c"
    "Core/Src/tinyusb/src/portable/silabs/efm32/dcd_efm32.c"
    "Core/Src/tinyusb/src/portable/sony/cxd56/dcd_cxd56.c"
    "Core/Src/tinyusb/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c"
    "Core/Src/tinyusb/src/portable/st/synopsys/dcd_synopsys.c"
    "Core/Src/tinyusb/src/portable/template/dcd_template.c"
    "Core/Src/tinyusb/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c"
    "Core/Src/tinyusb/src/portable/valentyusb/eptri/dcd_eptri.c"
    "Core/Src/tinyusb/src/tusb.c"
    "Core/Src/tinyusb/src/usb_descriptors.c"
    "Core/Src/tinyusb/src/usbmidi.c"
    "Core/Startup/startup_stm32l476vgtx.s"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dac_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dac.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_sai_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_sai.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tsc.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c"
    "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c"
    # "emu/imgui_impl_glfw.cpp"
    # "emu/imgui_impl_opengl3.cpp"
    # "emu/imgui/gl3w/GL/gl3w.c"
    # "emu/imgui/imgui_draw.cpp"
    # "emu/imgui/imgui_widgets.cpp"
    # "emu/imgui/imgui.cpp"
    # "emu/knob.cpp"
    # "emu/main.cpp"
    # "emu/pffft.cpp"
    # "emu/wavetable/wavetable.cpp"
    # "plinkyfwpkg/plinkyfwpkg.cpp"
)

add_custom_command(
    TARGET ${TARGET_NAME} POST_BUILD
    COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET_NAME}>
)

add_custom_command(
    TARGET ${TARGET_NAME} POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} -O ihex
    $<TARGET_FILE:${TARGET_NAME}> ${TARGET_NAME}.hex
)

add_custom_command(
    TARGET ${TARGET_NAME} POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} -O binary
    $<TARGET_FILE:${TARGET_NAME}> ${TARGET_NAME}.bin
)

endfunction()