1# Use this command to build the PSP port of Allegro: 2# 3# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-psp-gcc.cmake . 4# 5# or for out of source: 6# 7# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-psp-gcc.cmake .. 8# 9# You will need at least CMake 2.6.0. 10# 11# Adjust the following paths to suit your environment. 12# 13# This file was based on http://www.cmake.org/Wiki/CmakeMingw 14 15# The name of the target operating system. 16set(CMAKE_SYSTEM_NAME Generic) 17 18# Location of target environment. 19find_program(psp-config_SCRIPT psp-config) 20if (psp-config_SCRIPT) 21 execute_process(COMMAND ${psp-config_SCRIPT} 22 ARGS --psp-prefix 23 OUTPUT_VARIABLE PSP_PREFIX 24 OUTPUT_STRIP_TRAILING_WHITESPACE) 25 execute_process(COMMAND ${psp-config_SCRIPT} 26 ARGS --pspsdk-path 27 OUTPUT_VARIABLE PSPSDK_PATH 28 OUTPUT_STRIP_TRAILING_WHITESPACE) 29else (psp-config_SCRIPT) 30 message(FATAL_ERROR "psp-config was not found.\nInstall the PSPDEV toolchain or update the $PATH environment variable.") 31endif (psp-config_SCRIPT) 32 33set(CMAKE_SYSTEM_INCLUDE_PATH "${PSP_PREFIX}/include") 34set(CMAKE_SYSTEM_LIBRARY_PATH "${PSP_PREFIX}/lib") 35set(CMAKE_SYSTEM_PROGRAM_PATH "${PSP_PREFIX}/bin") 36 37# Which compilers to use for C and C++. 38set(CMAKE_C_COMPILER psp-gcc) 39set(CMAKE_CXX_COMPILER psp-g++) 40 41# Needed to pass the compiler tests. 42set(LINK_DIRECTORIES ${PSPSDK_PATH}/lib) 43set(LINK_LIBRARIES -lc -lpspuser -lpspkernel -lc) 44 45# Adjust the default behaviour of the FIND_XXX() commands: 46# search headers and libraries in the target environment, search 47# programs in the host environment. 48set(CMAKE_FIND_ROOT_PATH ${PSP_PREFIX}) 49set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 50set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 51set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 52 53# After building the ELF binary build the PSP executable. 54function(add_psp_executable nm) 55 get_target_property(PSP_EXECUTABLE_OUTPUT_NAME ${nm} OUTPUT_NAME) 56 if (NOT PSP_EXECUTABLE_OUTPUT_NAME) 57 set(PSP_EXECUTABLE_OUTPUT_NAME ${nm}) 58 endif(NOT PSP_EXECUTABLE_OUTPUT_NAME) 59 set_target_properties( 60 ${nm} 61 PROPERTIES LINK_FLAGS "-specs=${PSPSDK_PATH}/lib/prxspecs -Wl,-q,-T${PSPSDK_PATH}/lib/linkfile.prx ${PSPSDK_PATH}/lib/prxexports.o" 62 ) 63 add_custom_command( 64 TARGET ${nm} 65 POST_BUILD 66 COMMAND psp-fixup-imports ${PSP_EXECUTABLE_OUTPUT_NAME} 67 COMMAND mksfo '${PSP_EXECUTABLE_OUTPUT_NAME}' PARAM.SFO 68 COMMAND psp-prxgen ${PSP_EXECUTABLE_OUTPUT_NAME} ${PSP_EXECUTABLE_OUTPUT_NAME}.prx 69 COMMAND pack-pbp EBOOT.PBP PARAM.SFO NULL NULL NULL NULL NULL ${PSP_EXECUTABLE_OUTPUT_NAME}.prx NULL 70 ) 71endfunction() 72 73set(PSP 1) 74# Use this command to build the PSP port of Allegro: 75# 76# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-psp-gcc.cmake . 77# 78# or for out of source: 79# 80# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-psp-gcc.cmake .. 81# 82# You will need at least CMake 2.6.0. 83# 84# Adjust the following paths to suit your environment. 85# 86# This file was based on http://www.cmake.org/Wiki/CmakeMingw 87 88# The name of the target operating system. 89set(CMAKE_SYSTEM_NAME Generic) 90 91# Location of target environment. 92find_program(psp-config_SCRIPT psp-config) 93if (psp-config_SCRIPT) 94 execute_process(COMMAND ${psp-config_SCRIPT} 95 ARGS --psp-prefix 96 OUTPUT_VARIABLE PSP_PREFIX 97 OUTPUT_STRIP_TRAILING_WHITESPACE) 98 execute_process(COMMAND ${psp-config_SCRIPT} 99 ARGS --pspsdk-path 100 OUTPUT_VARIABLE PSPSDK_PATH 101 OUTPUT_STRIP_TRAILING_WHITESPACE) 102else (psp-config_SCRIPT) 103 message(FATAL_ERROR "psp-config was not found.\nInstall the PSPDEV toolchain or update the $PATH environment variable.") 104endif (psp-config_SCRIPT) 105 106set(CMAKE_SYSTEM_INCLUDE_PATH "${PSP_PREFIX}/include") 107set(CMAKE_SYSTEM_LIBRARY_PATH "${PSP_PREFIX}/lib") 108set(CMAKE_SYSTEM_PROGRAM_PATH "${PSP_PREFIX}/bin") 109 110# Which compilers to use for C and C++. 111set(CMAKE_C_COMPILER psp-gcc) 112set(CMAKE_CXX_COMPILER psp-g++) 113 114# Needed to pass the compiler tests. 115set(LINK_DIRECTORIES ${PSPSDK_PATH}/lib) 116set(LINK_LIBRARIES -lc -lpspuser -lpspkernel -lc) 117 118# Adjust the default behaviour of the FIND_XXX() commands: 119# search headers and libraries in the target environment, search 120# programs in the host environment. 121set(CMAKE_FIND_ROOT_PATH ${PSP_PREFIX}) 122set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 123set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 124set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 125 126# After building the ELF binary build the PSP executable. 127function(add_psp_executable nm) 128 get_target_property(PSP_EXECUTABLE_OUTPUT_NAME ${nm} OUTPUT_NAME) 129 if (NOT PSP_EXECUTABLE_OUTPUT_NAME) 130 set(PSP_EXECUTABLE_OUTPUT_NAME ${nm}) 131 endif(NOT PSP_EXECUTABLE_OUTPUT_NAME) 132 set_target_properties( 133 ${nm} 134 PROPERTIES LINK_FLAGS "-specs=${PSPSDK_PATH}/lib/prxspecs -Wl,-q,-T${PSPSDK_PATH}/lib/linkfile.prx ${PSPSDK_PATH}/lib/prxexports.o" 135 ) 136 add_custom_command( 137 TARGET ${nm} 138 POST_BUILD 139 COMMAND psp-fixup-imports ${PSP_EXECUTABLE_OUTPUT_NAME} 140 COMMAND mksfo '${PSP_EXECUTABLE_OUTPUT_NAME}' PARAM.SFO 141 COMMAND psp-prxgen ${PSP_EXECUTABLE_OUTPUT_NAME} ${PSP_EXECUTABLE_OUTPUT_NAME}.prx 142 COMMAND pack-pbp EBOOT.PBP PARAM.SFO NULL NULL NULL NULL NULL ${PSP_EXECUTABLE_OUTPUT_NAME}.prx NULL 143 ) 144endfunction() 145 146set(PSP 1) 147# Use this command to build the PSP port of Allegro: 148# 149# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-psp-gcc.cmake . 150# 151# or for out of source: 152# 153# cmake -DWANT_TESTS=off -DWANT_TOOLS=off -DWANT_LOGG=off -DWANT_ALLEGROGL=off -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-psp-gcc.cmake .. 154# 155# You will need at least CMake 2.6.0. 156# 157# Adjust the following paths to suit your environment. 158# 159# This file was based on http://www.cmake.org/Wiki/CmakeMingw 160 161# The name of the target operating system. 162set(CMAKE_SYSTEM_NAME Generic) 163 164# Location of target environment. 165find_program(psp-config_SCRIPT psp-config) 166if (psp-config_SCRIPT) 167 execute_process(COMMAND ${psp-config_SCRIPT} 168 ARGS --psp-prefix 169 OUTPUT_VARIABLE PSP_PREFIX 170 OUTPUT_STRIP_TRAILING_WHITESPACE) 171 execute_process(COMMAND ${psp-config_SCRIPT} 172 ARGS --pspsdk-path 173 OUTPUT_VARIABLE PSPSDK_PATH 174 OUTPUT_STRIP_TRAILING_WHITESPACE) 175else (psp-config_SCRIPT) 176 message(FATAL_ERROR "psp-config was not found.\nInstall the PSPDEV toolchain or update the $PATH environment variable.") 177endif (psp-config_SCRIPT) 178 179set(CMAKE_SYSTEM_INCLUDE_PATH "${PSP_PREFIX}/include") 180set(CMAKE_SYSTEM_LIBRARY_PATH "${PSP_PREFIX}/lib") 181set(CMAKE_SYSTEM_PROGRAM_PATH "${PSP_PREFIX}/bin") 182 183# Which compilers to use for C and C++. 184set(CMAKE_C_COMPILER psp-gcc) 185set(CMAKE_CXX_COMPILER psp-g++) 186 187# Needed to pass the compiler tests. 188set(LINK_DIRECTORIES ${PSPSDK_PATH}/lib) 189set(LINK_LIBRARIES -lc -lpspuser -lpspkernel -lc) 190 191# Adjust the default behaviour of the FIND_XXX() commands: 192# search headers and libraries in the target environment, search 193# programs in the host environment. 194set(CMAKE_FIND_ROOT_PATH ${PSP_PREFIX}) 195set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 196set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 197set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 198 199# After building the ELF binary build the PSP executable. 200function(add_psp_executable nm) 201 get_target_property(PSP_EXECUTABLE_OUTPUT_NAME ${nm} OUTPUT_NAME) 202 if (NOT PSP_EXECUTABLE_OUTPUT_NAME) 203 set(PSP_EXECUTABLE_OUTPUT_NAME ${nm}) 204 endif(NOT PSP_EXECUTABLE_OUTPUT_NAME) 205 set_target_properties( 206 ${nm} 207 PROPERTIES LINK_FLAGS "-specs=${PSPSDK_PATH}/lib/prxspecs -Wl,-q,-T${PSPSDK_PATH}/lib/linkfile.prx ${PSPSDK_PATH}/lib/prxexports.o" 208 ) 209 add_custom_command( 210 TARGET ${nm} 211 POST_BUILD 212 COMMAND psp-fixup-imports ${PSP_EXECUTABLE_OUTPUT_NAME} 213 COMMAND mksfo '${PSP_EXECUTABLE_OUTPUT_NAME}' PARAM.SFO 214 COMMAND psp-prxgen ${PSP_EXECUTABLE_OUTPUT_NAME} ${PSP_EXECUTABLE_OUTPUT_NAME}.prx 215 COMMAND pack-pbp EBOOT.PBP PARAM.SFO NULL NULL NULL NULL NULL ${PSP_EXECUTABLE_OUTPUT_NAME}.prx NULL 216 ) 217endfunction() 218 219set(PSP 1) 220