all repos — mgba @ 90eca20ab26783409a8eecd5e6093c84b715a091

mGBA Game Boy Advance Emulator

src/platform/psp2/CMakeLists.txt (view raw)

 1find_program(FIXUP vita-elf-create)
 2find_program(OBJCOPY ${cross_prefix}objcopy)
 3find_file(NIDDB db.json PATHS ${VITASDK} ${VITASDK}/bin ${VITASDK}/share)
 4find_file(EXTRADB extra.json PATHS ${VITASDK}${VITASDK}/bin ${VITASDK}/share)
 5find_program(STRIP ${cross_prefix}strip)
 6
 7set(OS_DEFINES IOAPI_NO_64)
 8set(OS_DEFINES ${OS_DEFINES} PARENT_SCOPE)
 9
10file(GLOB OS_SRC ${CMAKE_SOURCE_DIR}/src/platform/psp2/psp2-*.c)
11set(OS_SRC ${OS_SRC} PARENT_SCOPE)
12source_group("PS Vita-specific code" FILES ${OS_SRC})
13
14list(APPEND CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sce-vfs.c)
15set(CORE_VFS_SRC ${CORE_VFS_SRC} PARENT_SCOPE)
16
17set(OS_LIB -lvita2d -lSceCtrl_stub -lSceGxm_stub -lSceDisplay_stub -lSceAudio_stub -lSceMotion_stub -lScePower_stub -lSceTouch_stub -lSceCommonDialog_stub -l${M_LIBRARY})
18set(OBJCOPY_CMD ${OBJCOPY} -I binary -O elf32-littlearm -B arm)
19
20list(APPEND GUI_SRC ${CMAKE_CURRENT_SOURCE_DIR}/gui-font.c)
21
22set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/font.o ${CMAKE_CURRENT_BINARY_DIR}/backdrop.o PROPERTIES GENERATED ON)
23add_executable(${BINARY_NAME}.elf ${PLATFORM_SRC} ${GUI_SRC} ${CMAKE_CURRENT_BINARY_DIR}/font.o ${CMAKE_CURRENT_BINARY_DIR}/backdrop.o main.c)
24set_target_properties(${BINARY_NAME}.elf PROPERTIES COMPILE_DEFINITIONS "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES}")
25target_link_libraries(${BINARY_NAME}.elf ${BINARY_NAME} ${OS_LIB})
26
27add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/font.o
28                   COMMAND ${OBJCOPY_CMD} font2x.png ${CMAKE_CURRENT_BINARY_DIR}/font.o
29                   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/res)
30
31add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/backdrop.o
32                   COMMAND ${OBJCOPY_CMD} backdrop.png ${CMAKE_CURRENT_BINARY_DIR}/backdrop.o
33                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
34
35add_custom_target(${BINARY_NAME}.velf ALL
36                  ${STRIP} --strip-unneeded -go ${BINARY_NAME}-stripped.elf ${BINARY_NAME}.elf
37                  COMMAND ${FIXUP} ${BINARY_NAME}-stripped.elf ${BINARY_NAME}.velf ${NIDDB} ${EXTRADB}
38                  DEPENDS ${BINARY_NAME}.elf)
39
40install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}.velf DESTINATION . COMPONENT ${BINARY_NAME}-psp2)