aboutsummaryrefslogtreecommitdiff
path: root/cmake/ps1.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/ps1.cmake')
-rw-r--r--cmake/ps1.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/cmake/ps1.cmake b/cmake/ps1.cmake
new file mode 100644
index 0000000..bbc1c4c
--- /dev/null
+++ b/cmake/ps1.cmake
@@ -0,0 +1,43 @@
+find_package(PSXSDK 0.7.1 REQUIRED)
+
+target_compile_definitions(${PROJECT_NAME} PUBLIC FIXMATH_FAST_SIN PSXSDK_DEBUG)
+add_custom_target(exe ALL elf2exe ${PROJECT_NAME}
+ ${cdroot}/${PROJECT_NAME}.exe -mark="A homebrew game created with PSXSDK"
+ DEPENDS ${PROJECT_NAME})
+add_custom_target(iso ALL mkisofs -o ${PROJECT_NAME}.iso -V ${PROJECT_NAME}
+ -sysid PLAYSTATION ${cdroot} DEPENDS exe)
+
+set(license_prefix $ENV{PSXSDK_PATH}/share/licenses)
+
+if(VIDEO_MODE STREQUAL "VMODE_PAL")
+ set(region eur)
+elseif(VIDEO_MODE STREQUAL "VMODE_NTSC")
+ set(ntsc_regions usa jap)
+
+ if(NOT NTSC_REGION IN_LIST ntsc_regions)
+ message(FATAL_ERROR "Please define valid NTSC_REGION. Available options:\n"
+ "${ntsc_regions}\n"
+ "Run CMake again using one of the available options above e.g.:\n"
+ "cmake .. [options] -DNTSC_REGION=US")
+ endif()
+
+ set(region ${NTSC_REGION})
+endif()
+
+set(license $ENV{PSXSDK_PATH}/share/licenses/info${region}.dat)
+
+add_custom_target(bin_cue ALL mkpsxiso ${PROJECT_NAME}.iso ${PROJECT_NAME}.bin
+ ${license} -s DEPENDS iso)
+
+if(NOT EXISTS "${cdroot}/system.cnf")
+ file(COPY "src/system.cnf" DESTINATION "${cdroot}")
+endif()
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(cflags ${cflags} -Og)
+else()
+ set(cflags ${cflags} -Os)
+endif()
+
+set(cflags ${cflags} -fshort-enums)
+# libfixmath is already bundled with PSXSDK.