diff options
| author | John "Lameguy" Wilbert Villamor <lameguy64@gmail.com> | 2021-10-15 09:22:45 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-15 09:22:45 +0800 |
| commit | dd0f088aaa4c6bf013643be2d1d8621dbffdb000 (patch) | |
| tree | d848d6ce007d8bb9357c8b99d6a0a39ec41d244e /examples/cdrom | |
| parent | 9e08d1047fa8deeb3ccb3ce9bb11d69e25a52d56 (diff) | |
| parent | eb719a424e6a16fb64209139a32c9f8a7235a929 (diff) | |
| download | psn00bsdk-dd0f088aaa4c6bf013643be2d1d8621dbffdb000.tar.gz | |
Merge pull request #38 from spicyjpeg/cmake
Full CMake support (in place of makefiles)
Diffstat (limited to 'examples/cdrom')
| -rw-r--r-- | examples/cdrom/cdbrowse/CMakeLists.txt | 27 | ||||
| -rw-r--r-- | examples/cdrom/cdbrowse/iso.xml | 12 | ||||
| -rw-r--r-- | examples/cdrom/cdbrowse/makefile | 65 | ||||
| -rw-r--r-- | examples/cdrom/cdxa/CMakeLists.txt | 29 | ||||
| -rw-r--r-- | examples/cdrom/cdxa/iso.xml | 14 | ||||
| -rw-r--r-- | examples/cdrom/cdxa/makefile | 65 |
6 files changed, 69 insertions, 143 deletions
diff --git a/examples/cdrom/cdbrowse/CMakeLists.txt b/examples/cdrom/cdbrowse/CMakeLists.txt new file mode 100644 index 0000000..6eb4cbb --- /dev/null +++ b/examples/cdrom/cdbrowse/CMakeLists.txt @@ -0,0 +1,27 @@ +# PSn00bSDK example CMake script +# (C) 2021 spicyjpeg - MPL licensed + +cmake_minimum_required(VERSION 3.21) + +if(NOT DEFINED CMAKE_TOOLCHAIN_FILE AND DEFINED ENV{PSN00BSDK_LIBS}) + set(CMAKE_TOOLCHAIN_FILE $ENV{PSN00BSDK_LIBS}/cmake/sdk.cmake) +endif() + +project( + cdbrowse + LANGUAGES C + VERSION 1.0.0 + DESCRIPTION "PSn00bSDK CD file browser example" + HOMEPAGE_URL "http://lameguy64.net/?page=psn00bsdk" +) + +file(GLOB _sources *.c) +psn00bsdk_add_executable(cdbrowse STATIC ${_sources}) +psn00bsdk_add_cd_image(cdbrowse_iso cdbrowse iso.xml DEPENDS cdbrowse) + +install( + FILES + ${PROJECT_BINARY_DIR}/cdbrowse.bin + ${PROJECT_BINARY_DIR}/cdbrowse.cue + DESTINATION . +) diff --git a/examples/cdrom/cdbrowse/iso.xml b/examples/cdrom/cdbrowse/iso.xml index 5d8963d..5ffca18 100644 --- a/examples/cdrom/cdbrowse/iso.xml +++ b/examples/cdrom/cdbrowse/iso.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <iso_project - image_name="build/cdbrowse.bin" - cue_sheet="build/cdbrowse.cue" + image_name="${CD_IMAGE_NAME}.bin" + cue_sheet="${CD_IMAGE_NAME}.cue" > <track type="data"> <identifiers @@ -9,15 +9,15 @@ volume ="CDBROWSE" volume_set ="CDBROWSE" publisher ="MEIDOTEK" - data_preparer ="PSN00BSDK BUILD SCRIPT" + data_preparer ="PSN00BSDK ${PSN00BSDK_VERSION}" application ="PLAYSTATION" copyright ="README.TXT;1" /> <directory_tree> - <file name="SYSTEM.CNF" type="data" source="system.cnf" /> - <file name="CDBROWSE.EXE" type="data" source="build/cdbrowse.exe" /> - <file name="CDBROWSE.MAP" type="data" source="build/cdbrowse.map" /> + <file name="SYSTEM.CNF" type="data" source="${PROJECT_SOURCE_DIR}/system.cnf" /> + <file name="CDBROWSE.EXE" type="data" source="cdbrowse.exe" /> + <file name="CDBROWSE.MAP" type="data" source="cdbrowse.map" /> <dir name="DIRA"> <dir name="DIRAA"> diff --git a/examples/cdrom/cdbrowse/makefile b/examples/cdrom/cdbrowse/makefile deleted file mode 100644 index 954408b..0000000 --- a/examples/cdrom/cdbrowse/makefile +++ /dev/null @@ -1,65 +0,0 @@ -# PSn00bSDK makefile template -# Part of the PSn00bSDK Project -# 2019 - 2021 Lameguy64 / Meido-Tek Productions - -## Settings - -PSN00BSDK_LIBS ?= ../../../libpsn00b - -# Edit this to point to psn00bsdk-setup.mk, or copy that over to your project's -# root folder (it only depends on environment variables). -include ../../../psn00bsdk-setup.mk - -# Project target name -TARGET = cdbrowse - -## Files - -# Searches for C, C++ and S (assembler) files in local directory -CFILES = $(notdir $(wildcard *.c)) -CPPFILES= $(notdir $(wildcard *.cpp)) -AFILES = $(notdir $(wildcard *.s)) - -# Create names for object files -OFILES = $(addprefix build/,$(CFILES:.c=.o)) \ - $(addprefix build/,$(CPPFILES:.cpp=.o)) \ - $(addprefix build/,$(AFILES:.s=.o)) - -# Project specific includes and libraries -# (use -I for include dirs, -L for library dirs, -l for static libraries) -INCLUDE += -LIBDIRS += -LIBS += - -## Build rules - -all: iso -#all: build/$(TARGET) - -iso: build/$(TARGET) resources - $(MKPSXISO) -y -q iso.xml - -resources: - # Add commands to build/convert your assets here - #$(LZPACK) data.xml - -build/$(TARGET): $(OFILES) - @mkdir -p $(dir $@) - $(LD) $(LDFLAGS_EXE) $(LIBDIRS) $^ $(LIBS) -o $@ - $(NM) -f posix -l -n $@ >$@.map - $(ELF2X) -q $@ $@.exe - -build/%.o: %.c - @mkdir -p $(dir $@) - $(CC) $(CFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -build/%.o: %.cpp - @mkdir -p $(dir $@) - $(CXX) $(CPPFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -build/%.o: %.s - @mkdir -p $(dir $@) - $(CC) $(AFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -clean: - rm -rf build diff --git a/examples/cdrom/cdxa/CMakeLists.txt b/examples/cdrom/cdxa/CMakeLists.txt new file mode 100644 index 0000000..b0c8d90 --- /dev/null +++ b/examples/cdrom/cdxa/CMakeLists.txt @@ -0,0 +1,29 @@ +# PSn00bSDK example CMake script +# (C) 2021 spicyjpeg - MPL licensed + +cmake_minimum_required(VERSION 3.21) + +if(NOT DEFINED CMAKE_TOOLCHAIN_FILE AND DEFINED ENV{PSN00BSDK_LIBS}) + set(CMAKE_TOOLCHAIN_FILE $ENV{PSN00BSDK_LIBS}/cmake/sdk.cmake) +endif() + +project( + cdxa + LANGUAGES C + VERSION 1.0.0 + DESCRIPTION "PSn00bSDK CD-XA playback example" + HOMEPAGE_URL "http://lameguy64.net/?page=psn00bsdk" +) + +# TODO: add rules to actually generate a valid .XA file +file(GLOB _sources *.c) +psn00bsdk_add_executable(cdxa STATIC ${_sources}) +#psn00bsdk_add_cd_image(cdxa_iso cdxa iso.xml DEPENDS cdxa) + +install( + FILES + #${PROJECT_BINARY_DIR}/cdxa.bin + #${PROJECT_BINARY_DIR}/cdxa.cue + ${PROJECT_BINARY_DIR}/cdxa.exe + DESTINATION . +) diff --git a/examples/cdrom/cdxa/iso.xml b/examples/cdrom/cdxa/iso.xml index 9a6a206..b98a16f 100644 --- a/examples/cdrom/cdxa/iso.xml +++ b/examples/cdrom/cdxa/iso.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <iso_project - image_name="build/cdxa.bin" - cue_sheet="build/cdxa.cue" + image_name="${CD_IMAGE_NAME}.bin" + cue_sheet="${CD_IMAGE_NAME}.cue" > <track type="data"> <identifiers @@ -9,18 +9,18 @@ volume ="CDXA" volume_set ="CDXA" publisher ="MEIDOTEK" - data_preparer ="PSN00BSDK BUILD SCRIPT" + data_preparer ="PSN00BSDK ${PSN00BSDK_VERSION}" application ="PLAYSTATION" copyright ="README.TXT;1" /> <directory_tree> - <file name="SYSTEM.CNF" type="data" source="system.cnf" /> - <file name="CDXA.EXE" type="data" source="build/cdxa.exe" /> - <file name="CDXA.MAP" type="data" source="build/cdxa.map" /> + <file name="SYSTEM.CNF" type="data" source="${PROJECT_SOURCE_DIR}/system.cnf" /> + <file name="CDXA.EXE" type="data" source="cdxa.exe" /> + <file name="CDXA.MAP" type="data" source="cdxa.map" /> <!-- CD-XA file, you'll have to provide your own to make this example work --> - <file name="XASAMPLE.XA" type="mixed" source="xasample.xa"/> + <file name="XASAMPLE.XA" type="mixed" source="${PROJECT_SOURCE_DIR}/xasample.xa"/> <dummy sectors="1024"/> </directory_tree> diff --git a/examples/cdrom/cdxa/makefile b/examples/cdrom/cdxa/makefile deleted file mode 100644 index b1627f7..0000000 --- a/examples/cdrom/cdxa/makefile +++ /dev/null @@ -1,65 +0,0 @@ -# PSn00bSDK makefile template -# Part of the PSn00bSDK Project -# 2019 - 2021 Lameguy64 / Meido-Tek Productions - -## Settings - -PSN00BSDK_LIBS ?= ../../../libpsn00b - -# Edit this to point to psn00bsdk-setup.mk, or copy that over to your project's -# root folder (it only depends on environment variables). -include ../../../psn00bsdk-setup.mk - -# Project target name -TARGET = cdxa - -## Files - -# Searches for C, C++ and S (assembler) files in local directory -CFILES = $(notdir $(wildcard *.c)) -CPPFILES= $(notdir $(wildcard *.cpp)) -AFILES = $(notdir $(wildcard *.s)) - -# Create names for object files -OFILES = $(addprefix build/,$(CFILES:.c=.o)) \ - $(addprefix build/,$(CPPFILES:.cpp=.o)) \ - $(addprefix build/,$(AFILES:.s=.o)) - -# Project specific includes and libraries -# (use -I for include dirs, -L for library dirs, -l for static libraries) -INCLUDE += -LIBDIRS += -LIBS += - -## Build rules - -#all: iso -all: build/$(TARGET) - -iso: build/$(TARGET) resources - $(MKPSXISO) -y -q iso.xml - -resources: - # Add commands to build/convert your assets here - #$(LZPACK) data.xml - -build/$(TARGET): $(OFILES) - @mkdir -p $(dir $@) - $(LD) $(LDFLAGS_EXE) $(LIBDIRS) $^ $(LIBS) -o $@ - $(NM) -f posix -l -n $@ >$@.map - $(ELF2X) -q $@ $@.exe - -build/%.o: %.c - @mkdir -p $(dir $@) - $(CC) $(CFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -build/%.o: %.cpp - @mkdir -p $(dir $@) - $(CXX) $(CPPFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -build/%.o: %.s - @mkdir -p $(dir $@) - $(CC) $(AFLAGS_EXE) $(INCLUDE) -c $< -o $@ - -clean: - rm -rf build |
