我正在尝试使用arduino-cmake框架,但是我的Arduino-SDK无法正确识别。搜索原因,我发现了以下内容:
find_file(${PLATFORM}_BOARDS_PATH
NAMES boards.txt
PATHS ${PLATFORM_PATH}
DOC "Path to Arduino boards definition file.")
其中${PLATFORM}_BOARDS_PATH
扩展为ARDUINO_BOARDS_PATH-NOTFOUND
。
PLATFORM_PATH
正确指向/opt/local/arduino-1.8.7/hardware/arduino
,在其中可以找到avr/boards.txt
。
所以一切似乎都还好吧?
在PATHS
命令中将find_file()
更改为${PLATFORM_PATH}/avr
可以得到正确的结果-因此,看来find_file
不会递归搜索。
我做错了什么? arduino-cmake
似乎正在为他人服务,所以我想必须在不改变此类路径的情况下解决此问题。
答案 0 :(得分:0)
正如@Tsyvarev指出的,find_file()
和find_path()
不会递归搜索。在许多情况下,您可以将这些命令替换为file(GLOB_RECURSE ...)
命令(请参阅更多详细信息here)。
在您的示例中,您可以编写如下内容:
file(GLOB_RECURSE ${PLATFORM}_BOARDS_PATH boards.txt)