-
-
Notifications
You must be signed in to change notification settings - Fork 446
Closed
Labels
type: enhancementProposed improvementProposed improvement
Description
Feature Request
In order to support language servers for Arduino sketches, it is necessary to know the exact compiler command used by the CLI to compile a sketch. For example, the output of compiling the "KeyboardAndMouseControl" example is
Detecting libraries used...
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /dev/null
Alternatives for Keyboard.h: [Keyboard@1.0.2]
ResolveLibrary(Keyboard.h)
-> candidates: [Keyboard@1.0.2]
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /dev/null
Alternatives for HID.h: [HID@1.0]
ResolveLibrary(HID.h)
-> candidates: [HID@1.0]
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /dev/null
Alternatives for Mouse.h: [Mouse@1.0.1]
ResolveLibrary(Mouse.h)
-> candidates: [Mouse@1.0.1]
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /dev/null
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /Users/spoenemann/Documents/Arduino/libraries/Keyboard/src/Keyboard.cpp -o /dev/null
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src/HID.cpp -o /dev/null
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /Users/spoenemann/Documents/Arduino/libraries/Mouse/src/Mouse.cpp -o /dev/null
Generating function prototypes...
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -w -x c++ -E -CC -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/preproc/ctags_target_for_gcc_minus_e.cpp
/Users/spoenemann/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/preproc/ctags_target_for_gcc_minus_e.cpp
Compiling sketch...
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -mcpu=cortex-m3 -mthumb -DF_CPU=84000000L -DARDUINO=10607 -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -D__SAM3X8E__ -mthumb -DUSB_VID=0x2341 -DUSB_PID=0x003e -DUSBCON "-DUSB_MANUFACTURER=\"Arduino LLC\"" "-DUSB_PRODUCT=\"Arduino Due\"" -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/ -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x -I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src -I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src -I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp -o /var/folders/lx/_zc3wg6d2px3lqdwj8d35jvr0000gn/T/arduino-sketch-647BD920C1206A9070C1F514DE932FA7/sketch/KeyboardAndMouseControl.ino.cpp.o
What I'd like is a flag like arduino-cli compile --show-compiler-command that prints only the last line of the output above, but does not execute anything. That line contains
- The path to the compiler used for the selected board
/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ - Additional flags
-c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -mcpu=cortex-m3 -mthumb - Macros
-DF_CPU=84000000L
-DARDUINO=10607
-DARDUINO_SAM_DUE
-DARDUINO_ARCH_SAM
-D__SAM3X8E__
-DUSB_VID=0x2341
-DUSB_PID=0x003e
-DUSBCON
-DUSB_MANUFACTURER=\"Arduino LLC\"
-DUSB_PRODUCT=\"Arduino Due\"`
- Include paths
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/libsam
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/CMSIS/Include/
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/system/CMSIS/Device/ATMEL/
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/variants/arduino_due_x
-I/Users/spoenemann/Documents/Arduino/libraries/Keyboard/src
-I/Users/spoenemann/Library/Arduino15/packages/arduino/hardware/sam/1.6.12/libraries/HID/src
-I/Users/spoenemann/Documents/Arduino/libraries/Mouse/src
Calling the actual compiler with the flag -v prints
Using built-in specs.
COLLECT_GCC=/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++
COLLECT_LTO_WRAPPER=/Users/spoenemann/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/lto-wrapper
Target: arm-none-eabi
Configured with: /Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/src/gcc/configure --target=arm-none-eabi --prefix=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native --libexecdir=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/lib --infodir=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/install-native/arm-none-eabi --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --with-gmp=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-mpfr=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-mpc=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-isl=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-cloog=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-libelf=/Users/build/GCC-4-8-build/gcc-arm-none-eabi-4_8-2014q1-20140305/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-lstdc++ -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r
Thread model: single
gcc version 4.8.3 20140228 (release) [ARM/embedded-4_8-branch revision 208322] (GNU Tools for ARM Embedded Processors)
Here we can find the built-in configuration of the compiler, like default flags.
All this information is essential for providing correct language support in an IDE.
Metadata
Metadata
Assignees
Labels
type: enhancementProposed improvementProposed improvement