all repos — mgba @ a623bcadc3933fcd21c31376b3ccc0264efa40fc

mGBA Game Boy Advance Emulator

src/platform/3ds/CMakeToolchain.txt (view raw)

 1if(DEFINED ENV{DEVKITPRO})
 2	set(DEVKITPRO $ENV{DEVKITPRO})
 3else()
 4	message(FATAL_ERROR "Could not find DEVKITPRO in environment")
 5endif()
 6
 7if(DEFINED ENV{DEVKITARM})
 8	set(DEVKITARM $ENV{DEVKITARM})
 9else()
10	set(DEVKITARM ${DEVKITPRO}/devkitARM)
11endif()
12set(toolchain_bin_dir ${DEVKITARM}/bin)
13
14if(DEFINED ENV{CTRULIB})
15	set(CTRULIB $ENV{CTRULIB})
16else()
17	set(CTRULIB ${DEVKITPRO}/libctru)
18endif()
19
20if(DEFINED ENV{PICASSO})
21	set(PICASSO $ENV{PICASSO})
22else()
23	set(PICASSO ${toolchain_bin_dir}/picasso)
24endif()
25
26set(cross_prefix ${toolchain_bin_dir}/arm-none-eabi-)
27set(inc_flags -I${CTRULIB}/include)
28set(arch_flags "-march=armv6k -mtune=mpcore -mfpu=vfp -mfloat-abi=hard")
29set(link_flags "-L${CTRULIB}/lib -lctru -lm -specs=3dsx.specs ${arch_flags}")
30
31set(CMAKE_SYSTEM_NAME Generic CACHE INTERNAL "system name")
32set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor")
33set(CMAKE_LIBRARY_ARCHITECTURE arm-none-eabi CACHE INTERNAL "abi")
34set(CMAKE_AR ${cross_prefix}gcc-ar CACHE INTERNAL "archiver")
35set(CMAKE_RANLIB ${cross_prefix}gcc-ranlib CACHE INTERNAL "ranlib")
36set(CMAKE_C_COMPILER ${cross_prefix}gcc CACHE INTERNAL "c compiler")
37set(CMAKE_CXX_COMPILER ${cross_prefix}g++ CACHE INTERNAL "cxx compiler")
38set(CMAKE_ASM_COMPILER ${cross_prefix}gcc CACHE INTERNAL "assembler")
39set(common_flags "${arch_flags} -mword-relocations ${inc_flags}")
40set(CMAKE_C_FLAGS ${common_flags} CACHE INTERNAL "c compiler flags")
41set(CMAKE_C_FLAGS_RELEASE -Ofast CACHE INTERNAL "c compiler flags (release)")
42set(CMAKE_ASM_FLAGS ${common_flags} CACHE INTERNAL "c compiler flags")
43set(CMAKE_CXX_FLAGS ${common_flags} CACHE INTERNAL "cxx compiler flags")
44set(CMAKE_LINKER ${cross_prefix}ld CACHE INTERNAL "linker")
45
46set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags")
47set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags")
48set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared link flags")
49
50set(3DSLINK ${toolchain_bin_dir}/3dslink)
51set(3DSXTOOL ${toolchain_bin_dir}/3dsxtool)
52set(BANNERTOOL ${toolchain_bin_dir}/bannertool)
53set(MAKEROM ${toolchain_bin_dir}/makerom)
54set(RAW2C ${toolchain_bin_dir}/raw2c)
55set(SMDHTOOL ${toolchain_bin_dir}/smdhtool)
56set(STRIP ${cross_prefix}strip)
57
58set(3DS ON)
59add_definitions(-D_3DS -DARM11)