Ниже приведена структура моего каталога проектов.
.
├── build
├── build.sh
├── clean.sh
├── CMakeLists.txt
├── README.md
├── src
│ ├── CMakeLists.txt
│ ├── Drivers
│ ├── stm32-cmake
│ ├── stm32_uavcan
│ ├── sys
│ └── util
├── tests
│ ├── CMakeLists.txt
│ ├── cpputest
│ ├── Makefile
│ ├── Tests
├── thirdparty
│ ├── ChibiOS_17.6.0
│ ├── CMakeLists.txt
│ ├── libuavcan
│ ├── sml
│ └── stm32plus
└── tools
└── udev-rules
Проект libuavcan (создает статические библиотеки) в папке третьей стороны использует следующие определения
add_definitions(
-DUAVCAN_STM32_TIMER_NUMBER=5
-DUAVCAN_STM32_NUM_IFACES=2
-DUAVCAN_STM32_CHIBIOS=1
-DUAVCAN_CPP_VERSION=UAVCAN_CPP11
-DUAVCAN_STM32_IRQ_PRIORITY_MASK=4
)
, которые определены в третьей стороне / CMakeLists.txt. теперь исполняемые файлы в каталоге src / stm32_uavcan / также нуждаются в этих определениях. Вместо того, чтобы переопределять их снова. Возможно ли, что я мог бы как-то распространить их в другой каталог, который не является подкаталогом каталога, в котором определен add_definitions.