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