Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 17, 2023. It is now read-only.

Commit c1d95c5

Browse files
Preliminary Arch Linux support
1 parent f250528 commit c1d95c5

File tree

3 files changed

+45
-3
lines changed

3 files changed

+45
-3
lines changed

‎cmake/Arduino-Toolchain.cmake‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ endfunction()
3737

3838
function(_setup_sdk_internal_paths)
3939

40-
set(ARDUINO_SDK_BIN_PATH "${ARDUINO_SDK_PATH}/hardware/tools/avr/bin" CACHE PATH
40+
find_arduino_sdk_bin(arduino_bin_path)
41+
set(ARDUINO_SDK_BIN_PATH "${arduino_bin_path}" CACHE PATH
4142
"Path to Arduino SDK's binaries folder")
42-
set(ARDUINO_SDK_ROOT_PATH "${ARDUINO_SDK_PATH}/hardware/tools/avr" CACHE PATH
43+
find_arduino_sdk_root(arduino_root_path)
44+
set(ARDUINO_SDK_ROOT_PATH "${arduino_root_path}" CACHE PATH
4345
"Path to Arduino SDK's sys-root folder")
4446
set(ARDUINO_SDK_LIBRARIES_PATH "${ARDUINO_SDK_PATH}/libraries" CACHE PATH
4547
"Path to SDK's libraries directory")

‎cmake/Platform/Other/ArduinoSDKSeeker.cmake‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,43 @@ function(find_arduino_sdk _return_var)
4040

4141
endfunction()
4242

43+
function(find_arduino_sdk_bin _return_var)
44+
45+
if (DEFINED ENV{ARDUINO_SDK_BIN_PATH})
46+
string(REPLACE "\\" "/" unix_style_sdk_bin_path $ENV{ARDUINO_SDK_BIN_PATH})
47+
set(${_return_var} "${unix_style_sdk_bin_path}" PARENT_SCOPE)
48+
elseif (IS_DIRECTORY "${ARDUINO_SDK_PATH}/hardware/tools/avr/bin")
49+
set(${_return_var} "${ARDUINO_SDK_PATH}/hardware/tools/avr/bin" PARENT_SCOPE)
50+
else ()
51+
# Some systems like the Arch Linux arduino package install binaries to /usr/bin
52+
find_program(avr_gcc_location avr-gcc)
53+
if (avr_gcc_location)
54+
get_filename_component(avr_gcc_parent ${avr_gcc_location} DIRECTORY)
55+
set(${_return_var} "${avr_gcc_parent}" PARENT_SCOPE)
56+
else ()
57+
string(CONCAT error_message
58+
"Couldn't find Arduino bin path - Is it in a non-standard location?" "\n"
59+
"If so, please set the ARDUINO_SDK_BIN_PATH CMake-Variable")
60+
message(FATAL_ERROR ${error_message})
61+
endif ()
62+
endif ()
63+
64+
endfunction()
65+
66+
function(find_arduino_sdk_root _return_var)
67+
68+
if (DEFINED ENV{ARDUINO_SDK_ROOT_PATH})
69+
string(REPLACE "\\" "/" unix_style_sdk_root_path $ENV{ARDUINO_SDK_ROOT_PATH})
70+
set(${_return_var} "${unix_style_sdk_root_path}" PARENT_SCOPE)
71+
elseif (EXISTS "${ARDUINO_SDK_PATH}/hardware/tools/avr/etc/avrdude.conf")
72+
set(${_return_var} "${ARDUINO_SDK_PATH}/hardware/tools/avr" PARENT_SCOPE)
73+
elseif (EXISTS "/etc/avrdude.conf")
74+
set(${_return_var} "/" PARENT_SCOPE)
75+
else ()
76+
string(CONCAT error_message
77+
"Couldn't find Arduino root path - Is it in a non-standard location?" "\n"
78+
"If so, please set the ARDUINO_SDK_ROOT_PATH CMake-Variable")
79+
message(FATAL_ERROR ${error_message})
80+
endif ()
81+
82+
endfunction()

‎cmake/Platform/System/PlatformInitializer.cmake‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ function(initialize_arduino_platform)
3737

3838
if (NOT DEFINED ARDUINO_CMAKE_PLATFORM_NAME OR NOT DEFINED ARDUINO_CMAKE_PLATFORM_PATH)
3939
if (USE_DEFAULT_PLATFORM_IF_NONE_EXISTING)
40-
if (CMAKE_HOST_ARCHLINUX AND${USE_ARCHLINUX_BUILTIN_SUPPORT})
40+
if (IS_DIRECTORY"${ARDUINO_SDK_PATH}/hardware/archlinux-arduino")
4141
set(ARDUINO_CMAKE_PLATFORM_NAME "archlinux-arduino" CACHE STRING "")
4242
else ()
4343
set(ARDUINO_CMAKE_PLATFORM_NAME "arduino" CACHE STRING "")

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /