@@ -5,29 +5,31 @@ function(sketch_preprocess_sources)
55 set (SRCLIST "" )
66 foreach (SRCFILE IN LISTS SPC_SOURCES)
77 if (${SRCFILE} MATCHES "\. ino$" )
8+ # Convert <file>.ino to ${CMAKE_CURRENT_BINARY_DIR}/<file>.ino.{cpp,h}
89 cmake_path(GET SRCFILE FILENAME SRC_BASE_NAME)
10+ set (SRC_BINARY_BASE_NAME ${CMAKE_CURRENT_BINARY_DIR} /${SRC_BASE_NAME} )
911
1012 configure_file (
1113 ${SRCFILE}
12- ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .cpp
14+ ${SRC_BINARY_BASE_NAME } .cpp
1315 COPYONLY
1416 )
1517
16- add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .h
17- COMMAND ${ARDUINOCTAGS_EXECUTABLE} -u --language -force=c++ -f ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME} .ctags --c++-kinds=svpf --fields=KSTtzns --line-directives ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .cpp
18- COMMAND ${Python3_EXECUTABLE} ${SCRIPTS_FOLDER} /generate_header.py -i ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME} .ctags -o ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .h
18+ add_custom_command (OUTPUT ${SRC_BINARY_BASE_NAME } .h
19+ COMMAND ${ARDUINOCTAGS_EXECUTABLE} -u --language -force=c++ -f ${SRC_BINARY_BASE_NAME} .ctags --c++-kinds=svpf --fields=KSTtzns --line-directives ${SRC_BINARY_BASE_NAME } .cpp
20+ COMMAND ${Python3_EXECUTABLE} ${SCRIPTS_FOLDER} /generate_header.py -i ${SRC_BINARY_BASE_NAME} .ctags -o ${SRC_BINARY_BASE_NAME } .h
1921
20- DEPENDS ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .cpp
21- BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .ctags
22+ DEPENDS ${SRC_BINARY_BASE_NAME } .cpp
23+ BYPRODUCTS ${SRC_BINARY_BASE_NAME } .ctags
2224 VERBATIM
2325 )
2426
25- set_source_files_properties (${SRCFILE } .cpp
27+ set_source_files_properties (${SRC_BINARY_BASE_NAME } .cpp
2628 PROPERTIES
27- COMPILE_OPTIONS "-include;Arduino.h;-include;${SRCFILE } .h"
28- OBJECT_DEPENDS " ${SRCFILE } .h"
29+ COMPILE_OPTIONS "-include;Arduino.h;-include;${SRC_BINARY_BASE_NAME } .h"
30+ OBJECT_DEPENDS ${SRC_BINARY_BASE_NAME } .h
2931 )
30- list (APPEND SRCLIST ${CMAKE_CURRENT_BINARY_DIR} / ${SRC_BASE_NAME } .cpp)
32+ list (APPEND SRCLIST ${SRC_BINARY_BASE_NAME } .cpp)
3133 else ()
3234 list (APPEND SRCLIST ${SRCFILE} )
3335 endif ()
0 commit comments