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("* ")