gquake/CMakeLists.txt

86 lines
2.3 KiB
Text
Raw Normal View History

2026-05-12 23:38:18 +09:00
cmake_minimum_required(VERSION 3.25)
project(gquake)
file(GLOB SOURCES src/*.c)
2026-05-13 02:19:01 +09:00
if(PS2)
2026-05-17 21:06:39 -07:00
set(GL ps2gl)
2026-05-13 02:19:01 +09:00
2026-05-17 21:06:39 -07:00
set(CMAKE_EXECUTABLE_SUFFIX .elf)
2026-05-13 02:19:01 +09:00
elseif(VITA)
2026-05-17 21:06:39 -07:00
set(GL vitaGL)
elseif(PLATFORM_DREAMCAST)
include(kallistios)
add_compile_definitions(USE_KALLISTIOS)
add_compile_definitions(NO_FCNTL)
set(GL GL)
2026-05-13 02:19:01 +09:00
else()
2026-05-17 21:06:39 -07:00
find_package(OpenGL REQUIRED)
2026-05-13 02:19:01 +09:00
2026-05-17 21:06:39 -07:00
set(GL OpenGL::GL)
2026-05-13 02:19:01 +09:00
endif()
2026-05-12 23:38:18 +09:00
set(MILSKO "/usr/local")
2026-05-17 21:06:39 -07:00
if(NOT PLATFORM_DREAMCAST)
option(TRY_SDL2 "Try SDL2" ON)
option(TRY_MILSKO "Try SDL2" OFF)
endif()
2026-05-12 23:38:18 +09:00
add_executable(gquake ${SOURCES})
target_include_directories(gquake PRIVATE include)
target_compile_definitions(gquake PRIVATE GL_EXT_SHARED GLQUAKE)
2026-05-13 02:19:01 +09:00
target_link_libraries(gquake PRIVATE ${GL})
if(PSP)
2026-05-17 21:06:39 -07:00
target_link_libraries(gquake PRIVATE SDL2main pspsdk pspnet cglue)
2026-05-13 02:19:01 +09:00
2026-05-17 21:06:39 -07:00
create_pbp_file(TARGET gquake
TITLE "GQuake")
2026-05-13 02:19:01 +09:00
elseif(PS2)
2026-05-17 21:06:39 -07:00
target_link_libraries(gquake PRIVATE SDL2main stdc++ ps2stuff dma -ldebug)
add_custom_command(TARGET gquake POST_BUILD
COMMAND rm -rf gquake
COMMAND mkdir -p gquake
COMMAND cp gquake.elf gquake/GQUAKE.ELF
COMMAND cp -rf ${CMAKE_SOURCE_DIR}/id1 gquake/
COMMAND echo "BOOT2 = cdrom0:\\\\GQUAKE.ELF" > gquake/SYSTEM.CNF
COMMAND genisoimage -udf -o gquake.iso gquake
)
2026-05-13 02:19:01 +09:00
elseif(VITA)
2026-05-17 21:06:39 -07:00
include(${VITASDK}/share/vita.cmake)
2026-05-13 02:19:01 +09:00
2026-05-17 21:06:39 -07:00
target_link_libraries(gquake PRIVATE SDL2main stdc++ vitashark SceShaccCg_stub SceKernelDmacMgr_stub mathneon)
2026-05-12 23:38:18 +09:00
2026-05-17 21:06:39 -07:00
vita_create_self(gquake.self gquake)
vita_create_vpk(gquake.vpk PYRT10000 gquake.self
FILE ${CMAKE_SOURCE_DIR}/id1 sce_sys/id1
)
2026-05-13 05:01:46 +09:00
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
2026-05-17 21:06:39 -07:00
target_link_libraries(gquake PRIVATE wsock32)
2026-05-13 02:19:01 +09:00
else()
2026-05-17 21:06:39 -07:00
target_link_libraries(gquake PRIVATE m)
2026-05-13 02:19:01 +09:00
endif()
2026-05-13 05:01:46 +09:00
set(FOUND FALSE)
2026-05-13 02:19:01 +09:00
if(NOT FOUND AND TRY_SDL2)
2026-05-17 21:06:39 -07:00
find_package(SDL2)
target_compile_definitions(gquake PRIVATE USE_SDL2)
target_link_libraries(gquake PRIVATE SDL2::SDL2)
set(FOUND ON)
endif()
2026-05-13 02:19:01 +09:00
2026-05-17 21:06:39 -07:00
if(NOT FOUND AND TRY_MILSKO)
target_compile_definitions(gquake PRIVATE USE_MILSKO USE_MINIAUDIO)
target_include_directories(gquake PRIVATE ${MILSKO}/include)
target_link_directories(gquake PRIVATE ${MILSKO}/src ${MILSKO}/lib)
target_link_libraries(gquake PRIVATE Mw)
2026-05-13 02:19:01 +09:00
endif()
2026-05-17 21:06:39 -07:00
if(PLATFORM_DREAMCAST)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/romdisk/)
file(COPY ${CMAKE_BINARY_DIR}/../id1 DESTINATION ${CMAKE_BINARY_DIR}/romdisk/)
kos_add_romdisk(${PROJECT_NAME} ${CMAKE_BINARY_DIR}/romdisk/)
2026-05-12 23:38:18 +09:00
endif()