Skip to content

Commit e8349bc

Browse files
committed
Register "Arduino" as proper CMake platform
1 parent fd06bc1 commit e8349bc

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ enable_testing()
55
add_custom_target(
66
toolchain SOURCES
77
toolchain/Arduino/RulesOverride.cmake
8+
toolchain/Platform/Arduino.cmake
89
toolchain/arduino-cli-toolchain.cmake
910
)
1011

toolchain/Platform/Arduino.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)

toolchain/arduino-cli-toolchain.cmake

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,9 @@ message(STATUS "Configuring Arduino for board id ${ARDUINO_BOARD}")
821821
message(TRACE " in ${CMAKE_BINARY_DIR}")
822822
message(TRACE " from ${CMAKE_PARENT_LIST_FILE}")
823823

824+
cmake_path(GET CMAKE_CURRENT_LIST_FILE PARENT_PATH ARDUINO_TOOLCHAIN_DIR) # <------ register "Arduino" as CMake platform
825+
list(APPEND CMAKE_MODULE_PATH ${ARDUINO_TOOLCHAIN_DIR})
826+
824827
__arduino_find_arduino_cli() # <----------------------------------------------------------- find components and settings
825828
__arduino_find_board_details(EXPANDED)
826829
__arduino_find_board_details(UNEXPANDED)
@@ -883,8 +886,8 @@ list( # <-----------------------------------------------------------------------
883886

884887
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) # try_compile() doesn't provide setup() and loop()
885888

886-
cmake_path(GET CMAKE_CURRENT_LIST_FILE PARENT_PATH ARDUINO_TOOLCHAIN_DIR) # <---------- really use ".o" for object files
887-
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${ARDUINO_TOOLCHAIN_DIR}/Arduino/RulesOverride.cmake")
889+
set(CMAKE_USER_MAKE_RULES_OVERRIDE # <------------------ align object and library filenames with Arduino for convenience
890+
"${ARDUINO_TOOLCHAIN_DIR}/Arduino/RulesOverride.cmake")
888891

889892
if (CMAKE_PARENT_LIST_FILE MATCHES "CMakeSystem\\.cmake$") # <----------------- define additonal API, additional targets
890893
if (NOT CMAKE_PROJECT_NAME STREQUAL ArduinoCore) # FIXME Rather check for __ARDUINO_CORE_FILEPATH

0 commit comments

Comments
 (0)