mirror of
https://github.com/aap/librw.git
synced 2025-12-20 01:19:51 +00:00
cmake: add playstation2 support
This commit is contained in:
87
cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake
Normal file
87
cmake/ps2toolchain/CMakeDetermineDSMCompiler.cmake
Normal file
@@ -0,0 +1,87 @@
|
||||
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
|
||||
|
||||
if (NOT CMAKE_DSM_COMPILER)
|
||||
message(FATAL_ERROR "Need CMAKE_DSM_COMPILER set")
|
||||
endif()
|
||||
|
||||
_cmake_find_compiler_path(DSM)
|
||||
mark_as_advanced(CMAKE_DSM_COMPILER)
|
||||
|
||||
if (NOT CMAKE_DSM_COMPILER_ID)
|
||||
# Table of per-vendor compiler id flags with expected output.
|
||||
list(APPEND CMAKE_DSM_COMPILER_ID_VENDORS GNU )
|
||||
set(CMAKE_DSM_COMPILER_ID_VENDOR_FLAGS_GNU "--version")
|
||||
set(CMAKE_DSM_COMPILER_ID_VENDOR_REGEX_GNU "(GNU assembler)|(GCC)|(Free Software Foundation)")
|
||||
|
||||
include(CMakeDetermineCompilerId)
|
||||
cmake_determine_compiler_id_vendor(DSM "")
|
||||
|
||||
endif()
|
||||
|
||||
if (NOT _CMAKE_TOOLCHAIN_LOCATION)
|
||||
get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_DSM_COMPILER}" PATH)
|
||||
endif()
|
||||
|
||||
if (CMAKE_DSM_COMPILER_ID)
|
||||
if (CMAKE_DSM_COMPILER_VERSION)
|
||||
set(_version " ${CMAKE_DSM_COMPILER_VERSION}")
|
||||
else()
|
||||
set(_version "")
|
||||
endif()
|
||||
message(STATUS "The DSM compiler identification is ${CMAKE_DSM_COMPILER_ID}${_version}")
|
||||
unset(_version)
|
||||
else()
|
||||
message(STATUS "The DSM compiler identification is unknown")
|
||||
endif()
|
||||
|
||||
if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_DSM_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+1)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
set(_CMAKE_PROCESSING_LANGUAGE "DSM")
|
||||
find_program(CMAKE_DSM_COMPILER_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DSM_COMPILER_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DSM_COMPILER_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DSM_COMPILER_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DSM_COMPILER_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DSM_COMPILER_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
|
||||
unset(_CMAKE_PROCESSING_LANGUAGE)
|
||||
|
||||
set(CMAKE_DSM_COMPILER_ENV_VAR "DSM")
|
||||
|
||||
if (CMAKE_DSM_COMPILER)
|
||||
message(STATUS "Found DSM assembler: ${CMAKE_DSM_COMPILER}")
|
||||
else()
|
||||
message(STATUS "Didn't find assembler")
|
||||
endif()
|
||||
|
||||
foreach(_var
|
||||
COMPILER
|
||||
COMPILER_ID
|
||||
COMPILER_ARG1
|
||||
COMPILER_ENV_VAR
|
||||
COMPILER_AR
|
||||
COMPILER_RANLIB
|
||||
COMPILER_VERSION
|
||||
)
|
||||
set(_CMAKE_DSM_${_var} "${CMAKE_DSM_${_var}}")
|
||||
endforeach()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeDSMCompiler.cmake.in"
|
||||
"${CMAKE_PLATFORM_INFO_DIR}/CMakeDSMCompiler.cmake" @ONLY)
|
||||
|
||||
foreach(_var
|
||||
COMPILER
|
||||
COMPILER_ID
|
||||
COMPILER_ARG1
|
||||
COMPILER_ENV_VAR
|
||||
COMPILER_AR
|
||||
COMPILER_VERSION
|
||||
)
|
||||
unset(_CMAKE_DSM_${_var})
|
||||
endforeach()
|
||||
Reference in New Issue
Block a user