67 lines
1.3 KiB
CMake
67 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.12)
|
|
project(coremark C)
|
|
|
|
# Include BSP libwrap
|
|
include(${BSP_BASE}/libwrap/CMakeLists.txt)
|
|
|
|
# Source files
|
|
set(SOURCES
|
|
core_portme.c
|
|
cvt.c
|
|
ee_printf.c
|
|
cm/core_list_join.c
|
|
cm/core_main.c
|
|
cm/core_matrix.c
|
|
cm/core_state.c
|
|
cm/core_util.c
|
|
)
|
|
|
|
# Create executable
|
|
add_executable(coremark ${SOURCES})
|
|
|
|
# Include directories
|
|
target_include_directories(coremark PRIVATE
|
|
${BSP_BASE}/include
|
|
${BSP_BASE}/drivers
|
|
${BSP_BASE}/env
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cm
|
|
)
|
|
|
|
# Link with libwrap
|
|
target_link_libraries(coremark PRIVATE
|
|
LIBWRAP_TGC
|
|
)
|
|
|
|
# Add compile definitions
|
|
target_compile_definitions(coremark PRIVATE
|
|
BOARD_${BOARD}
|
|
PERFORMANCE_RUN=1
|
|
ITERATIONS=1000
|
|
COMPILER_FLAGS="${CMAKE_C_FLAGS}"
|
|
COMPILER_VERSION="${CMAKE_C_COMPILER_VERSION}"
|
|
)
|
|
|
|
# Set compile options
|
|
target_compile_options(coremark PRIVATE
|
|
-march=${RISCV_ARCH}_zicsr_zifencei
|
|
-mabi=${RISCV_ABI}
|
|
-mcmodel=medany
|
|
-ffunction-sections
|
|
-fdata-sections
|
|
-O2 # Optimization level for benchmarking
|
|
)
|
|
|
|
# Set linker options
|
|
target_link_options(coremark PRIVATE
|
|
-T${BSP_BASE}/env/${BOARD}/link.ld
|
|
-nostartfiles
|
|
-Wl,--gc-sections
|
|
${LIBWRAP_TGC_LDFLAGS}
|
|
)
|
|
|
|
# Install target
|
|
install(TARGETS coremark
|
|
RUNTIME DESTINATION bin
|
|
)
|