123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- cmake_minimum_required(VERSION 2.8.9)
- # MCU name
- # set(MCU atmega32)
- set(MCU at90can128)
- # Processor frequency.
- # This will define a symbol, F_CPU, in all source code files equal to the
- # processor frequency. You can then use this symbol in your source code to
- # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
- # automatically to create a 32-bit value in your source code.
- # Typical values are:
- # F_CPU = 1000000
- # F_CPU = 1843200
- # F_CPU = 2000000
- # F_CPU = 3686400
- # F_CPU = 4000000
- # F_CPU = 7372800
- # F_CPU = 8000000
- # F_CPU = 11059200
- # F_CPU = 14745600
- # F_CPU = 16000000
- # F_CPU = 18432000
- # F_CPU = 20000000
- set(F_CPU 16000000)
- ############################################
- # !!!!!! NO CHANGES BELOW THIS LINE !!!!!! #
- ############################################
- add_definitions(-DF_CPU=${F_CPU})
- add_definitions(-DHAS_CAN_CONFIG_H)
- # program names
- set(AVRCPP avr-g++)
- set(AVRC avr-gcc)
- set(AVRSTRIP avr-strip)
- set(OBJCOPY avr-objcopy)
- set(OBJDUMP avr-objdump)
- set(AVRSIZE avr-size)
- set(AVRDUDE avrdude)
- # Sets the compiler
- # Needs to come before the project function
- set(CMAKE_SYSTEM_NAME Generic)
- set(CMAKE_CXX_COMPILER ${AVRCPP})
- set(CMAKE_C_COMPILER ${AVRC})
- set(CMAKE_ASM_COMPILER ${AVRC})
- project (avr-can-lib C CXX ASM)
- # Important project paths
- set(BASE_PATH "${PROJECT_NAME}")
- set(INC_PATH "${BASE_PATH}")
- set(CONFIG_PATH ".")
- set(SRC_PATH "${BASE_PATH}/src")
- # Files to be compiled
- file(GLOB SRC_FILES "${SRC_PATH}/*.cpp"
- "${SRC_PATH}/*.cc"
- "${SRC_PATH}/*.c"
- "${SRC_PATH}/*.cxx"
- "${SRC_PATH}/*.S"
- "${SRC_PATH}/*.s"
- "${SRC_PATH}/*.sx"
- "${SRC_PATH}/*.asm")
- # Compiler flags
- set(CSTANDARD "-std=gnu99")
- set(CDEBUG "-gstabs -g -ggdb")
- set(CWARN "-Wall -Wstrict-prototypes -Wl,--gc-sections -Wl,--relax")
- set(CTUNING "-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffunction-sections -fdata-sections")
- set(COPT "-Os -lm -lprintf_flt")
- set(CMCU "-mmcu=${MCU}")
- set(CDEFS "-DF_CPU=${F_CPU}")
- set(CFLAGS "${CMCU} ${CDEBUG} ${CDEFS} ${COPT} ${CWARN} ${CSTANDARD} ${CTUNING}")
- set(CXXFLAGS "${CMCU} ${CDEBUG} ${CDEFS} ${COPT} ${CTUNING}")
- set(CMAKE_C_FLAGS "${CFLAGS}")
- set(CMAKE_CXX_FLAGS "${CXXFLAGS}")
- set(CMAKE_ASM_FLAGS "${CFLAGS}")
- set(CONFIG_FILE can_config.h)
- # Project setup
- include_directories(${INC_PATH} ${CONFIG_PATH})
- add_library(can STATIC ${SRC_FILES})
- set_target_properties(can PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY ${BASE_PATH})
- # Config logging
- message("* ")
- message("* Project Name:\t\t${PROJECT_NAME}")
- message("* Project Source:\t${SRC_PATH}")
- message("* Project Include:\t${INC_PATH}")
- message("* Project Config:\t${CONFIG_FILE}")
- message("* ")
- message("* C Flags:\t${CMAKE_C_FLAGS}")
- message("* ")
- message("* CXX Flags:\t${CMAKE_C_FLAGS}")
- message("* ")
|