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 )