Support CMake
This commit is contained in:
parent
b9886cf7be
commit
9c91d194cd
|
@ -43,3 +43,5 @@
|
|||
*.su
|
||||
*.idb
|
||||
*.pdb
|
||||
|
||||
build/
|
||||
|
|
|
@ -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})
|
|
@ -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)
|
|
@ -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)
|
|
@ -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)
|
Loading…
Reference in New Issue