diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index b8c26a3..09a39d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.10) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +include(cmake/fiddle.cmake) + project (ch537) # Configure for Bare Metal. @@ -8,9 +10,9 @@ set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR riscv32) set(TC_PREFIX riscv32-unknown-elf-) -include_directories(include linker) +include_directories(include linker ${CMAKE_BINARY_DIR}/generated/fdl) -file(GLOB SOURCES "src/*.c") +file(GLOB SOURCES "src/*.c" "src/*.s") file(GLOB LINKER_SCRIPT "linker/*.ld") file(REAL_PATH "ch-flash/" CH_FLASH_DIR) @@ -27,6 +29,7 @@ set(CMAKE_EXE_LINKER_FLAGS "--xref -static -T ${LINKER_SCRIPT}" CACHE INTERNAL " # Add executable with custom linking commands add_executable(main.elf ${SOURCES}) +add_dependencies(main.elf fdl_headers) # Replace default link command to use `ld` directly without `-Wl,` prefixes. set_target_properties(main.elf PROPERTIES @@ -36,6 +39,11 @@ set_target_properties(main.elf PROPERTIES CMAKE_C_LINK_EXECUTABLE "${TC_PREFIX}ld <LINK_FLAGS> <OBJECTS> -o <TARGET> ${CMAKE_EXE_LINKER_FLAGS}" ) +set(fdl_headers) +file(GLOB_RECURSE fdl_files "${CMAKE_SOURCE_DIR}/fdl/*.fdl") +fiddle_sources(fdl_headers "${fdl_files}") +add_custom_target( fdl_headers DEPENDS ${fdl_headers}) + # Generates the binary with objcopy. add_custom_command( OUTPUT main.bin |