aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJohn "Lameguy" Wilbert Villamor <lameguy64@gmail.com>2022-10-19 17:57:06 +0800
committerGitHub <noreply@github.com>2022-10-19 17:57:06 +0800
commite08a3d9366f8ca14a76b3dd569dac1fb9f569748 (patch)
tree33654513b0b184c27f8035dbc405640fcbeb44ab /CMakeLists.txt
parentc4a2533d21dfd05cde841ea48c67b05e0e6a853f (diff)
parent9b2ffc6078a850b7d354855cca7622090b41f30c (diff)
downloadpsn00bsdk-e08a3d9366f8ca14a76b3dd569dac1fb9f569748.tar.gz
Merge pull request #59 from spicyjpeg/psxmdec
IRQ handler fix, .STR playback example, multiple library builds (v0.21)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt42
1 files changed, 28 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f255a2..3ce6573 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,13 +6,13 @@
# workaround is to use ExternalProject_Add() to launch multiple independent
# CMake instances, creating what's known as a "superbuild".
-cmake_minimum_required(VERSION 3.20)
+cmake_minimum_required(VERSION 3.21)
include(ExternalProject)
project(
PSn00bSDK
LANGUAGES NONE
- VERSION 0.20
+ VERSION 0.21
DESCRIPTION "Open source PlayStation 1 SDK"
HOMEPAGE_URL "http://lameguy64.net/?page=psn00bsdk"
)
@@ -89,11 +89,17 @@ set(
-DPSN00BSDK_BUILD_DATE:STRING=${PSN00BSDK_BUILD_DATE}
-DPSN00BSDK_GIT_TAG:STRING=${PSN00BSDK_GIT_TAG}
-DPSN00BSDK_GIT_COMMIT:STRING=${PSN00BSDK_GIT_COMMIT}
- -DMKPSXISO_NO_LIBFLAC:BOOL=${MKPSXISO_NO_LIBFLAC}
+)
+set(
+ _tools_args
+ ${_common_args}
+ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
+ -DCMAKE_INSTALL_PREFIX:PATH=${PROJECT_BINARY_DIR}/tree
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DMKPSXISO_NO_LIBFLAC:BOOL=${MKPSXISO_NO_LIBFLAC}
)
set(
- _sdk_args
+ _libpsn00b_args
${_common_args}
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_INSTALL_PREFIX:PATH=${PROJECT_BINARY_DIR}/tree
@@ -103,6 +109,7 @@ set(
${_common_args}
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${PROJECT_BINARY_DIR}/tree/${CMAKE_INSTALL_LIBDIR}/libpsn00b/cmake/sdk.cmake
-DCMAKE_INSTALL_PREFIX:PATH=${PROJECT_BINARY_DIR}/examples
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
)
# Ensure PSn00bSDK isn't being built using the toolchain file from PSn00bSDK
@@ -120,35 +127,42 @@ endif()
ExternalProject_Add(
tools
+ PREFIX subprojects
SOURCE_DIR ${PROJECT_SOURCE_DIR}/tools
- BINARY_DIR tools-build
- CMAKE_CACHE_ARGS ${_sdk_args}
+ CMAKE_CACHE_ARGS ${_tools_args}
INSTALL_DIR tree
)
ExternalProject_Add(
mkpsxiso
+ PREFIX subprojects
SOURCE_DIR ${PROJECT_SOURCE_DIR}/tools/mkpsxiso
- BINARY_DIR mkpsxiso-build
- CMAKE_CACHE_ARGS ${_sdk_args}
+ CMAKE_CACHE_ARGS ${_tools_args}
+ INSTALL_DIR tree
+)
+ExternalProject_Add(
+ libpsn00b-debug
+ PREFIX subprojects
+ SOURCE_DIR ${PROJECT_SOURCE_DIR}/libpsn00b
+ CMAKE_GENERATOR ${LIBPSN00B_GENERATOR}
+ CMAKE_CACHE_ARGS ${_libpsn00b_args} -DCMAKE_BUILD_TYPE:STRING=Debug
INSTALL_DIR tree
)
ExternalProject_Add(
- libpsn00b
+ libpsn00b-release
+ PREFIX subprojects
SOURCE_DIR ${PROJECT_SOURCE_DIR}/libpsn00b
- BINARY_DIR libpsn00b-build
CMAKE_GENERATOR ${LIBPSN00B_GENERATOR}
- CMAKE_CACHE_ARGS ${_sdk_args}
+ CMAKE_CACHE_ARGS ${_libpsn00b_args} -DCMAKE_BUILD_TYPE:STRING=Release
INSTALL_DIR tree
- #DEPENDS tools
)
ExternalProject_Add(
examples
+ PREFIX subprojects
SOURCE_DIR ${PROJECT_SOURCE_DIR}/examples
- BINARY_DIR examples-build
CMAKE_GENERATOR ${LIBPSN00B_GENERATOR}
CMAKE_CACHE_ARGS ${_examples_args}
INSTALL_DIR examples
- DEPENDS libpsn00b tools mkpsxiso
+ DEPENDS libpsn00b-debug libpsn00b-release tools mkpsxiso
EXCLUDE_FROM_ALL ${SKIP_EXAMPLES}
)