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