all repos — mgba @ b1a06ed52bd8f9db00dcd722198deedd8a184f69

mGBA Game Boy Advance Emulator

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

 1find_program(ELF2DOL elf2dol)
 2find_program(GXTEXCONV gxtexconv)
 3find_program(RAW2C raw2c)
 4find_program(WIILOAD wiiload)
 5
 6find_library(WIIDRC_LIBRARY wiidrc)
 7if(WIIDRC_LIBRARY)
 8    add_definitions(-DWIIDRC)
 9endif()
10
11set(OS_DEFINES _GNU_SOURCE COLOR_16_BIT COLOR_5_6_5 USE_VFS_FILE IOAPI_NO_64 FIXED_ROM_BUFFER)
12list(APPEND CORE_VFS_SRC ${CMAKE_SOURCE_DIR}/src/util/vfs/vfs-file.c ${CMAKE_SOURCE_DIR}/src/util/vfs/vfs-dirent.c ${CMAKE_SOURCE_DIR}/src/util/vfs/vfs-devlist.c)
13
14include_directories(${CMAKE_CURRENT_BINARY_DIR})
15
16list(APPEND OS_LIB wiiuse bte fat ogc)
17set(OS_LIB ${OS_LIB} PARENT_SCOPE)
18source_group("Wii-specific code" FILES ${OS_SRC})
19set(CORE_VFS_SRC ${CORE_VFS_SRC} PARENT_SCOPE)
20set(OS_DEFINES ${OS_DEFINES} PARENT_SCOPE)
21
22list(APPEND GUI_SRC ${CMAKE_CURRENT_BINARY_DIR}/font.c ${CMAKE_CURRENT_BINARY_DIR}/icons.c ${CMAKE_CURRENT_SOURCE_DIR}/gui-font.c)
23
24set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/font.c PROPERTIES GENERATED ON)
25add_executable(${BINARY_NAME}.elf ${GUI_SRC} main.c)
26set_target_properties(${BINARY_NAME}.elf PROPERTIES COMPILE_DEFINITIONS "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES}")
27target_link_libraries(${BINARY_NAME}.elf ${BINARY_NAME} ${OS_LIB})
28if(WIIDRC_LIBRARY)
29    target_link_libraries(${BINARY_NAME}.elf ${WIIDRC_LIBRARY})
30endif()
31
32add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/font.tpl
33                   COMMAND ${GXTEXCONV} -i ${CMAKE_SOURCE_DIR}/res/font2x.png -o font.tpl colfmt=5 mipmap=no
34                   MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/res/font2x.png
35                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
36
37add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/font.c
38                   COMMAND ${RAW2C} ${CMAKE_CURRENT_BINARY_DIR}/font.tpl
39                   MAIN_DEPENDENCY  ${CMAKE_CURRENT_BINARY_DIR}/font.tpl
40                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
41
42add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/icons.tpl
43                   COMMAND ${GXTEXCONV} -i ${CMAKE_SOURCE_DIR}/res/icons2x.png -o icons.tpl colfmt=5 mipmap=no
44                   MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/res/icons2x.png
45                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
46
47add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/icons.c
48                   COMMAND ${RAW2C} ${CMAKE_CURRENT_BINARY_DIR}/icons.tpl
49                   MAIN_DEPENDENCY  ${CMAKE_CURRENT_BINARY_DIR}/icons.tpl
50                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
51
52add_custom_target(${BINARY_NAME}.dol ALL
53                  ${ELF2DOL} ${BINARY_NAME}.elf ${BINARY_NAME}.dol
54                  DEPENDS ${BINARY_NAME}.elf)
55
56add_custom_target(run ${WIILOAD} ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}.dol
57                  DEPENDS ${BINARY_NAME}.dol)
58
59if(BUILD_PERF)
60	add_custom_target(${BINARY_NAME}-perf.dol ALL
61	                  ${ELF2DOL} ../${BINARY_NAME}-perf ${BINARY_NAME}-perf.dol
62	                  DEPENDS ${BINARY_NAME}-perf)
63
64	install(FILES
65		    ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}-perf.dol
66		    DESTINATION . COMPONENT ${BINARY_NAME}-perf)
67endif()
68
69configure_file(${CMAKE_CURRENT_SOURCE_DIR}/meta.xml.in ${CMAKE_CURRENT_BINARY_DIR}/meta.xml)
70
71install(TARGETS ${BINARY_NAME}.elf DESTINATION . COMPONENT ${BINARY_NAME}-dbg)
72install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icon.png ${CMAKE_CURRENT_BINARY_DIR}/meta.xml DESTINATION . COMPONENT ${BINARY_NAME}-wii)
73install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}.dol DESTINATION . RENAME boot.dol COMPONENT ${BINARY_NAME}-wii)