Support CMake

This commit is contained in:
Xavier Del Campo Romero 2020-12-31 03:23:32 +01:00
parent b9886cf7be
commit 9c91d194cd
5 changed files with 149 additions and 0 deletions

2
.gitignore vendored
View File

@ -43,3 +43,5 @@
*.su
*.idb
*.pdb
build/

53
CMakeLists.txt Normal file
View File

@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 3.13)
if("$ENV{PSXSDK_PATH}" STREQUAL "")
message(FATAL_ERROR "Please set PSXSDK_PATH env variable first "
"where psxsdk root is located e.g.: /usr/local/psxsdk")
endif()
set(CMAKE_C_COMPILER psx-gcc)
set(CMAKE_CXX_COMPILER psx-g++)
project(airport C)
set(cdroot ${CMAKE_SOURCE_DIR}/cdimg)
if(NOT EXISTS ${cdroot})
file(MAKE_DIRECTORY ${cdroot})
endif()
add_executable(${PROJECT_NAME}
"Source/Aircraft.c"
"Source/Camera.c"
"Source/EndAnimation.c"
"Source/Font.c"
"Source/Game.c"
"Source/GameGui.c"
"Source/Gfx.c"
"Source/LoadMenu.c"
"Source/main.c"
"Source/MainMenuBtnAni.c"
"Source/MemCard.c"
"Source/Menu.c"
"Source/Message.c"
"Source/Pad.c"
"Source/PltParser.c"
"Source/PSXSDKIntro.c"
"Source/Serial.c"
"Source/Sfx.c"
"Source/System.c"
"Source/Timer.c"
)
target_link_directories(${PROJECT_NAME} PUBLIC $ENV{PSXSDK_PATH}/lib)
target_compile_options(${PROJECT_NAME} PUBLIC -DFIXMATH_FAST_SIN -D_PAL_MODE_
-DPSXSDK_DEBUG -DNO_CDDA -DNO_INTRO -Wall -g3 -Og)
target_link_libraries(${PROJECT_NAME} PUBLIC -lpsx -lfixmath)
target_include_directories(${PROJECT_NAME} PRIVATE . $ENV{PSXSDK_PATH}/include)
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 $ENV{PSXSDK_PATH}/share/licenses/infoeur.dat)
add_custom_target(bin_cue ALL mkpsxiso ${PROJECT_NAME}.iso ${PROJECT_NAME}.bin
${license} -s DEPENDS iso)
add_subdirectory(Levels)
add_subdirectory(Sprites)
add_subdirectory(Sounds)
file(COPY "Source/system.cnf" DESTINATION ${cdroot})

18
Levels/CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
if(NOT EXISTS ${cdroot}/DATA/LEVELS)
file(MAKE_DIRECTORY ${cdroot}/DATA/LEVELS)
endif()
file(COPY
EASY.PLT
LEVEL18.LVL
LEVEL18.PLT
LEVEL1.LVL
LEVEL1.PLT
LEVEL2.LVL
LEVEL2.PLT
LEVEL3.LVL
LEVEL3.PLT
TUTORIA1.PLT
XAMI.LVL
XAMI.PLT
DESTINATION ${cdroot}/DATA/LEVELS)

28
Sounds/CMakeLists.txt Normal file
View File

@ -0,0 +1,28 @@
function(vag)
set(options "")
set(multiValueArgs "")
set(oneValueArgs NAME DEST)
cmake_parse_arguments(VAG "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
if(NOT EXISTS ${VAG_DEST})
file(MAKE_DIRECTORY ${VAG_DEST})
endif()
add_custom_target(${VAG_NAME}_vag ALL
wav2vag ${VAG_NAME}.wav ${VAG_DEST}/${VAG_NAME}.VAG
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${VAG_NAME}.wav
BYPRODUCTS ${VAG_DEST}/${VAG_NAME}.VAG)
add_dependencies(iso ${VAG_NAME}_vag)
endfunction()
vag(NAME BELL DEST ${cdroot}/DATA/SOUNDS)
vag(NAME ACCEPT DEST ${cdroot}/DATA/SOUNDS)
vag(NAME TRAYCL DEST ${cdroot}/DATA/SOUNDS)
vag(NAME SPINDISK DEST ${cdroot}/DATA/SOUNDS)
vag(NAME BEEP DEST ${cdroot}/DATA/SOUNDS)
vag(NAME TAKEOFF1 DEST ${cdroot}/DATA/SOUNDS)
vag(NAME RCTM1F1 DEST ${cdroot}/DATA/SOUNDS)
vag(NAME RCPW1A1 DEST ${cdroot}/DATA/SOUNDS)
vag(NAME RCPM1A1 DEST ${cdroot}/DATA/SOUNDS)

48
Sprites/CMakeLists.txt Normal file
View File

@ -0,0 +1,48 @@
function(tim)
set(options "")
set(multiValueArgs "")
set(oneValueArgs NAME DEST EXT)
cmake_parse_arguments(TIM "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
file(READ ${TIM_NAME}.flags flags)
# Avoid CMake from introducing escape characters on
# each whitespace inside flags.
separate_arguments(flags NATIVE_COMMAND ${flags})
if(NOT EXISTS ${TIM_DEST})
file(MAKE_DIRECTORY ${TIM_DEST})
endif()
add_custom_target(${TIM_NAME}_tim ALL
bmp2tim ${TIM_NAME}.bmp ${TIM_DEST}/${TIM_NAME}.${TIM_EXT} ${flags}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${TIM_NAME}.bmp
BYPRODUCTS ${TIM_DEST}/${TIM_NAME}.${TIM_EXT})
add_dependencies(iso ${TIM_NAME}_tim)
endfunction()
tim(NAME PSXDISK DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME TILESET1 DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME TILESET2 DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME MAINMENU DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME LOADING DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME PLANE DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME BUTTONS DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME GAMEPLN DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME PLNBLUE DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME BUBBLE DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME GPL DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME OPENSRC DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME MOUSE DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME DEPARR DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME PAGEUPDN DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME BLDNGS1 DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME LFRARROW DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME UDNARROW DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME BCNGW DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME MENUSTAR DEST ${cdroot}/DATA/SPRITES EXT TIM)
tim(NAME INTROFNT DEST ${cdroot}/DATA/FONTS EXT TIM)
tim(NAME FONT_1 DEST ${cdroot}/DATA/FONTS EXT FNT)
tim(NAME FONT_2 DEST ${cdroot}/DATA/FONTS EXT FNT)