[gbabuildcore] Move GBA cmake files to gbabuildcore
This commit is contained in:
14
deps/gbabuildcore/base.cmake
vendored
Normal file
14
deps/gbabuildcore/base.cmake
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb-interwork")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=arm7tdmi")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=arm7tdmi")
|
||||
|
||||
set(OX_BARE_METAL ON)
|
||||
set(OX_USE_STDLIB OFF)
|
47
deps/gbabuildcore/cmake/modules/GBA.cmake
vendored
Normal file
47
deps/gbabuildcore/cmake/modules/GBA.cmake
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
set(CMAKE_SYSTEM_NAME "Generic")
|
||||
set(DEVKITARM $ENV{DEVKITARM})
|
||||
|
||||
if(NOT DEVKITARM)
|
||||
message(FATAL_ERROR "DEVKITARM environment variable not set")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER ${DEVKITARM}/bin/arm-none-eabi-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${DEVKITARM}/bin/arm-none-eabi-g++)
|
||||
set(CMAKE_OBJCOPY ${DEVKITARM}/bin/arm-none-eabi-objcopy)
|
||||
set(CMAKE_PADBIN ${DEVKITARM}/bin/padbin)
|
||||
set(CMAKE_GBAFIX ${DEVKITARM}/bin/gbafix)
|
||||
set(CMAKE_FIND_ROOT_PATH ${DEVKITARM})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES lib)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
||||
|
||||
set(LINKER_FLAGS "-specs=gba.specs")
|
||||
add_definitions(-DARM7)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
macro(OBJCOPY_FILE EXE_NAME)
|
||||
set(FO ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.bin)
|
||||
set(FI ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME})
|
||||
message(STATUS ${FO})
|
||||
|
||||
# run objcopy
|
||||
add_custom_command(
|
||||
OUTPUT "${FO}"
|
||||
COMMAND ${CMAKE_OBJCOPY}
|
||||
ARGS -O binary ${FI} ${FO}
|
||||
DEPENDS "${FI}"
|
||||
)
|
||||
|
||||
get_filename_component(TGT "${EXE_NAME}" NAME)
|
||||
add_custom_target("TargetObjCopy_${TGT}" ALL DEPENDS ${FO} VERBATIM)
|
||||
get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
|
||||
set_directory_properties(
|
||||
PROPERTIES
|
||||
ADDITIONAL_MAKE_CLEAN_FILES "${extra_clean_files};${FO};"
|
||||
)
|
||||
set_source_files_properties("${FO}" PROPERTIES GENERATED TRUE)
|
||||
endmacro(OBJCOPY_FILE)
|
Reference in New Issue
Block a user