Implement FindPSXSDK.cmake
This commit is contained in:
parent
8f3403dffa
commit
127a21a34f
|
@ -0,0 +1,94 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindPSXSDK
|
||||
-----------
|
||||
|
||||
Find PSXSDK (an open source software development kit for the original
|
||||
Sony PlayStation) libraries and header files.
|
||||
|
||||
Imported targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following :prop_tgt:`IMPORTED` targets:
|
||||
|
||||
``PSXSDK::PSXSDK``,
|
||||
The PSXSDK `psx` library, if found.
|
||||
|
||||
Result variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module will set the following variables in your project:
|
||||
|
||||
``PSXSDK_FOUND``
|
||||
true if PSXSDK libraries and header files were found.
|
||||
``PSXSDK_VERSION``
|
||||
PSXSDK release version
|
||||
``PSXSDK_INCLUDE_DIRS``
|
||||
the directory containing the PSXSDK headers; note
|
||||
``PSXSDK_INCLUDE_DIRS`` is also required
|
||||
``PSXSDK_LIBRARIES``
|
||||
PSXSDK libraries to be linked; note ``PSXSDK_LIBRARIES`` is also
|
||||
required
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
find_path(PSXSDK_INCLUDE_DIRS
|
||||
NAMES
|
||||
huff.h
|
||||
meidogte.h
|
||||
meidogte_inline.h
|
||||
memcard.h
|
||||
modplay.h
|
||||
psxbios.h
|
||||
psxcdrom.h
|
||||
psxgpu.h
|
||||
psxgte.h
|
||||
psx.h
|
||||
psxpad.h
|
||||
psxsio.h
|
||||
psxspu.h
|
||||
psxutil.h
|
||||
runexe.h
|
||||
search.h
|
||||
HINTS
|
||||
ENV PSXSDK_PATH
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
find_library(PSXSDK_LIBRARIES
|
||||
NAMES psx
|
||||
HINTS
|
||||
ENV PSXSDK_PATH
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
if(PSXSDK_INCLUDE_DIRS AND EXISTS "${PSXSDK_INCLUDE_DIRS}/psx.h")
|
||||
set(version_regex "^#define[ \t]+PSXSDK_VERSION_STRING[ \t]+\"([0-9\.]+)\"$")
|
||||
file(STRINGS "${PSXSDK_INCLUDE_DIRS}/psx.h" PSXSDK_VERSION_LINE REGEX ${version_regex})
|
||||
string(REGEX REPLACE ${version_regex} "\\1" PSXSDK_VERSION "${PSXSDK_VERSION_LINE}")
|
||||
unset(PSXSDK_VERSION_LINE)
|
||||
unset(version_regex)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(PSXSDK
|
||||
REQUIRED_VARS
|
||||
PSXSDK_LIBRARIES PSXSDK_INCLUDE_DIRS
|
||||
VERSION_VAR
|
||||
PSXSDK_VERSION
|
||||
)
|
||||
|
||||
if(PSXSDK_FOUND)
|
||||
if(NOT TARGET PSXSDK::PSXSDK)
|
||||
add_library(PSXSDK::PSXSDK INTERFACE IMPORTED)
|
||||
target_include_directories(PSXSDK::PSXSDK
|
||||
INTERFACE "${PSXSDK_INCLUDE_DIRS}")
|
||||
set_target_properties(PSXSDK::PSXSDK PROPERTIES
|
||||
IMPORTED_LOCATION "${PSXSDK_LIBRARIES}")
|
||||
endif()
|
||||
endif()
|
Loading…
Reference in New Issue