Warning, /kdevelop/kdev-embedded/arduinoproject/arduino.cmake is written in an unsupported language. File is not indexed.

0001 set(CMAKE_SYSTEM_NAME Generic)
0002 
0003 enable_language(C)
0004 enable_language(ASM)
0005 
0006 cmake_policy(SET CMP0046 OLD)
0007 
0008 #Arduino path
0009 set(ARDUINO_CORE_DIR "${ARDUINO_PATH}/hardware/arduino/avr/cores/arduino/")
0010 set(ARDUINO_PINS_DIR "${ARDUINO_PATH}/hardware/arduino/avr/variants/${ARDUINO_VAR}")
0011 set(ARDUINO_BIN_DIR  "${ARDUINO_PATH}/hardware/tools/avr/bin/")
0012 
0013 set(CMAKE_ASM_COMPILER  "${ARDUINO_BIN_DIR}/avr-gcc")
0014 set(CMAKE_AR            "${ARDUINO_BIN_DIR}/avr-ar")
0015 set(CMAKE_C_COMPILER    "${ARDUINO_BIN_DIR}/avr-gcc")
0016 set(CMAKE_CXX_COMPILER  "${ARDUINO_BIN_DIR}/avr-g++")
0017 set(CMAKE_OBJCOPY       "${ARDUINO_BIN_DIR}/avr-objcopy")
0018 
0019 set(AVROBJCOPY "${ARDUINO_BIN_DIR}/avr-objcopy")
0020 set(AVRDUDE "${ARDUINO_BIN_DIR}/avrdude")
0021 
0022 set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
0023 
0024 # C only fine tunning
0025 set(TUNNING_FLAGS "-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums")
0026 
0027 set(CMAKE_CXX_FLAGS "-w -Os -Wl,--gc-sections -mmcu=${ARDUINO_MCU} -DF_CPU=${ARDUINO_FCPU} -Os -std=c++11")
0028 set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} ${TUNNING_FLAGS} -Wstrict-prototypes -w")
0029 
0030 include_directories(${ARDUINO_PINS_DIR})
0031 include_directories(${ARDUINO_CORE_DIR})
0032 
0033 set(ARDUINO_SOURCE_FILES
0034     # core
0035     #${ARDUINO_CORE_DIR}/wiring_pulse.S
0036 
0037     ${ARDUINO_CORE_DIR}/hooks.c
0038     ${ARDUINO_CORE_DIR}/WInterrupts.c
0039     ${ARDUINO_CORE_DIR}/wiring_analog.c
0040     ${ARDUINO_CORE_DIR}/wiring.c
0041     ${ARDUINO_CORE_DIR}/wiring_digital.c
0042     #${ARDUINO_CORE_DIR}/wiring_pulse.c
0043 
0044     ${ARDUINO_CORE_DIR}/abi.cpp
0045     ${ARDUINO_CORE_DIR}/CDC.cpp
0046     ${ARDUINO_CORE_DIR}/HardwareSerial0.cpp
0047     ${ARDUINO_CORE_DIR}/HardwareSerial1.cpp
0048     ${ARDUINO_CORE_DIR}/HardwareSerial2.cpp
0049     ${ARDUINO_CORE_DIR}/HardwareSerial3.cpp
0050     ${ARDUINO_CORE_DIR}/HardwareSerial.cpp
0051     ${ARDUINO_CORE_DIR}/IPAddress.cpp
0052     ${ARDUINO_CORE_DIR}/main.cpp
0053     ${ARDUINO_CORE_DIR}/new.cpp
0054     ${ARDUINO_CORE_DIR}/PluggableUSB.cpp
0055     ${ARDUINO_CORE_DIR}/Print.cpp
0056     ${ARDUINO_CORE_DIR}/Stream.cpp
0057     ${ARDUINO_CORE_DIR}/Tone.cpp
0058     ${ARDUINO_CORE_DIR}/USBCore.cpp
0059     ${ARDUINO_CORE_DIR}/WMath.cpp
0060     ${ARDUINO_CORE_DIR}/WString.cpp
0061 )
0062 
0063 set(PORT $ENV{ARDUINO_PORT})
0064 if (NOT PORT)
0065     set(PORT ${ARDUINO_PORT})
0066 endif()
0067 
0068 # FIXME: Forcing target name to be "firmware"
0069 if(AVROBJCOPY AND AVRDUDE)
0070     add_custom_target(hex)
0071     add_dependencies(hex %{APPNAMELC})
0072 
0073     add_custom_command(TARGET hex POST_BUILD
0074         COMMAND ${AVROBJCOPY} -O ihex -R .eeprom ${CMAKE_CURRENT_BINARY_DIR}/%{APPNAMELC}.elf %{APPNAMELC}.hex
0075     )
0076 
0077     add_custom_target(flash)
0078     add_dependencies(flash hex)
0079 
0080     add_custom_command(TARGET flash POST_BUILD
0081         COMMAND ${AVRDUDE} -P ${PORT} -b ${ARDUINO_UPLOAD_SPEED} -c ${ARDUINO_PROTOCOL} -p ${ARDUINO_MCU} -V -F -U flash:w:%{APPNAMELC}.hex:i
0082     )
0083 endif()
0084 
0085 add_custom_target(reset)
0086 add_custom_command(TARGET reset POST_BUILD
0087     COMMAND echo 0 > ${PORT}
0088 )