Skip to content

Commit 076681a

Browse files
committed
Fix sketch_preprocess_sources to make consistent use of the ${CMAKE_CURRENT_BINARY_DIR} on all generated files.
1 parent e9aedff commit 076681a

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

cmake/sketch_preprocess_sources.cmake

+12-10
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)