@@ -12,6 +12,7 @@ macro(create_pbp_file)
1212
1313 set (oneValueArgs
1414 TARGET # defined by an add_executable call before calling create_pbp_file
15+ SFO_PATH # optional, absolute path to pre-built PARAM.SFO
1516 TITLE # optional, string, target's name in PSP menu
1617 ICON_PATH # optional, absolute path to .png file, 144x82
1718 ANIM_PATH # optional, absolute path to .pmf file
@@ -34,6 +35,11 @@ macro(create_pbp_file)
3435 set (ARG_VERSION "" )
3536 endif ()
3637
38+ # set ARG_SFO_PATH if not defined
39+ if (NOT DEFINED ARG_SFO_PATH)
40+ set (ARG_SFO_PATH "" )
41+ endif ()
42+
3743 # set output directory to where the target is build if not set
3844 if (NOT DEFINED ARG_OUTPUT_DIR)
3945 set (ARG_OUTPUT_DIR $<TARGET_FILE_DIR :${ARG_TARGET} >)
@@ -143,37 +149,45 @@ macro(create_pbp_file)
143149 if (NOT ${ARG_MEMSIZE} )
144150 set (ARG_MEMSIZE "1" )
145151 endif ()
146- add_custom_command (
147- TARGET ${ARG_TARGET}
148- POST_BUILD COMMAND
149- "${PSPDEV} /bin/mksfoex" "-d" "MEMSIZE=${ARG_MEMSIZE} " "-s" "APP_VER=${ARG_VERSION} " "${ARG_TITLE} " "${ARG_OUTPUT_DIR} /PARAM.SFO"
150- COMMENT "Calling mksfoex for target ${ARG_TARGET} "
151- )
152+
153+ if (NOT ARG_SFO_PATH)
154+ add_custom_command (
155+ TARGET ${ARG_TARGET}
156+ POST_BUILD COMMAND
157+ "${PSPDEV} /bin/mksfoex" "-d" "MEMSIZE=${ARG_MEMSIZE} " "-s" "APP_VER=${ARG_VERSION} " "${ARG_TITLE} " "${ARG_OUTPUT_DIR} /PARAM.SFO"
158+ COMMENT "Calling mksfoex for target ${ARG_TARGET} "
159+ )
160+ set (SFO_PATH "${ARG_OUTPUT_DIR} /PARAM.SFO" )
161+ else ()
162+ set (SFO_PATH "${ARG_SFO_PATH} " )
163+ endif ()
152164
153165 if (${ARG_BUILD_PRX} )
154166 add_custom_command (
155167 TARGET ${ARG_TARGET}
156168 POST_BUILD COMMAND
157- "${PSPDEV} /bin/pack-pbp" "${ARG_OUTPUT_DIR} /EBOOT.PBP" "${ARG_OUTPUT_DIR} /PARAM.SFO " "${ARG_ICON_PATH} " "${ARG_ANIM_PATH} " "${ARG_PREVIEW_PATH} "
169+ "${PSPDEV} /bin/pack-pbp" "${ARG_OUTPUT_DIR} /EBOOT.PBP" "${SFO_PATH} " "${ARG_ICON_PATH} " "${ARG_ANIM_PATH} " "${ARG_PREVIEW_PATH} "
158170 "${ARG_BACKGROUND_PATH} " "${ARG_MUSIC_PATH} " "$<TARGET_FILE :${ARG_TARGET} >.prx" "${ARG_PSAR_PATH} "
159171 COMMENT "Calling pack-pbp with PRX file for target ${ARG_TARGET} "
160172 )
161173 else ()
162174 add_custom_command (
163175 TARGET ${ARG_TARGET}
164176 POST_BUILD COMMAND
165- "${PSPDEV} /bin/pack-pbp" "${ARG_OUTPUT_DIR} /EBOOT.PBP" "${ARG_OUTPUT_DIR} /PARAM.SFO " "${ARG_ICON_PATH} " "${ARG_ANIM_PATH} " "${ARG_PREVIEW_PATH} "
177+ "${PSPDEV} /bin/pack-pbp" "${ARG_OUTPUT_DIR} /EBOOT.PBP" "${SFO_PATH} " "${ARG_ICON_PATH} " "${ARG_ANIM_PATH} " "${ARG_PREVIEW_PATH} "
166178 "${ARG_BACKGROUND_PATH} " "${ARG_MUSIC_PATH} " "$<TARGET_FILE :${ARG_TARGET} >" "${ARG_PSAR_PATH} "
167179 COMMENT "Calling pack-pbp with ELF file for target ${ARG_TARGET} "
168180 )
169181 endif ()
170182
171- add_custom_command (
172- TARGET ${ARG_TARGET} POST_BUILD
173- COMMAND ${CMAKE_COMMAND} -E remove
174- ${ARG_OUTPUT_DIR} /PARAM.SFO
175- COMMENT "Cleaning up PARAM.SFO for target ${ARG_TARGET} "
176- )
183+ if (NOT ARG_SFO_PATH)
184+ add_custom_command (
185+ TARGET ${ARG_TARGET} POST_BUILD
186+ COMMAND ${CMAKE_COMMAND} -E remove
187+ ${ARG_OUTPUT_DIR} /PARAM.SFO
188+ COMMENT "Cleaning up PARAM.SFO for target ${ARG_TARGET} "
189+ )
190+ endif ()
177191
178192 add_custom_command (
179193 TARGET ${ARG_TARGET}
0 commit comments