cmake_minimum_required(VERSION 3.14.0) project(mailbox VERSION 1.1.0) include(cmake/bin2h.cmake) include(cmake/verstring.cmake) include(cmake/sfdc.cmake) if(NOT TARGET devicetree) add_subdirectory(devicetree.resource EXCLUDE_FROM_ALL) endif() get_verstring(VERSTRING) sfdc(sfd/mailbox_lib.sfd) add_executable(mailbox.resource src/main.c src/init.c src/rawcommand.c src/stringcommand.c src/getclockrate.c src/setclockrate.c src/getclockstate.c src/setclockstate.c src/getpowerstate.c src/setpowerstate.c src/getgpiostate.c src/setgpiostate.c src/mbox.c ) bin_to_header(mailbox.resource) target_compile_options(mailbox.resource PRIVATE -Os -m68040 -msmall-code -fomit-frame-pointer) target_compile_definitions(mailbox.resource PRIVATE VERSION_STRING="${VERSTRING}") target_include_directories(mailbox.resource PRIVATE include) target_link_options(mailbox.resource PRIVATE -ffreestanding -nostdlib -nostartfiles -s -Wl,-e_code_start -Wl,-T${CMAKE_CURRENT_SOURCE_DIR}/ldscript.lds) target_link_libraries(mailbox.resource devicetree) set_target_properties(mailbox.resource PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ldscript.lds) # no install for devicetree.resource itself, it goes to ROM install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/sfd DESTINATION Developer) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include DESTINATION Developer)