diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2022-05-24 22:19:34 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2022-05-24 22:20:04 +0200 |
| commit | 9073d82ea66ee5c07c4603a62f9bb07b3eb5c3ce (patch) | |
| tree | e416ff0ee628e090eb531291e098ce111318fc50 /cmake | |
| parent | 938ab934826ba8b94a1ea43ce7f6b583cee10b50 (diff) | |
| download | rts-9073d82ea66ee5c07c4603a62f9bb07b3eb5c3ce.tar.gz | |
Split CMakeLists.txt into platform-specific *.cmake
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/host.cmake | 12 | ||||
| -rw-r--r-- | cmake/ps1.cmake | 28 | ||||
| -rw-r--r-- | cmake/win9x.cmake | 37 |
3 files changed, 77 insertions, 0 deletions
diff --git a/cmake/host.cmake b/cmake/host.cmake new file mode 100644 index 0000000..b1b000a --- /dev/null +++ b/cmake/host.cmake @@ -0,0 +1,12 @@ +file(MAKE_DIRECTORY ${cdroot}) +find_package(SDL 1.2 REQUIRED) +find_package(SDL_mixer 1.2 REQUIRED) +set(SDL1_2_BUILD 1) + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(cflags ${cflags} -Og) +else() + set(cflags ${cflags} -O3) +endif() + +add_subdirectory(libfixmath) diff --git a/cmake/ps1.cmake b/cmake/ps1.cmake new file mode 100644 index 0000000..e9ae0f6 --- /dev/null +++ b/cmake/ps1.cmake @@ -0,0 +1,28 @@ +file(MAKE_DIRECTORY ${cdroot}) +target_link_directories(${PROJECT_NAME} PUBLIC $ENV{PSXSDK_PATH}/lib) +target_link_libraries(${PROJECT_NAME} PUBLIC -lpsx -lfixmath) +target_compile_definitions(${PROJECT_NAME} PUBLIC FIXMATH_FAST_SIN PSXSDK_DEBUG) +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_custom_target(libpsx ALL DEPENDS $ENV{PSXSDK_PATH}/lib/libpsx.a) +# add_dependencies(${PROJECT_NAME} libpsx) + +if(NOT EXISTS "${cdroot}/system.cnf") + file(COPY "src/system.cnf" DESTINATION "${cdroot}") +endif() + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(cflags ${cflags} -Og) +else() + set(cflags ${cflags} -Os) +endif() + +set(cflags ${cflags} -fshort-enums) +# libfixmath is already bundled with PSXSDK. diff --git a/cmake/win9x.cmake b/cmake/win9x.cmake new file mode 100644 index 0000000..3423248 --- /dev/null +++ b/cmake/win9x.cmake @@ -0,0 +1,37 @@ +file(MAKE_DIRECTORY ${cdroot}) +if("$ENV{SDL_PATH}" STREQUAL "") + message(FATAL_ERROR "please define env variable SDL_PATH") +elseif("$ENV{SDL_TTF_PATH}" STREQUAL "") + message(FATAL_ERROR "please define env variable SDL_TTF_PATH") +elseif("$ENV{FREETYPE_PATH}" STREQUAL "") + message(FATAL_ERROR "please define env variable FREETYPE_PATH") +elseif("$ENV{SDL_MIXER_PATH}" STREQUAL "") + message(FATAL_ERROR "please define env variable SDL_MIXER_PATH") +endif() + +add_custom_command(OUTPUT ${cdroot}/${PROJECT_NAME} + COMMAND i386-mingw32-strip ${PROJECT_NAME} -o ${cdroot}/${PROJECT_NAME} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + DEPENDS ${PROJECT_NAME} + VERBATIM) +add_custom_target(stripped-exe ALL DEPENDS ${cdroot}/${PROJECT_NAME}) + +target_link_directories(${PROJECT_NAME} PRIVATE $ENV{SDL_PATH}/lib + $ENV{SDL_TTF_PATH}/lib $ENV{FREETYPE_PATH}/lib + $ENV{SDL_MIXER_PATH}/lib) +include_directories($ENV{SDL_PATH}/include + $ENV{SDL_PATH}/include/SDL $ENV{SDL_TTF_PATH}/include + $ENV{FREETYPE_PATH}/include + $ENV{SDL_MIXER_PATH}/include) +add_compile_options(-march=i386) +link_libraries(gdi32 user32 winmm dxguid freetype) +set(SDL1_2_BUILD 1) + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + # i386-mingw32-gcc 3.4.5 does not support -Og. + set(cflags ${cflags} -O0) +else() + set(cflags ${cflags} -O2) +endif() + +add_subdirectory(libfixmath) |
