Skip to content

Commit e9f8d99

Browse files
authored
Merge pull request #15 from hasselmm/9-follow-up-fixes
Some follow-up fixes for issue #9
2 parents 56e490f + e256f10 commit e9f8d99

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

toolchain/Scripts/Preprocess.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ function(__arduino_preprocess_regular_sources SOURCE_DIRPATH SOURCE_FILENAME OUT
141141
BASE_DIRECTORY "${SOURCE_DIRPATH}"
142142
OUTPUT_VARIABLE _filepath)
143143

144-
message(STATUS "_filepath: ${_filepath}")
145-
146144
file(READ "${_filepath}" _text)
147145

148146
file(WRITE "${OUTPUT_FILEPATH}"

toolchain/arduino-cli-toolchain.cmake

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ function(__arduino_collect_source_files OUTPUT_VARIABLE DIRECTORY) # [DIRECTORY.
646646
list(APPEND _glob_pattern_list
647647
"${_dirpath}/*.[cC]"
648648
"${_dirpath}/*.[cC][cC]"
649-
"${_dirpath}/*.[cC][pP][pP]"
649+
"${_dirpath}/*.[cCiItT][pP][pP]"
650650
"${_dirpath}/*.[cC][xX][xX]"
651651
"${_dirpath}/*.[hH]"
652652
"${_dirpath}/*.[hH][hH]"
@@ -662,7 +662,7 @@ endfunction()
662662
# ----------------------------------------------------------------------------------------------------------------------
663663
# Resolves the absolute filepath where arduino-cli would store `FILENAME` after processing.
664664
# ----------------------------------------------------------------------------------------------------------------------
665-
function(__arduino_resolve_preprocessed_filepath SOURCE_DIRPATH FILENAME SKETCH_DIRPATH OUTPUT_VARIABLE)
665+
function(__arduino_resolve_preprocessed_filepath SOURCE_DIRPATH FILENAME OUTPUT_DIRPATH OUTPUT_VARIABLE)
666666
cmake_path(
667667
ABSOLUTE_PATH FILENAME
668668
BASE_DIRECTORY "${SOURCE_DIRPATH}"
@@ -677,7 +677,11 @@ function(__arduino_resolve_preprocessed_filepath SOURCE_DIRPATH FILENAME SKETCH_
677677
BASE_DIRECTORY "${SOURCE_DIRPATH}"
678678
OUTPUT_VARIABLE _relative_filepath)
679679

680-
set("${OUTPUT_VARIABLE}" "${SKETCH_DIRPATH}/${_relative_filepath}" PARENT_SCOPE)
680+
if (_relative_filepath MATCHES "${__ARDUINO_SKETCH_SUFFIX}")
681+
string(APPEND _relative_filepath ".cpp")
682+
endif()
683+
684+
set("${OUTPUT_VARIABLE}" "${OUTPUT_DIRPATH}/${_relative_filepath}" PARENT_SCOPE)
681685
else()
682686
unset("${OUTPUT_VARIABLE}" PARENT_SCOPE)
683687
endif()
@@ -803,7 +807,7 @@ function(__arduino_add_upload_target TARGET UPLOAD_TARGET FIRMWARE_FILENAME UPLO
803807
endfunction()
804808

805809
# ----------------------------------------------------------------------------------------------------------------------
806-
# Proprocesses `SOURCE_FILENAME..` in `MODE`, similar like arduino-cli would do.
810+
# Preprocesses `SOURCE_FILENAME..` in `MODE`, similar like arduino-cli would do.
807811
# ----------------------------------------------------------------------------------------------------------------------
808812
function(__arduino_preprocess OUTPUT_VARIABLE OUTPUT_DIRPATH SOURCE_DIRPATH MODE SOURCE_FILENAME) # [OTHER_SKETCHES...]
809813
set(OTHER_SKETCHES ${ARGN})
@@ -818,10 +822,6 @@ function(__arduino_preprocess OUTPUT_VARIABLE OUTPUT_DIRPATH SOURCE_DIRPATH MODE
818822
"${SOURCE_DIRPATH}" "${_source_filepath}"
819823
"${OUTPUT_DIRPATH}" _output_filepath)
820824

821-
if (MODE STREQUAL "SKETCH")
822-
string(APPEND _output_filepath ".cpp")
823-
endif()
824-
825825
string(MD5 _filepath_hash "${_output_filepath}")
826826
set(_config_filepath "${CMAKE_BINARY_DIR}/ArduinoFiles/${_target}/preprocess-config-${_filepath_hash}.cmake")
827827

@@ -839,10 +839,8 @@ endfunction()
839839
# ----------------------------------------------------------------------------------------------------------------------
840840
# Preprocesses the source files of `TARGET`, similar like arduino-cli would do.
841841
# ----------------------------------------------------------------------------------------------------------------------
842-
function(__arduino_preprocess_sketch TARGET OUTPUT_DIRPATH SOURCE_DIRPATH SOURCE_FILENAME) # [SOURCE_FILENAME...]
843-
set(_source_list "${SOURCE_FILENAME}" ${ARGN})
844-
845-
set(_sketch_list ${_source_list}) # <-------------------------------------------- collect sketches from _source_list
842+
function(__arduino_preprocess_sketch TARGET OUTPUT_DIRPATH SOURCE_DIRPATH SOURCES)
843+
set(_sketch_list ${SOURCES}) # <------------------------------------------------------ collect sketches from SOURCES
846844
list(FILTER _sketch_list INCLUDE REGEX "${__ARDUINO_SKETCH_SUFFIX}")
847845
list(PREPEND _sketch_list "${TARGET}.ino")
848846
list(REMOVE_DUPLICATES _sketch_list)
@@ -853,9 +851,9 @@ function(__arduino_preprocess_sketch TARGET OUTPUT_DIRPATH SOURCE_DIRPATH SOURCE
853851

854852
target_sources("${TARGET}" PUBLIC "${_preprocessed_filepath}")
855853

856-
list(REMOVE_ITEM _source_list ${_sketch_list}) # <--------------------------------- preprocess regular/other sources
854+
list(REMOVE_ITEM SOURCES ${_sketch_list}) # <-------------------------------------- preprocess regular/other sources
857855

858-
foreach(_filename IN LISTS _source_list)
856+
foreach(_filename IN LISTS SOURCES)
859857
__arduino_preprocess(
860858
_preprocessed_filepath "${OUTPUT_DIRPATH}"
861859
"${SOURCE_DIRPATH}" SOURCE "${_filename}")
@@ -909,7 +907,7 @@ function(__arduino_toolchain_finalize DIRECTORY)
909907

910908
__arduino_preprocess_sketch( # <----------------------------------------------------------- build the sketch
911909
"${_target}" "${_sketch_dirpath}"
912-
"${_source_dirpath}" ${_source_list})
910+
"${_source_dirpath}" "${_source_list}")
913911

914912
target_link_libraries("${_target}" PUBLIC Arduino::Core)
915913

0 commit comments

Comments
 (0)