# # Run: # env CC=mb-gcc CXX=mb-g++ cmake .. # cmake_minimum_required(VERSION 3.14) PROJECT(kcu116-cxx-usb31-uvc) set(CMAKE_EXECUTABLE_SUFFIX ".elf") set(CMAKE_CXX_STANDARD 17) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED On) set(CMAKE_C_STANDARD_REQUIRED On) # opts set(BSP_DIR "${CMAKE_SOURCE_DIR}/../${PROJECT_NAME}_bsp" CACHE STRING "Board Support Package dir") # TODO: read from .sdkproject or system.mss set(BSP_CPU "microblaze_0" CACHE STRING "Board Support Package CPU") # TODO: read from system.mss set(BSP_CPU_FLAGS "-mlittle-endian -mxl-soft-mul -mcpu=v11.0" CACHE STRING "Board Support Package CPU compiler flags") if (NOT EXISTS ${BSP_DIR}) message(FATAL_ERROR "You must point BSP dir. You should generate it via XSDK or via XSTC") endif() #set(CMAKE_EXE_LINKER_FLAGS # "-Wl,-T -Wl,\"${CMAKE_SOURCE_DIR}/src/lscript.ld\" -L \"${CMAKE_BINARY_DIR}/${BSP_DIR}/${BSP_CPU}/lib\" -Wl,--no-relax -Wl,--gc-sections -Wl,-flto") # Additional C++ flags set(COMMON_FLAGS "-fmessage-length=0 -ffunction-sections -fdata-sections -Wall -Wextra") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti -fno-unwind-tables ${COMMON_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} ${BSP_CPU_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS} ${BSP_CPU_FLAGS} -Wwrite-strings") # includes include_directories(${BSP_DIR}/${BSP_CPU}/include) # libraries file(GLOB libs "${BSP_DIR}/${BSP_CPU}/lib/*.a") message(STATUS "Libs: ${libs}") # Sources set(SUBDIRS src src/common src/uvc) set(SOURCES "") # Collect sources in Eclipse way foreach(DIR ${SUBDIRS}) aux_source_directory(${DIR} src) list(APPEND SOURCES ${src}) endforeach() add_executable(${PROJECT_NAME} ${SOURCES}) target_link_directories(${PROJECT_NAME} PUBLIC ${BSP_DIR}/${BSP_CPU}/lib) target_link_libraries(${PROJECT_NAME} c freertos gcc m xil) target_link_options(${PROJECT_NAME} PUBLIC -Wl,-T -Wl,${CMAKE_SOURCE_DIR}/src/lscript.ld -Wl,--no-relax -Wl,--gc-sections -Wl,-flto) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND size --format=berkeley "$")