mirror of
https://github.com/aap/librw.git
synced 2024-11-28 06:35:41 +00:00
Merge pull request #44 from madebr/ps2_conan
cmake updates + test SDL2 & PS2 on Github Actions
This commit is contained in:
commit
d008d5107b
59
.github/workflows/build-cmake-conan.yml
vendored
59
.github/workflows/build-cmake-conan.yml
vendored
@ -1,4 +1,4 @@
|
|||||||
name: Build using conan
|
name: Build using conan+cmake
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
@ -10,18 +10,22 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||||
platform: ['null', 'gl3', 'd3d9', 'ps2']
|
platform: ['null', 'gl3', 'd3d9', 'ps2']
|
||||||
|
gl3_gfxlib: ['glfw', 'sdl2']
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
platform: ps2
|
platform: ps2
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
platform: d3d9
|
platform: d3d9
|
||||||
- os: ubuntu-latest
|
|
||||||
platform: ps2 # FIXME: add ps2toolchain conan package + ps2 profile
|
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
platform: d3d9
|
platform: d3d9
|
||||||
- os: macos-latest
|
- platform: 'null'
|
||||||
platform: ps2
|
gl3_gfxlib: sdl2
|
||||||
|
- platform: d3d9
|
||||||
|
gl3_gfxlib: sdl2
|
||||||
|
- platform: ps2
|
||||||
|
gl3_gfxlib: sdl2
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
continue-on-error: ${{ matrix.platform == 'ps2' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v2
|
||||||
@ -30,17 +34,50 @@ jobs:
|
|||||||
- name: "Setup conan"
|
- name: "Setup conan"
|
||||||
run: |
|
run: |
|
||||||
python -m pip install conan
|
python -m pip install conan
|
||||||
conan user
|
conan config init
|
||||||
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
|
|
||||||
conan config set log.print_run_commands=True
|
conan config set log.print_run_commands=True
|
||||||
- name: "conan install (download/build dependencies)"
|
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
|
||||||
|
conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev
|
||||||
|
- name: "Add os=Playstation2 + gcc.version=3.2 to .conan/settings.yml"
|
||||||
|
if: ${{ matrix.platform == 'ps2' }}
|
||||||
|
shell: python
|
||||||
run: |
|
run: |
|
||||||
conan install ${{ github.workspace }} -if build -o platform=${{ matrix.platform }} --build missing
|
import os, yaml
|
||||||
|
settings_path = os.path.expanduser("~/.conan/settings.yml")
|
||||||
|
yml = yaml.safe_load(open(settings_path))
|
||||||
|
yml["os"]["Playstation2"] = None
|
||||||
|
yml["compiler"]["gcc"]["version"].append("3.2")
|
||||||
|
yml["compiler"]["gcc"]["version"].sort()
|
||||||
|
yaml.safe_dump(yml, open(settings_path, "w"))
|
||||||
|
- name: "Create host profile"
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
if test "${{ matrix.platform }}" = "ps2"; then
|
||||||
|
cp conan/playstation2 host_profile
|
||||||
|
else
|
||||||
|
cp ~/.conan/profiles/default host_profile
|
||||||
|
fi
|
||||||
|
- name: "Export Playstation 2 CMake toolchain conan recipe"
|
||||||
|
run: |
|
||||||
|
conan export cmake/ps2toolchain ps2dev-cmaketoolchain/master@
|
||||||
|
- name: "Download/build dependencies (conan install)"
|
||||||
|
run: |
|
||||||
|
conan install ${{ github.workspace }} librw/master@ -if build -o platform=${{ matrix.platform }} -o gl3_gfxlib=${{ matrix.gl3_gfxlib}} --build missing -pr:h ./host_profile -pr:b default
|
||||||
env:
|
env:
|
||||||
CONAN_SYSREQUIRES_MODE: enabled
|
CONAN_SYSREQUIRES_MODE: enabled
|
||||||
- name: "conan build (build librw)"
|
- name: "Build librw (conan build)"
|
||||||
run: |
|
run: |
|
||||||
conan build ${{ github.workspace }} -if build -bf build -pf package
|
conan build ${{ github.workspace }} -if build -bf build -pf package
|
||||||
- name: "conan package (package librw)"
|
- name: "Package librw (conan package)"
|
||||||
run: |
|
run: |
|
||||||
conan package ${{ github.workspace }} -if build -bf build -pf package
|
conan package ${{ github.workspace }} -if build -bf build -pf package
|
||||||
|
- name: "Create binary package (cpack)"
|
||||||
|
working-directory: ./build
|
||||||
|
run: |
|
||||||
|
cpack
|
||||||
|
- name: "Archive binary package (github artifacts)"
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: "${{ matrix.os }}-${{ matrix.platform }}"
|
||||||
|
path: build/*.tar.xz
|
||||||
|
if-no-files-found: error
|
||||||
|
@ -3,10 +3,6 @@ project(librw C CXX)
|
|||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||||
|
|
||||||
if(PS2DEV AND EE)
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/cmake/ee.cmake")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(LIBRW_PLATFORMS "NULL" "GL3" "D3D9")
|
set(LIBRW_PLATFORMS "NULL" "GL3" "D3D9")
|
||||||
else()
|
else()
|
||||||
@ -54,16 +50,63 @@ if(LIBRW_INSTALL)
|
|||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
configure_package_config_file(cmake/librw-config.cmake.in librw-config.cmake
|
configure_package_config_file(cmake/librw-config.cmake.in librw-config.cmake
|
||||||
INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/librw-config.cmake"
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/librw-config.cmake"
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
EXPORT librw-targets NAMESPACE librw::
|
EXPORT librw-targets NAMESPACE librw::
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||||
)
|
)
|
||||||
set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
|
||||||
|
string(REPLACE "." ";" cmake_c_compiler_version_list "${CMAKE_C_COMPILER_VERSION}")
|
||||||
|
list(GET cmake_c_compiler_version_list 0 cmake_c_compiler_version_major)
|
||||||
|
|
||||||
|
string(TOLOWER "${LIBRW_PLATFORM}" librw_platform)
|
||||||
|
set(compiler)
|
||||||
|
set(os)
|
||||||
|
if(NOT LIBRW_PLATFORM STREQUAL "PS2")
|
||||||
|
if(MSVC)
|
||||||
|
set(compiler "-msvc${MSVC_VERSION}")
|
||||||
|
elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||||
|
set(compiler "-gcc${cmake_c_compiler_version_major}")
|
||||||
|
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||||
|
set(compiler "-clang${cmake_c_compiler_version_major}")
|
||||||
|
elseif(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
|
||||||
|
set(compiler "-appleclang${cmake_c_compiler_version_major}")
|
||||||
|
else()
|
||||||
|
set(compiler "-UNK")
|
||||||
|
message(WARNING "Unknown compiler. Created cpack package will be wrong. (override using cpack -P)")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(LIBRW_PLATFORM_NULL)
|
||||||
|
set(platform "-null")
|
||||||
|
elseif(LIBRW_PLATFORM_PS2)
|
||||||
|
set(platform "-ps2")
|
||||||
|
elseif(LIBRW_PLATFORM_GL3)
|
||||||
|
if(LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
||||||
|
set(platform "-gl3-glfw")
|
||||||
|
else()
|
||||||
|
set(platform "-gl3-sdl2")
|
||||||
|
endif()
|
||||||
|
elseif(LIBRW_PLATFORM_D3D9)
|
||||||
|
set(platform "-d3d9")
|
||||||
|
endif()
|
||||||
|
if(NOT LIBRW_PLATFORM_PS2)
|
||||||
|
if(WIN32)
|
||||||
|
set(os "-win")
|
||||||
|
elseif(APPLE)
|
||||||
|
set(os "-apple")
|
||||||
|
elseif(UNIX)
|
||||||
|
set(os "-linux")
|
||||||
|
else()
|
||||||
|
set(compiler "-UNK")
|
||||||
|
message(WARNING "Unknown os. Created cpack package will be wrong. (override using cpack -P)")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${platform}${os}${compiler}")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A (partial) re-implementation of RenderWare Graphics")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A (partial) re-implementation of RenderWare Graphics")
|
||||||
set(CPACK_PACKAGE_VENDOR "aap")
|
set(CPACK_PACKAGE_VENDOR "aap")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/LICENSE")
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
@ -71,5 +114,6 @@ if(LIBRW_INSTALL)
|
|||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
|
||||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
|
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
|
||||||
|
set(CPACK_GENERATOR "TXZ")
|
||||||
include(CPack)
|
include(CPack)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
find_package(PkgConfig QUIET)
|
find_package(PkgConfig QUIET)
|
||||||
if(PKG_CONFIG_FOUND)
|
if(PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(SDL2 IMPORTED_TARGET "sdl2")
|
pkg_check_modules(SDL2 IMPORTED_TARGET "sdl2")
|
||||||
if(TARGET PkgConfig::SDL2 AND NOT TARGET sdl2::sdl2)
|
if(TARGET PkgConfig::SDL2 AND NOT TARGET SDL2::SDL2)
|
||||||
add_library(_sdl2 INTERFACE)
|
add_library(SDL2::SDL2 INTERFACE IMPORTED)
|
||||||
target_link_libraries(_sdl2 INTERFACE PkgConfig::SDL2)
|
set_property(TARGET SDL2::SDL2 PROPERTY INTERFACE_LINK_LIBRARIES PkgConfig::SDL2)
|
||||||
add_library(SDL2::SDL2 ALIAS _sdl2)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_library(SDL2main_LIBRARY SDL2main)
|
||||||
|
|
||||||
if(NOT SDL2_FOUND)
|
if(NOT SDL2_FOUND)
|
||||||
find_path(SDL2_INCLUDE_DIR sdl2.h)
|
find_path(SDL2_INCLUDE_DIR sdl2.h)
|
||||||
find_library(SDL2_LIBRARY sdl2)
|
find_library(SDL2_LIBRARY SDL2 SDL2d)
|
||||||
|
|
||||||
|
find_library(SDL2main_LIBRARY SDL2main)
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(libuv
|
find_package_handle_standard_args(libuv
|
||||||
@ -25,3 +28,11 @@ if(NOT SDL2_FOUND)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(SDL2main_LIBRARY AND NOT TARGET SDL2::SDL2main)
|
||||||
|
add_library(SDL2::SDL2main UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(SDL2::SDL2main PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${SDL2main_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
include_directories(SYSTEM "${PS2SDK}/common/include")
|
|
||||||
include_directories(SYSTEM "${PS2SDK}/ee/include")
|
|
@ -10,10 +10,10 @@ if(LIBRW_PLATFORM_GL3)
|
|||||||
|
|
||||||
set(OpenGL_GL_PREFERENCE GLVND)
|
set(OpenGL_GL_PREFERENCE GLVND)
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
|
find_package(GLEW REQUIRED)
|
||||||
if(LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
if(LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
||||||
find_package(GLEW REQUIRED)
|
|
||||||
find_package(glfw3 REQUIRED)
|
find_package(glfw3 REQUIRED)
|
||||||
elseif(LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
elseif(LIBRW_GL3_GFXLIB STREQUAL "SDL2")
|
||||||
find_package(SDL2 REQUIRED)
|
find_package(SDL2 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
1
cmake/ps2toolchain/Platform/PlayStation2.cmake
Normal file
1
cmake/ps2toolchain/Platform/PlayStation2.cmake
Normal file
@ -0,0 +1 @@
|
|||||||
|
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
68
cmake/ps2toolchain/cmaketoolchain.cmake
Normal file
68
cmake/ps2toolchain/cmaketoolchain.cmake
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_NAME "PlayStation2")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR "mipsel")
|
||||||
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
set(CMAKE_NO_SYSTEM_FROM_IMPORTED ON)
|
||||||
|
|
||||||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
if(NOT DEFINED ENV{PS2DEV})
|
||||||
|
message(FATAL_ERROR "Need environment variable PS2DEV set")
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED ENV{PS2SDK})
|
||||||
|
message(FATAL_ERROR "Need environment variable PS2SDK set")
|
||||||
|
endif()
|
||||||
|
set(PS2DEV "$ENV{PS2DEV}")
|
||||||
|
set(PS2SDK "$ENV{PS2SDK}")
|
||||||
|
|
||||||
|
if(NOT IS_DIRECTORY "${PS2DEV}")
|
||||||
|
message(FATAL_ERROR "PS2DEV must contain a folder path (${PS2DEV})")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT IS_DIRECTORY "${PS2SDK}")
|
||||||
|
message(FATAL_ERROR "PS2SDK must contain a folder path (${PS2SDK})")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_DSM_SOURCE_FILE_EXTENSIONS "dsm")
|
||||||
|
|
||||||
|
set(CMAKE_C_COMPILER "${PS2DEV}/ee/bin/ee-gcc")
|
||||||
|
set(CMAKE_CXX_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
||||||
|
set(CMAKE_ASM_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
||||||
|
set(CMAKE_DSM_COMPILER "${PS2DEV}/dvp/bin/dvp-as")
|
||||||
|
set(CMAKE_AR "${PS2DEV}/ee/bin/ee-ar" CACHE FILEPATH "archiver")
|
||||||
|
set(CMAKE_LINKER "${PS2DEV}/ee/bin/ee-ld")
|
||||||
|
set(CMAKE_RANLIB "${PS2DEV}/ee/bin/ee-ranlib" CACHE FILEPATH "ranlib")
|
||||||
|
set(CMAKE_STRIP "${PS2DEV}/ee/bin/ee-strip" CACHE FILEPATH "strip")
|
||||||
|
|
||||||
|
set(CMAKE_ASM_FLAGS_INIT "-G0 -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
|
set(CMAKE_C_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
|
set(CMAKE_CXX_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-G0 -L\"${PS2SDK}/ee/lib\" -Wl,-r -Wl,-d")
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH "${PS2DEV}/ee;${PS2SDK}/ee")
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
|
set(PS2 1)
|
||||||
|
set(EE 1)
|
||||||
|
|
||||||
|
function(add_erl_executable OUTFILE TARGET)
|
||||||
|
get_property(output_dir TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_DIRECTORY)
|
||||||
|
set(outfile "${output_dir}/${TARGET}.erl")
|
||||||
|
add_custom_command(OUTPUT "${outfile}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:${TARGET}>" "${outfile}"
|
||||||
|
COMMAND "${CMAKE_STRIP}" --strip-unneeded -R .mdebug.eabi64 -R .reginfo -R .comment "${outfile}"
|
||||||
|
DEPENDS ${TARGET}
|
||||||
|
)
|
||||||
|
add_custom_target("${TARGET}_erl" ALL
|
||||||
|
DEPENDS "${outfile}"
|
||||||
|
)
|
||||||
|
set("${OUTFILE}" "${outfile}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
21
cmake/ps2toolchain/conanfile.py
Normal file
21
cmake/ps2toolchain/conanfile.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from conans import ConanFile
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
|
class Ps2devCMakeToolchainConan(ConanFile):
|
||||||
|
name = "ps2dev-cmaketoolchain"
|
||||||
|
description = "CMake toolchain script for ps2dev"
|
||||||
|
topics = "ps2", "sdk", "library", "sony", "playstation", "ps2"
|
||||||
|
|
||||||
|
def export_sources(self):
|
||||||
|
self.copy("*.cmake*", dst="cmake")
|
||||||
|
self.copy("Platform", dst="cmake")
|
||||||
|
|
||||||
|
def package(self):
|
||||||
|
shutil.copytree(os.path.join(self.source_folder, "cmake"),
|
||||||
|
os.path.join(self.package_folder, "cmake"))
|
||||||
|
|
||||||
|
def package_info(self):
|
||||||
|
self.user_info.cmake_dir = os.path.join(self.package_folder, "cmake").replace("\\", "/")
|
||||||
|
self.user_info.cmake_toolchain_file = os.path.join(self.package_folder, "cmake", "cmaketoolchain.cmake").replace("\\", "/")
|
@ -1,7 +1,9 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
set(CMAKE_SYSTEM_NAME "Generic")
|
set(CMAKE_SYSTEM_NAME "PlayStation2")
|
||||||
set(CMAKE_SYSTEM_PROCESSOR "ee")
|
set(CMAKE_SYSTEM_PROCESSOR "mipsel")
|
||||||
set(CMAKE_SYSTEM_VERSION 1)
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
@ -19,13 +21,8 @@ endif()
|
|||||||
set(PS2DEV "$ENV{PS2DEV}")
|
set(PS2DEV "$ENV{PS2DEV}")
|
||||||
set(PS2SDK "$ENV{PS2SDK}")
|
set(PS2SDK "$ENV{PS2SDK}")
|
||||||
|
|
||||||
#set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS "asm;dsm")
|
|
||||||
|
|
||||||
set(CMAKE_DSM_SOURCE_FILE_EXTENSIONS "dsm")
|
set(CMAKE_DSM_SOURCE_FILE_EXTENSIONS "dsm")
|
||||||
|
|
||||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".erl")
|
|
||||||
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER "${PS2DEV}/ee/bin/ee-gcc")
|
set(CMAKE_C_COMPILER "${PS2DEV}/ee/bin/ee-gcc")
|
||||||
set(CMAKE_CXX_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
set(CMAKE_CXX_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
||||||
set(CMAKE_ASM_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
set(CMAKE_ASM_COMPILER "${PS2DEV}/ee/bin/ee-g++")
|
||||||
@ -35,25 +32,10 @@ set(CMAKE_LINKER "${PS2DEV}/ee/bin/ee-ld")
|
|||||||
set(CMAKE_RANLIB "${PS2DEV}/ee/bin/ee-ranlib" CACHE FILEPATH "ranlib")
|
set(CMAKE_RANLIB "${PS2DEV}/ee/bin/ee-ranlib" CACHE FILEPATH "ranlib")
|
||||||
set(CMAKE_STRIP "${PS2DEV}/ee/bin/ee-strip" CACHE FILEPATH "strip")
|
set(CMAKE_STRIP "${PS2DEV}/ee/bin/ee-strip" CACHE FILEPATH "strip")
|
||||||
|
|
||||||
set(EE_LDFLAGS "" CACHE STRING "EE linker flags")
|
set(CMAKE_ASM_FLAGS_INIT "-G0 -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
set(EE_ASFLAGS "-G0" CACHE STRING "EE assembler flags")
|
set(CMAKE_C_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
|
set(CMAKE_CXX_FLAGS_INIT "-G0 -fno-common -I\"${PS2SDK}/ee/include\" -I\"${PS2SDK}/common/include\"")
|
||||||
set(EE_CRT0 "${PS2SDK}/ee/startup/crt0.o" CACHE FILEPATH "EE crt0 file")
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-G0 -L\"${PS2SDK}/ee/lib\" -Wl,-r -Wl,-d")
|
||||||
set_source_files_properties("${EE_CRT0}" PROPERTIES EXTERNAL_OBJECT ON)
|
|
||||||
|
|
||||||
set(EE_LINKSCRIPT "${PS2SDK}/ee/startup/linkfile" CACHE FILEPATH "EE link script")
|
|
||||||
|
|
||||||
#set(EE_CFLAGS " -nostdlib -fno-common -D_EE" CACHE STRING "EE C/CXX compiler flags")
|
|
||||||
set(EE_CFLAGS "-D_EE")
|
|
||||||
set(CMAKE_C_FLAGS_INIT "${EE_CFLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS_INIT "${EE_CFLAGS}")
|
|
||||||
#set(CMAKE_ASM_FLAGS_INIT "${EE_CFLAGS}")
|
|
||||||
|
|
||||||
set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> cru <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
||||||
set(CMAKE_CXX_CREATE_STATIC_LIBRARY "${CMAKE_C_CREATE_STATIC_LIBRARY}")
|
|
||||||
set(CMAKE_ASM_CREATE_STATIC_LIBRARY "${CMAKE_C_CREATE_STATIC_LIBRARY}")
|
|
||||||
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_INIT "-mno-crt0 -T\"${PS2SDK}/ee/startup/linkfile\" \"${EE_CRT0}\" -L\"${PS2SDK}/ee/lib\"")
|
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "${PS2DEV}/ee;${PS2SDK}/ee")
|
set(CMAKE_FIND_ROOT_PATH "${PS2DEV}/ee;${PS2SDK}/ee")
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
@ -62,3 +44,17 @@ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|||||||
|
|
||||||
set(PS2 1)
|
set(PS2 1)
|
||||||
set(EE 1)
|
set(EE 1)
|
||||||
|
|
||||||
|
function(add_erl_executable OUTFILE TARGET)
|
||||||
|
get_property(output_dir TARGET ${TARGET} PROPERTY RUNTIME_OUTPUT_DIRECTORY)
|
||||||
|
set(outfile "${output_dir}/${TARGET}.erl")
|
||||||
|
add_custom_command(OUTPUT "${outfile}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:${TARGET}>" "${outfile}"
|
||||||
|
COMMAND "${CMAKE_STRIP}" --strip-unneeded -R .mdebug.eabi64 -R .reginfo -R .comment "${outfile}"
|
||||||
|
DEPENDS ${TARGET}
|
||||||
|
)
|
||||||
|
add_custom_target("${TARGET}_erl" ALL
|
||||||
|
DEPENDS "${outfile}"
|
||||||
|
)
|
||||||
|
set("${OUTFILE}" "${outfile}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
12
conan/playstation2
Normal file
12
conan/playstation2
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[settings]
|
||||||
|
os=Playstation2
|
||||||
|
arch=mips
|
||||||
|
compiler=gcc
|
||||||
|
compiler.version=3.2
|
||||||
|
compiler.libcxx=libstdc++
|
||||||
|
build_type=Release
|
||||||
|
[options]
|
||||||
|
librw:platform=ps2
|
||||||
|
[build_requires]
|
||||||
|
ps2dev-ps2toolchain/unknown@madebr/testing
|
||||||
|
[env]
|
57
conanfile.py
57
conanfile.py
@ -1,5 +1,5 @@
|
|||||||
from conans import ConanFile, CMake, tools
|
from conans import ConanFile, CMake, tools
|
||||||
from conans.errors import ConanInvalidConfiguration
|
from conans.errors import ConanException, ConanInvalidConfiguration
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import textwrap
|
import textwrap
|
||||||
@ -18,21 +18,39 @@ class LibrwConan(ConanFile):
|
|||||||
default_options = {
|
default_options = {
|
||||||
"platform": "gl3",
|
"platform": "gl3",
|
||||||
"gl3_gfxlib": "glfw",
|
"gl3_gfxlib": "glfw",
|
||||||
|
"openal:with_external_libs": False,
|
||||||
"sdl2:vulkan": False,
|
"sdl2:vulkan": False,
|
||||||
"sdl2:opengl": True,
|
"sdl2:opengl": True,
|
||||||
"sdl2:sdl2main": False,
|
"sdl2:sdl2main": True,
|
||||||
}
|
}
|
||||||
no_copy_source = True
|
no_copy_source = True
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _os_is_playstation2(self):
|
||||||
|
try:
|
||||||
|
return self.settings.os == "Playstation2"
|
||||||
|
except ConanException:
|
||||||
|
return False
|
||||||
|
|
||||||
def config_options(self):
|
def config_options(self):
|
||||||
|
if self._os_is_playstation2:
|
||||||
|
self.options.platform = "ps2"
|
||||||
if self.settings.os == "Windows":
|
if self.settings.os == "Windows":
|
||||||
self.options["sdl2"].directx = False
|
self.options["sdl2"].directx = False
|
||||||
|
|
||||||
def configure(self):
|
def configure(self):
|
||||||
if self.options.platform != "gl3":
|
if self.options.platform != "gl3":
|
||||||
del self.options.gl3_gfxlib
|
del self.options.gl3_gfxlib
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
if self.options.platform == "d3d9" and self.settings.os != "Windows":
|
if self.options.platform == "d3d9" and self.settings.os != "Windows":
|
||||||
raise ConanInvalidConfiguration("d3d9 can only be built for Windows")
|
raise ConanInvalidConfiguration("d3d9 can only be built for Windows")
|
||||||
|
if self.options.platform == "ps2":
|
||||||
|
if not self._os_is_playstation2:
|
||||||
|
raise ConanInvalidConfiguration("platform=ps2 is only valid for os=Playstation2")
|
||||||
|
else:
|
||||||
|
if self._os_is_playstation2:
|
||||||
|
raise ConanInvalidConfiguration("os=Playstation2 only supports platform=ps2")
|
||||||
|
|
||||||
def requirements(self):
|
def requirements(self):
|
||||||
if self.options.platform == "gl3":
|
if self.options.platform == "gl3":
|
||||||
@ -41,6 +59,10 @@ class LibrwConan(ConanFile):
|
|||||||
self.requires("glfw/3.3.2")
|
self.requires("glfw/3.3.2")
|
||||||
elif self.options.gl3_gfxlib == "sdl2":
|
elif self.options.gl3_gfxlib == "sdl2":
|
||||||
self.requires("sdl2/2.0.12@bincrafters/stable")
|
self.requires("sdl2/2.0.12@bincrafters/stable")
|
||||||
|
elif self.options.platform == "ps2":
|
||||||
|
self.requires("ps2dev-ps2sdk/unknown@madebr/testing")
|
||||||
|
if self._os_is_playstation2:
|
||||||
|
self.requires("ps2dev-cmaketoolchain/{}".format(self.version))
|
||||||
|
|
||||||
def export_sources(self):
|
def export_sources(self):
|
||||||
for d in ("cmake", "skeleton", "src", "tools"):
|
for d in ("cmake", "skeleton", "src", "tools"):
|
||||||
@ -62,16 +84,17 @@ class LibrwConan(ConanFile):
|
|||||||
def build(self):
|
def build(self):
|
||||||
if self.source_folder == self.build_folder:
|
if self.source_folder == self.build_folder:
|
||||||
raise Exception("cannot build with source_folder == build_folder")
|
raise Exception("cannot build with source_folder == build_folder")
|
||||||
tools.save("Findglfw3.cmake",
|
if self.options.platform == "gl3" and self.options.gl3_gfxlib == "glfw":
|
||||||
textwrap.dedent(
|
tools.save("Findglfw3.cmake",
|
||||||
"""
|
textwrap.dedent(
|
||||||
if(NOT TARGET glfw)
|
"""
|
||||||
message(STATUS "Creating glfw TARGET")
|
if(NOT TARGET glfw)
|
||||||
add_library(glfw INTERFACE IMPORTED)
|
message(STATUS "Creating glfw TARGET")
|
||||||
set_target_properties(glfw PROPERTIES
|
add_library(glfw INTERFACE IMPORTED)
|
||||||
INTERFACE_LINK_LIBRARIES CONAN_PKG::glfw) #$<BUILD_INTERFACE:CONAN_PKG::glfw>)
|
set_target_properties(glfw PROPERTIES
|
||||||
endif()
|
INTERFACE_LINK_LIBRARIES CONAN_PKG::glfw)
|
||||||
"""), append=True)
|
endif()
|
||||||
|
"""), append=True)
|
||||||
tools.save("CMakeLists.txt",
|
tools.save("CMakeLists.txt",
|
||||||
textwrap.dedent(
|
textwrap.dedent(
|
||||||
"""
|
"""
|
||||||
@ -85,11 +108,17 @@ class LibrwConan(ConanFile):
|
|||||||
""").format(self.install_folder.replace("\\", "/"),
|
""").format(self.install_folder.replace("\\", "/"),
|
||||||
self.source_folder.replace("\\", "/")))
|
self.source_folder.replace("\\", "/")))
|
||||||
cmake = CMake(self)
|
cmake = CMake(self)
|
||||||
|
env = {}
|
||||||
cmake.definitions["LIBRW_PLATFORM"] = self._librw_platform
|
cmake.definitions["LIBRW_PLATFORM"] = self._librw_platform
|
||||||
cmake.definitions["LIBRW_INSTALL"] = True
|
cmake.definitions["LIBRW_INSTALL"] = True
|
||||||
|
cmake.definitions["LIBRW_TOOLS"] = True
|
||||||
if self.options.platform == "gl3":
|
if self.options.platform == "gl3":
|
||||||
cmake.definitions["LIBRW_GL3_GFXLIB"] = str(self.options.gl3_gfxlib).upper()
|
cmake.definitions["LIBRW_GL3_GFXLIB"] = str(self.options.gl3_gfxlib).upper()
|
||||||
cmake.configure(source_folder=self.build_folder)
|
if self._os_is_playstation2:
|
||||||
|
cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file
|
||||||
|
env["PS2SDK"] = self.deps_cpp_info["ps2dev-ps2sdk"].rootpath
|
||||||
|
with tools.environment_append(env):
|
||||||
|
cmake.configure(source_folder=self.build_folder)
|
||||||
cmake.build()
|
cmake.build()
|
||||||
|
|
||||||
def package(self):
|
def package(self):
|
||||||
@ -98,7 +127,7 @@ class LibrwConan(ConanFile):
|
|||||||
|
|
||||||
def package_info(self):
|
def package_info(self):
|
||||||
self.cpp_info.includedirs.append(os.path.join("include", "librw"))
|
self.cpp_info.includedirs.append(os.path.join("include", "librw"))
|
||||||
self.cpp_info.libs = ["librw"]
|
self.cpp_info.libs = ["librw" if self.settings.compiler == "Visual Studio" else "rw"]
|
||||||
if self.options.platform == "null":
|
if self.options.platform == "null":
|
||||||
self.cpp_info.defines.append("RW_NULL")
|
self.cpp_info.defines.append("RW_NULL")
|
||||||
elif self.options.platform == "gl3":
|
elif self.options.platform == "gl3":
|
||||||
|
@ -4,22 +4,22 @@ add_library(librw_skeleton
|
|||||||
skeleton.cpp
|
skeleton.cpp
|
||||||
skeleton.h
|
skeleton.h
|
||||||
win.cpp
|
win.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(librw_skeleton
|
set_target_properties(librw_skeleton
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PREFIX ""
|
PREFIX ""
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(librw_skeleton
|
target_link_libraries(librw_skeleton
|
||||||
PUBLIC
|
PUBLIC
|
||||||
librw
|
librw
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(librw_skeleton
|
target_include_directories(librw_skeleton
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT LIBRW_PLATFORM_PS2 AND NOT LIBRW_PLATFORM_NULL)
|
if(NOT LIBRW_PLATFORM_PS2 AND NOT LIBRW_PLATFORM_NULL)
|
||||||
add_subdirectory(imgui)
|
add_subdirectory(imgui)
|
||||||
@ -29,13 +29,13 @@ if(LIBRW_INSTALL)
|
|||||||
target_include_directories(librw_skeleton
|
target_include_directories(librw_skeleton
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<INSTALL_INTERFACE:${LIBRW_INSTALL_INCLUDEDIR}/skeleton>
|
$<INSTALL_INTERFACE:${LIBRW_INSTALL_INCLUDEDIR}/skeleton>
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
skeleton.h
|
skeleton.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/skeleton"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/skeleton"
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS librw_skeleton
|
TARGETS librw_skeleton
|
||||||
@ -43,5 +43,5 @@ if(LIBRW_INSTALL)
|
|||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -12,17 +12,17 @@ add_library(librw_skeleton_imgui
|
|||||||
stb_rect_pack.h
|
stb_rect_pack.h
|
||||||
stb_textedit.h
|
stb_textedit.h
|
||||||
stb_truetype.h
|
stb_truetype.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(librw_skeleton_imgui
|
set_target_properties(librw_skeleton_imgui
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PREFIX ""
|
PREFIX ""
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(librw_skeleton_imgui
|
target_link_libraries(librw_skeleton_imgui
|
||||||
PUBLIC
|
PUBLIC
|
||||||
librw_skeleton
|
librw_skeleton
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LIBRW_INSTALL)
|
if(LIBRW_INSTALL)
|
||||||
install(
|
install(
|
||||||
@ -34,7 +34,7 @@ if(LIBRW_INSTALL)
|
|||||||
ImGuizmo.h
|
ImGuizmo.h
|
||||||
stb_textedit.h
|
stb_textedit.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/skeleton/imgui"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/skeleton/imgui"
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS librw_skeleton_imgui
|
TARGETS librw_skeleton_imgui
|
||||||
@ -42,5 +42,5 @@ if(LIBRW_INSTALL)
|
|||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -91,39 +91,46 @@ add_library(librw
|
|||||||
ps2/rwps2.h
|
ps2/rwps2.h
|
||||||
ps2/rwps2impl.h
|
ps2/rwps2impl.h
|
||||||
ps2/rwps2plg.h
|
ps2/rwps2plg.h
|
||||||
)
|
)
|
||||||
add_library(librw::librw ALIAS librw)
|
add_library(librw::librw ALIAS librw)
|
||||||
|
|
||||||
target_include_directories(librw
|
target_include_directories(librw
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(librw
|
target_compile_definitions(librw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
LODEPNG_NO_COMPILE_CPP
|
||||||
"$<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>"
|
"$<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>"
|
||||||
PUBLIC
|
PUBLIC
|
||||||
"RW_${LIBRW_PLATFORM}"
|
"RW_${LIBRW_PLATFORM}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
|
target_link_libraries(librw
|
||||||
|
PRIVATE
|
||||||
|
m
|
||||||
|
)
|
||||||
|
endif()
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||||
target_compile_options(librw
|
target_compile_options(librw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"-Wall"
|
"-Wall"
|
||||||
)
|
)
|
||||||
if (NOT LIBRW_PLATFORM_PS2)
|
if (NOT LIBRW_PLATFORM_PS2)
|
||||||
target_compile_options(librw
|
target_compile_options(librw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"-Wextra"
|
"-Wextra"
|
||||||
"-Wdouble-promotion"
|
"-Wdouble-promotion"
|
||||||
"-Wpedantic"
|
"-Wpedantic"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
target_compile_options(librw
|
target_compile_options(librw
|
||||||
PUBLIC
|
PUBLIC
|
||||||
/wd4996 /wd4244
|
/wd4996 /wd4244
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(librw
|
set_target_properties(librw
|
||||||
@ -135,10 +142,7 @@ set_target_properties(librw
|
|||||||
CXX_EXTENSIONS OFF
|
CXX_EXTENSIONS OFF
|
||||||
CXX_STANDARD_REQUIRED ON
|
CXX_STANDARD_REQUIRED ON
|
||||||
PREFIX ""
|
PREFIX ""
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LIBRW_PLATFORM_GL3)
|
|
||||||
|
|
||||||
|
|
||||||
if(LIBRW_PLATFORM_GL3)
|
if(LIBRW_PLATFORM_GL3)
|
||||||
set(OpenGL_GL_PREFERENCE GLVND)
|
set(OpenGL_GL_PREFERENCE GLVND)
|
||||||
@ -149,7 +153,7 @@ if(LIBRW_PLATFORM_GL3)
|
|||||||
PUBLIC
|
PUBLIC
|
||||||
OpenGL::GL
|
OpenGL::GL
|
||||||
GLEW::GLEW
|
GLEW::GLEW
|
||||||
)
|
)
|
||||||
if (LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
if (LIBRW_GL3_GFXLIB STREQUAL "GLFW")
|
||||||
find_package(glfw3 REQUIRED)
|
find_package(glfw3 REQUIRED)
|
||||||
target_link_libraries(librw
|
target_link_libraries(librw
|
||||||
@ -162,29 +166,34 @@ if(LIBRW_PLATFORM_GL3)
|
|||||||
target_link_libraries(librw
|
target_link_libraries(librw
|
||||||
PUBLIC
|
PUBLIC
|
||||||
SDL2::SDL2
|
SDL2::SDL2
|
||||||
|
)
|
||||||
|
if(TARGET SDL2::SDL2main)
|
||||||
|
target_link_libraries(librw
|
||||||
|
PUBLIC
|
||||||
|
SDL2::SDL2main
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
elseif(LIBRW_PLATFORM_D3D9)
|
elseif(LIBRW_PLATFORM_D3D9)
|
||||||
target_link_libraries(librw
|
target_link_libraries(librw
|
||||||
PUBLIC
|
PUBLIC
|
||||||
d3d9
|
d3d9
|
||||||
xinput
|
xinput
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LIBRW_INSTALL)
|
if(LIBRW_INSTALL)
|
||||||
target_include_directories(librw
|
target_include_directories(librw
|
||||||
INTERFACE
|
INTERFACE
|
||||||
$<INSTALL_INTERFACE:${LIBRW_INSTALL_INCLUDEDIR}>
|
$<INSTALL_INTERFACE:${LIBRW_INSTALL_INCLUDEDIR}>
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
"${PROJECT_SOURCE_DIR}/args.h"
|
"${PROJECT_SOURCE_DIR}/args.h"
|
||||||
"${PROJECT_SOURCE_DIR}/rw.h"
|
"${PROJECT_SOURCE_DIR}/rw.h"
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
base.err
|
base.err
|
||||||
@ -200,7 +209,7 @@ if(LIBRW_INSTALL)
|
|||||||
rwplugins.h
|
rwplugins.h
|
||||||
rwuserdata.h
|
rwuserdata.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
d3d/rwxbox.h
|
d3d/rwxbox.h
|
||||||
@ -208,20 +217,20 @@ if(LIBRW_INSTALL)
|
|||||||
d3d/rwd3d8.h
|
d3d/rwd3d8.h
|
||||||
d3d/rwd3d9.h
|
d3d/rwd3d9.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/d3d"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/d3d"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
ps2/rwps2.h
|
ps2/rwps2.h
|
||||||
ps2/rwps2plg.h
|
ps2/rwps2plg.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/ps2"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/ps2"
|
||||||
)
|
)
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
gl/rwwdgl.h
|
gl/rwwdgl.h
|
||||||
gl/rwgl3.h
|
gl/rwgl3.h
|
||||||
gl/rwgl3plg.h
|
gl/rwgl3plg.h
|
||||||
gl/rwgl3shader.h
|
gl/rwgl3shader.h
|
||||||
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/gl"
|
DESTINATION "${LIBRW_INSTALL_INCLUDEDIR}/src/gl"
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
@ -230,5 +239,5 @@ if(LIBRW_INSTALL)
|
|||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
add_executable(dumprwtree
|
add_executable(dumprwtree
|
||||||
dumprwtree.cpp
|
dumprwtree.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(dumprwtree
|
target_link_libraries(dumprwtree
|
||||||
PUBLIC
|
PUBLIC
|
||||||
librw
|
librw
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LIBRW_INSTALL)
|
if(LIBRW_INSTALL)
|
||||||
install(TARGETS dumprwtree
|
install(TARGETS dumprwtree
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
add_executable(imguitest WIN32
|
add_executable(imguitest WIN32
|
||||||
main.cpp
|
main.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(imguitest
|
target_link_libraries(imguitest
|
||||||
PUBLIC
|
PUBLIC
|
||||||
librw
|
librw
|
||||||
librw_skeleton_imgui
|
librw_skeleton_imgui
|
||||||
)
|
)
|
||||||
|
|
||||||
if(LIBRW_INSTALL)
|
if(LIBRW_INSTALL)
|
||||||
install(TARGETS imguitest
|
install(TARGETS imguitest
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
25
tools/ps2test/CMakeLists.txt
Normal file
25
tools/ps2test/CMakeLists.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
add_executable(ps2test
|
||||||
|
gs.h
|
||||||
|
main.cpp
|
||||||
|
mem.h
|
||||||
|
ps2.h
|
||||||
|
vu/defaultpipe.dsm
|
||||||
|
vu/skinpipe.dsm
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(ps2test
|
||||||
|
PUBLIC
|
||||||
|
librw
|
||||||
|
kernel
|
||||||
|
)
|
||||||
|
|
||||||
|
add_erl_executable(PS2TEST_ERL ps2test)
|
||||||
|
|
||||||
|
if(LIBRW_INSTALL)
|
||||||
|
install(TARGETS ps2test
|
||||||
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
)
|
||||||
|
install(FILES "${PS2TEST_ERL}"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
|
)
|
||||||
|
endif()
|
Loading…
Reference in New Issue
Block a user