2012-11-26 19:03:44 -03:00
# vim:noexpandtab:
2022-01-17 11:13:24 -08:00
cmake_minimum_required ( VERSION 3.8 )
2012-11-18 13:00:27 -03:00
project ( PPSSPP )
2021-02-17 00:42:31 -05:00
enable_testing ( )
2016-12-05 16:51:28 +01:00
#This is supposed to work but doesn't!
2018-10-28 11:33:25 -07:00
if ( NOT ANDROID )
2022-01-17 11:13:24 -08:00
set ( CMAKE_CXX_STANDARD 17 )
2018-10-28 11:33:25 -07:00
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
2017-03-16 10:16:29 +01:00
endif ( )
2016-12-05 16:51:28 +01:00
2014-06-11 23:02:56 +10:00
enable_language ( ASM )
2012-11-18 13:00:27 -03:00
2016-12-05 16:51:28 +01:00
add_definitions ( -D__STDC_CONSTANT_MACROS )
2013-12-13 11:04:22 +01:00
2021-12-11 10:45:05 -08:00
# Include AppleClang and Clang.
if ( ${ CMAKE_CXX_COMPILER_ID } MATCHES "Clang" )
2018-10-28 11:33:25 -07:00
set ( CLANG ON )
message ( "Clang enabled" )
2017-03-16 10:16:29 +01:00
endif ( )
2018-06-15 21:29:56 +01:00
if ( FORCED_CPU )
2018-10-28 11:33:25 -07:00
message ( "Detected CPU (${CMAKE_SYSTEM_PROCESSOR}) overridden as: ${FORCED_CPU}" )
set ( CMAKE_SYSTEM_PROCESSOR ${ FORCED_CPU } )
2018-06-15 21:29:56 +01:00
endif ( )
2014-06-18 16:15:47 +10:00
# Detect CPU from CMAKE configuration. Toolchains should set this up
2014-11-14 01:41:30 +10:00
if ( CMAKE_SYSTEM_PROCESSOR )
2021-09-12 16:54:40 +03:00
if ( CMAKE_OSX_ARCHITECTURES )
if ( "${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*86.*" )
set ( X86_DEVICE ON )
set ( X86_64_DEVICE ON )
endif ( )
if ( "${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64" )
set ( ARM64 ON )
endif ( )
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^aarch64" )
2020-12-02 00:23:45 +01:00
set ( ARM64 ON )
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^arm64" )
# M1 Mac
set ( ARM64 ON )
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^arm" )
message ( "ARM_DEVICE is a go" )
2018-12-03 18:35:48 -08:00
set ( ARM_DEVICE ON )
if ( UNIX AND NOT APPLE )
execute_process ( COMMAND cat /proc/cpuinfo OUTPUT_VARIABLE OUTSTR )
string ( FIND "${OUTSTR}" "ODROID-XU" pos )
if ( NOT ( pos LESS 0 ) )
add_compile_options ( -mfloat-abi=hard -marm -mtune=cortex-a15.cortex-a7 -mcpu=cortex-a15 -fomit-frame-pointer )
set ( ARM_NO_VULKAN ON )
2018-09-07 15:34:17 +00:00
endif ( )
2018-12-03 18:35:48 -08:00
endif ( )
2014-11-14 18:07:29 +10:00
if ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^armv7" )
2018-12-03 18:35:48 -08:00
set ( ARMV7_DEVICE ON )
2018-09-20 15:06:49 +00:00
add_compile_options ( -mfpu=neon )
2016-12-05 16:51:28 +01:00
# Horrifying workaround for bug in android cmake stuff for asm files
2018-10-28 11:33:25 -07:00
if ( ANDROID )
2016-12-05 16:51:28 +01:00
set ( CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -target armv7a-none-linux-android" )
endif ( )
2014-11-14 18:07:29 +10:00
endif ( )
2016-12-05 16:51:28 +01:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^amd64" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^x86_64" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^AMD64" )
2018-12-03 18:35:48 -08:00
set ( X86_DEVICE ON )
set ( X86_64_DEVICE ON )
2016-12-05 16:51:28 +01:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^x86" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "i.86" )
2018-12-03 18:35:48 -08:00
set ( X86_DEVICE ON )
2014-11-14 01:41:30 +10:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^mips" )
2018-12-03 18:35:48 -08:00
set ( MIPS_DEVICE ON )
2021-06-25 04:56:43 +10:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^riscv64" )
set ( RISCV64_DEVICE ON )
2023-08-07 00:14:56 +08:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^loongarch64" )
set ( LOONGARCH64_DEVICE ON )
2016-12-05 16:51:28 +01:00
else ( )
2018-10-28 11:33:25 -07:00
message ( "Unknown CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}" )
2014-11-14 01:41:30 +10:00
endif ( )
2014-11-11 22:55:49 +10:00
endif ( )
2013-03-22 09:15:00 +02:00
2018-03-23 03:18:13 +01:00
# the libraries in the ffmpeg/ directory are not compatible with mingw
if ( MINGW AND NOT DEFINED USE_SYSTEM_FFMPEG )
2018-03-24 13:39:05 +01:00
set ( USE_SYSTEM_FFMPEG ON )
2018-03-23 03:18:13 +01:00
endif ( )
2017-12-05 13:23:13 +01:00
if ( NOT ANDROID AND NOT IOS )
2019-01-25 15:38:03 +00:00
if ( ARM_DEVICE OR SIMULATOR )
2017-03-13 23:45:25 +01:00
set ( USING_EGL ON )
endif ( )
2014-06-18 16:15:47 +10:00
endif ( )
2012-11-18 13:00:27 -03:00
2022-04-02 16:34:13 -07:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Linux" AND NOT USE_LIBNX )
2013-06-21 15:33:29 +10:00
set ( LINUX ON )
2014-06-11 23:02:56 +10:00
add_definitions ( -D__STDC_CONSTANT_MACROS )
2013-06-21 15:33:29 +10:00
endif ( )
2013-06-15 14:50:47 +02:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Darwin" )
set ( MACOSX ON )
2020-12-02 00:23:45 +01:00
set ( USING_EGL OFF )
2013-06-15 14:50:47 +02:00
endif ( )
2016-10-11 03:27:38 +02:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Android" )
2017-12-13 22:58:45 +01:00
set ( ANDROID ON )
endif ( )
2020-01-19 17:34:21 +08:00
# We only support Vulkan on Unix, macOS (by MoltenVK), Android and Windows.
if ( ANDROID OR WIN32 OR ( UNIX AND NOT ARM_NO_VULKAN ) )
2018-09-07 15:34:17 +00:00
set ( VULKAN ON )
2016-10-11 03:27:38 +02:00
endif ( )
2023-05-05 17:17:45 -04:00
# Default to bundled SDL2 on macOS, system SDL2 elsewhere.
if ( APPLE AND NOT IOS )
set ( DEFAULT_USE_SYSTEM_LIBSDL2 OFF )
else ( )
set ( DEFAULT_USE_SYSTEM_LIBSDL2 ON )
endif ( )
2020-12-02 22:46:56 +01:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /cmake/Modules )
2021-09-12 16:54:40 +03:00
if ( NOT IOS )
2020-12-02 22:46:56 +01:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /cmake/sdl )
endif ( )
include ( ccache )
2020-12-05 17:49:21 -08:00
include ( GNUInstallDirs )
2020-12-02 22:46:56 +01:00
2020-12-05 17:49:21 -08:00
add_definitions ( -DASSETS_DIR= "${CMAKE_INSTALL_FULL_DATADIR}/ppsspp/assets/" )
2020-12-02 22:46:56 +01:00
2022-07-06 21:38:41 +02:00
if ( OPENXR )
add_definitions ( -DOPENXR )
2022-07-08 14:44:20 +02:00
add_library ( openxr SHARED IMPORTED )
2023-02-08 17:26:36 +01:00
set_property ( TARGET openxr PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/ext/openxr/stub/arm64-v8a/libopenxr_loader.so" )
message ( "OpenXR enabled" )
2022-07-06 21:38:41 +02:00
endif ( )
2017-03-16 10:42:15 +01:00
if ( GOLD )
add_definitions ( -DGOLD )
2017-03-17 11:55:14 +01:00
message ( "Gold Build" )
else ( )
message ( "Normal Build" )
2017-03-16 10:42:15 +01:00
endif ( )
2012-11-18 13:00:27 -03:00
# User-editable options (go into CMakeCache.txt)
2014-05-31 01:22:11 +10:00
# :: Processors
2018-12-03 18:35:48 -08:00
option ( ARMV7 "Set to ON if targeting an ARMv7 processor" ${ ARMV7_DEVICE } )
option ( ARM "Set to ON if targeting an ARM processor" ${ ARM_DEVICE } )
option ( MIPS "Set to ON if targeting a MIPS processor" ${ MIPS_DEVICE } )
2021-06-25 04:56:43 +10:00
option ( RISCV64 "Set to ON if targeting a RISCV64 processor" ${ RISCV64_DEVICE } )
2023-08-07 00:14:56 +08:00
option ( LOONGARCH64 "Set to ON if targeting a LOONGARCH64 processor" ${ LOONGARCH64_DEVICE } )
2018-12-03 18:35:48 -08:00
option ( X86 "Set to ON if targeting an X86 processor" ${ X86_DEVICE } )
option ( X86_64 "Set to ON if targeting an X86_64 processor" ${ X86_64_DEVICE } )
2014-05-31 01:22:11 +10:00
# :: Environments
option ( USING_EGL "Set to ON if target environment uses EGL" ${ USING_EGL } )
option ( USING_FBDEV "Set to ON if target environment uses fbdev (eg. Pandora)" ${ USING_FBDEV } )
2012-11-26 12:41:57 +10:00
option ( USING_GLES2 "Set to ON if target device uses OpenGL ES 2.0" ${ USING_GLES2 } )
2018-06-27 12:48:59 +01:00
option ( USING_X11_VULKAN "Set to OFF if target environment doesn't use X11 for Vulkan" ON )
2023-09-19 23:17:54 -06:00
option ( USE_WAYLAND_WSI "Enable or disable Wayland WSI support for Vulkan" ON )
2020-11-30 20:31:14 -05:00
option ( USE_VULKAN_DISPLAY_KHR "Enable or disable full screen display of Vulkan" ${ USE_VULKAN_DISPLAY_KHR } )
2014-05-31 01:22:11 +10:00
# :: Frontends
2012-12-16 21:17:13 +10:00
option ( USING_QT_UI "Set to ON if you wish to use the Qt frontend wrapper" ${ USING_QT_UI } )
2016-10-09 22:10:51 +02:00
option ( MOBILE_DEVICE "Set to ON when targeting a mobile device" ${ MOBILE_DEVICE } )
2012-11-18 13:00:27 -03:00
option ( HEADLESS "Set to OFF to not generate the PPSSPPHeadless target" ${ HEADLESS } )
2014-01-11 12:18:57 +01:00
option ( UNITTEST "Set to ON to generate the unittest target" ${ UNITTEST } )
2013-11-26 12:18:15 +10:00
option ( SIMULATOR "Set to ON when targeting an x86 simulator of an ARM platform" ${ SIMULATOR } )
2018-03-24 12:44:53 +01:00
option ( LIBRETRO "Set to ON to generate the libretro target" OFF )
2014-05-31 01:22:11 +10:00
# :: Options
2022-04-02 16:34:13 -07:00
option ( USE_LIBNX "Set to ON to build for Switch(libnx)" OFF )
2018-12-03 18:35:48 -08:00
option ( USE_FFMPEG "Build with FFMPEG support" ON )
2018-11-10 07:39:27 -08:00
option ( USE_DISCORD "Build with Discord support" ON )
2020-01-18 02:32:09 +07:00
option ( USE_MINIUPNPC "Build with miniUPnPc support" ON )
2022-12-17 10:08:46 -08:00
option ( USE_ARMIPS "Build with armips support in API/debugger" ON )
2018-08-26 12:59:02 -07:00
option ( USE_SYSTEM_SNAPPY "Dynamically link against system snappy" ${ USE_SYSTEM_SNAPPY } )
2015-06-01 15:29:54 +02:00
option ( USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${ USE_SYSTEM_FFMPEG } )
2018-02-07 12:09:06 +01:00
option ( USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${ USE_SYSTEM_LIBZIP } )
2023-05-05 17:17:45 -04:00
option ( USE_SYSTEM_LIBSDL2 "Dynamically link against system SDL2" ${ DEFAULT_USE_SYSTEM_LIBSDL2 } )
2021-09-12 16:54:40 +03:00
option ( USE_SYSTEM_LIBPNG "Dynamically link against system libpng" ON )
2021-10-28 16:30:05 +08:00
option ( USE_SYSTEM_ZSTD "Dynamically link against system zstd" ${ USE_SYSTEM_ZSTD } )
2021-11-30 11:29:28 +08:00
option ( USE_SYSTEM_MINIUPNPC "Dynamically link against system miniUPnPc" ${ USE_SYSTEM_MINIUPNPC } )
2021-01-29 23:08:20 +00:00
option ( USE_ASAN "Use address sanitizer" OFF )
2021-01-29 23:06:00 +00:00
option ( USE_UBSAN "Use undefined behaviour sanitizer" OFF )
2012-11-18 13:00:27 -03:00
2017-12-27 15:28:17 +01:00
if ( UNIX AND NOT ( APPLE OR ANDROID ) AND VULKAN )
2018-06-19 21:44:55 +01:00
if ( USING_X11_VULKAN )
message ( "Using X11 for Vulkan" )
2023-06-18 19:47:00 -04:00
find_package ( X11 )
include_directories ( ${ X11_Xlib_INCLUDE_PATH } )
2018-06-19 21:44:55 +01:00
add_definitions ( -DVK_USE_PLATFORM_XLIB_KHR )
else ( )
message ( "NOT using X11 for Vulkan" )
endif ( )
2020-11-30 20:31:14 -05:00
2017-12-26 15:00:40 +03:00
# add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
2022-10-18 08:02:50 +02:00
find_package ( Wayland )
if ( NOT WAYLAND_FOUND )
message ( STATUS "Could not find Wayland libraries, disabling Wayland WSI support for Vulkan." )
2023-09-19 02:07:46 -06:00
elseif ( USE_WAYLAND_WSI )
2022-10-18 08:02:50 +02:00
include_directories ( ${ WAYLAND_INCLUDE_DIR } )
add_definitions ( -DVK_USE_PLATFORM_WAYLAND_KHR )
2017-12-26 15:00:40 +03:00
endif ( )
2020-11-30 20:31:14 -05:00
if ( USE_VULKAN_DISPLAY_KHR )
message ( STATUS "Using experimental full-screen display for Vulkan." )
add_definitions ( -DVK_USE_PLATFORM_DISPLAY_KHR )
endif ( )
2017-12-26 15:00:40 +03:00
endif ( )
2017-12-13 22:58:45 +01:00
2018-03-24 12:44:53 +01:00
if ( LIBRETRO )
add_definitions ( -D__LIBRETRO__ )
add_definitions ( -DGLEW_NO_GLU )
2018-03-24 13:39:05 +01:00
if ( NOT MSVC )
add_compile_options ( -fPIC )
endif ( )
2018-03-24 12:44:53 +01:00
endif ( )
2013-11-29 23:24:12 +10:00
if ( ANDROID )
2016-10-09 22:10:51 +02:00
set ( MOBILE_DEVICE ON )
set ( USING_GLES2 ON )
2018-03-28 18:16:56 -05:00
endif ( )
if ( ANDROID AND NOT LIBRETRO )
set ( CoreLibName ppsspp_jni )
set ( CoreLinkType SHARED )
2012-11-18 13:00:27 -03:00
else ( )
2012-11-26 12:41:57 +10:00
set ( CoreLibName Core )
set ( CoreLinkType STATIC )
2012-11-18 13:00:27 -03:00
endif ( )
2023-10-08 21:16:47 +02:00
if ( NOT ANDROID AND NOT WIN32 AND ( NOT APPLE OR IOS ) )
2023-07-20 16:01:51 +02:00
set ( HTTPS_NOT_AVAILABLE ON )
endif ( )
# Made this flag negative because it's hopefully quite temporary and didn't
# want to have to update all build systems.
if ( HTTPS_NOT_AVAILABLE )
add_definitions ( -DHTTPS_NOT_AVAILABLE )
endif ( )
2021-08-13 10:05:43 +07:00
# Work around for some misfeature of the current glslang build system
2020-03-03 22:46:26 +01:00
include_directories ( ext/glslang )
2020-10-05 09:13:35 +02:00
# Not sure if this is the best way - what about system glew?
# Anyway, glew will be going away anyway.
include_directories ( ext/glew )
2020-03-03 22:46:26 +01:00
2022-08-16 17:39:54 +02:00
if ( OPENXR )
set ( OPENGL_LIBRARIES GLESv3 EGL )
elseif ( NOT OPENGL_LIBRARIES AND USING_GLES2 )
2018-09-25 12:19:23 +00:00
set ( OPENGL_LIBRARIES GLESv2 EGL )
2014-06-18 16:15:47 +10:00
endif ( )
2018-11-06 14:31:44 +01:00
if ( NOT OPENGL_LIBRARIES )
2021-02-16 18:14:57 -05:00
if ( POLICY CMP0072 )
cmake_policy ( SET CMP0072 NEW )
endif ( )
2018-11-06 14:31:44 +01:00
find_package ( OpenGL REQUIRED )
endif ( )
2017-12-04 16:09:06 -02:00
if ( USING_EGL )
2017-12-20 03:38:01 +00:00
if ( NOT EGL_LIBRARIES )
set ( EGL_LIBRARIES EGL )
endif ( )
set ( OPENGL_LIBRARIES ${ OPENGL_LIBRARIES } ${ EGL_LIBRARIES } )
2017-12-04 16:09:06 -02:00
endif ( )
2023-04-24 14:44:07 +02:00
if ( NOT LIBRETRO AND NOT IOS AND NOT MACOSX )
2019-11-10 13:47:15 -05:00
find_package ( SDL2 )
2023-07-31 19:02:53 -06:00
find_package ( SDL2_ttf )
2023-07-25 21:57:39 +08:00
find_package ( Fontconfig )
2023-08-03 22:02:24 +08:00
# TODO: this can be removed once CI supports newer SDL2_ttf
if ( NOT SDL2_ttf_FOUND )
find_package ( PkgConfig )
if ( PkgConfig_FOUND )
pkg_check_modules ( SDL2_ttf_PKGCONFIG IMPORTED_TARGET SDL2_ttf )
endif ( )
endif ( )
2019-11-10 13:47:15 -05:00
endif ( )
2023-04-24 14:44:07 +02:00
if ( MACOSX AND NOT IOS )
2023-05-05 17:17:45 -04:00
if ( USE_SYSTEM_LIBSDL2 )
find_package ( SDL2 )
2023-07-31 19:02:53 -06:00
find_package ( SDL2_ttf )
2023-05-05 17:17:45 -04:00
else ( )
find_library ( SDL2Fwk SDL2 REQUIRED PATHS SDL/macOS )
message ( STATUS "found SDL2Fwk=${SDL2Fwk}" )
add_definitions ( -DHAVE_SYSCTLBYNAME )
endif ( )
2023-04-24 14:44:07 +02:00
endif ( )
2012-11-18 13:00:27 -03:00
include ( FindThreads )
2014-06-18 16:15:47 +10:00
2012-11-26 19:06:18 -03:00
if ( APPLE )
find_library ( COCOA_LIBRARY Cocoa )
2023-01-27 11:19:29 +03:00
find_library ( IOKIT_LIBRARY IOKit )
2020-01-19 17:34:21 +08:00
find_library ( QUARTZ_CORE_LIBRARY QuartzCore )
2012-11-26 19:06:18 -03:00
endif ( )
2012-11-18 13:00:27 -03:00
include_directories ( "${CMAKE_SOURCE_DIR}" )
2014-05-31 01:22:11 +10:00
if ( USING_EGL )
add_definitions ( -DUSING_EGL )
2013-01-13 01:15:46 +10:00
endif ( )
2014-05-31 01:22:11 +10:00
if ( USING_FBDEV )
2021-03-17 14:33:03 +00:00
add_definitions ( -DUSING_FBDEV -DEGL_NO_X11 )
2012-11-18 13:00:27 -03:00
endif ( )
2012-12-16 21:17:13 +10:00
if ( USING_GLES2 )
2012-11-26 12:41:57 +10:00
add_definitions ( -DUSING_GLES2 )
2012-11-18 13:00:27 -03:00
endif ( )
2014-02-08 10:29:22 -08:00
if ( MOBILE_DEVICE )
add_definitions ( -DMOBILE_DEVICE )
endif ( )
2012-11-18 13:00:27 -03:00
2018-10-28 11:33:25 -07:00
if ( NOT CMAKE_BUILD_TYPE )
2014-06-11 23:28:51 +10:00
message ( STATUS "No build type selected, default to Release" )
set ( CMAKE_BUILD_TYPE "Release" )
endif ( )
2016-12-05 16:51:28 +01:00
message ( "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}" )
# Let's not use elseif here so we can catch dupes.
2014-07-06 23:50:48 +10:00
if ( ARMV7 )
2016-12-05 16:51:28 +01:00
message ( "Generating for ARMv7, ${CMAKE_BUILD_TYPE}" )
endif ( )
if ( ARM )
message ( "Generating for ARM, ${CMAKE_BUILD_TYPE}" )
endif ( )
if ( MIPS AND X86 )
message ( "Generating for MIPS in x86 mode, ${CMAKE_BUILD_TYPE}" )
endif ( )
if ( MIPS )
message ( "Generating for MIPS, ${CMAKE_BUILD_TYPE}" )
endif ( )
2021-06-25 04:56:43 +10:00
if ( RISCV64 )
message ( "Generating for RISCV64, ${CMAKE_BUILD_TYPE}" )
endif ( )
2023-08-07 00:14:56 +08:00
if ( LOONGARCH64 )
message ( "Generating for LOONGARCH64, ${CMAKE_BUILD_TYPE}" )
endif ( )
2016-12-05 16:51:28 +01:00
if ( X86 )
message ( "Generating for x86, ${CMAKE_BUILD_TYPE}" )
endif ( )
if ( X86_64 )
message ( "Generating for x86_64, ${CMAKE_BUILD_TYPE}" )
endif ( )
if ( ARM64 )
2017-03-13 23:45:25 +01:00
message ( "Generating for ARMv8, ${CMAKE_BUILD_TYPE}" )
2014-07-06 23:50:48 +10:00
endif ( )
2020-08-16 14:01:23 +02:00
# It looks like the flags for the selected build type are written to the cache after each run, which causes some of the operations
# below to keep expanding them with the same flags over and over on every run, leading to a rebuild of the majority of the files.
# To work around this, remember the initial state of the variables from the first run and reset the variables to that.
# TODO: Setting the attributes per target would probably be a better solution.
foreach ( LANGUAGE C CXX )
foreach ( BUILD_TYPE DEBUG MINSIZEREL RELEASE RELWITHDEBINFO )
set ( _CMAKE_ ${ LANGUAGE } _FLAGS_ ${ BUILD_TYPE } _INITIAL ${ CMAKE_${LANGUAGE } _FLAGS_ ${ BUILD_TYPE } } CACHE STRING "" )
set ( CMAKE_ ${ LANGUAGE } _FLAGS_ ${ BUILD_TYPE } ${ _CMAKE_${LANGUAGE } _FLAGS_ ${ BUILD_TYPE } _INITIAL} )
endforeach ( )
endforeach ( )
2012-11-26 12:41:57 +10:00
if ( NOT MSVC )
2021-06-04 20:30:57 -07:00
# NEON optimizations in libpng17 seem to cause PNG load errors, see #14485.
add_definitions ( -DPNG_ARM_NEON_OPT=0 )
2018-10-28 11:33:25 -07:00
if ( ANDROID )
2022-01-17 11:13:24 -08:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17" )
2017-03-16 10:16:29 +01:00
endif ( )
2018-10-28 11:33:25 -07:00
if ( CLANG )
2021-12-11 09:15:38 -08:00
add_definitions ( -Wno-nullability-completeness )
2021-12-11 09:41:12 -08:00
add_definitions ( -Wno-tautological-pointer-compare )
add_definitions ( -Wno-deprecated-register )
2017-03-13 23:45:25 +01:00
endif ( )
2017-03-15 15:56:06 +01:00
2021-01-29 23:08:20 +00:00
if ( USE_ASAN )
2018-01-31 14:22:38 +01:00
message ( "Address sanitizer enabled (DEBUG only)" )
2021-01-29 23:06:00 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address" )
2018-01-31 14:22:38 +01:00
set ( CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=address" )
2021-01-29 23:08:20 +00:00
add_definitions ( -DUSE_ASAN )
2018-01-31 14:22:38 +01:00
endif ( )
2021-01-29 23:06:00 +00:00
if ( USE_UBSAN )
message ( "Undefined behaviour sanitizer enabled (DEBUG only)" )
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=undefined" )
set ( CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=undefined" )
2021-01-29 23:29:54 +00:00
# UBSAN is a collection of sanitizers, including vtpr, which reqiuires RTTI.
# ext/glslang disables RTTI by default using the `ENABLE_RTTI` option.
# If RTTI is disabled, we must also disable the vtpr sanitizer.
if ( NOT ENABLE_RTTI )
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-sanitize=vptr" )
set ( CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-sanitize=vptr" )
endif ( )
2021-01-29 23:06:00 +00:00
endif ( )
2018-01-31 14:22:38 +01:00
2017-03-15 15:56:06 +01:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_DEBUG" )
set ( CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -D_NDEBUG" )
2021-01-17 10:43:21 +01:00
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -D_NDEBUG" )
2017-03-15 15:56:06 +01:00
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG" )
set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -D_DEBUG" )
set ( CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Os -D_NDEBUG" )
2021-01-17 10:43:21 +01:00
set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -D_NDEBUG" )
2017-03-15 15:56:06 +01:00
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG" )
2021-03-03 00:00:23 -08:00
2022-08-07 09:12:58 -04:00
# Enable checking printf-like format strings (also works for logging functions)
add_definitions ( -Wformat )
2012-11-26 13:25:14 +10:00
# Disable some warnings
add_definitions ( -Wno-multichar )
2016-12-05 16:51:28 +01:00
# Don't compile with strict aliasing, we're not 100% aliasing-safe
2018-03-23 03:18:13 +01:00
add_compile_options ( -fno-strict-aliasing )
2018-10-28 11:33:25 -07:00
if ( ${ CMAKE_C_COMPILER_ID } STREQUAL "Intel" )
2013-05-30 14:26:43 +02:00
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -parallel -fopenmp" )
endif ( )
2012-11-26 12:41:57 +10:00
2023-09-16 14:17:40 -04:00
add_definitions ( -fno-math-errno )
2017-03-16 10:16:29 +01:00
if ( X86 OR X86_64 )
2012-11-26 12:41:57 +10:00
# enable sse2 code generation
add_definitions ( -msse2 )
2023-03-22 09:51:16 -04:00
if ( NOT X86_64 AND NOT CLANG )
add_definitions ( -mfpmath=sse )
# add_definitions(-mstackrealign)
endif ( )
2012-11-26 12:41:57 +10:00
endif ( )
2013-02-24 22:17:52 +10:00
if ( IOS )
2022-10-01 08:01:01 -07:00
set ( CMAKE_OSX_DEPLOYMENT_TARGET "11.0" )
2016-10-11 03:27:38 +02:00
elseif ( APPLE AND NOT CMAKE_CROSSCOMPILING )
2023-02-01 15:39:42 -08:00
if ( LIBRETRO AND ARM64 )
set ( CMAKE_OSX_DEPLOYMENT_TARGET "10.14" )
else ( )
set ( CMAKE_OSX_DEPLOYMENT_TARGET "10.13" )
endif ( )
2021-10-13 04:53:14 +03:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -U__STRICT_ANSI__" )
2013-03-02 11:19:40 -08:00
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
2017-03-13 23:45:25 +01:00
elseif ( NOT ANDROID )
2017-03-16 10:16:29 +01:00
# TODO: See if we can get rid of no-psabi
2021-12-11 10:45:05 -08:00
if ( NOT ${ CMAKE_C_COMPILER_ID } STREQUAL "Intel" AND NOT ${ CMAKE_CXX_COMPILER_ID } MATCHES "Clang" )
2014-06-11 23:02:56 +10:00
add_definitions ( -Wno-psabi )
endif ( )
2016-10-11 17:34:19 +02:00
add_definitions ( -D_XOPEN_SOURCE=700 )
2023-07-23 16:12:26 -07:00
add_definitions ( -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D_BSD_SOURCE -D_DEFAULT_SOURCE )
2023-09-09 15:51:11 +02:00
if ( CMAKE_SYSTEM_NAME MATCHES "Linux|SunOS" OR MINGW )
add_definitions ( -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 )
endif ( )
2023-08-09 23:22:37 -07:00
if ( ${ CMAKE_SYSTEM_NAME } STREQUAL "NetBSD" )
add_definitions ( -D_NETBSD_SOURCE )
endif ( )
2017-03-13 23:45:25 +01:00
elseif ( ANDROID )
add_definitions ( -fsigned-char )
2012-11-26 12:41:57 +10:00
endif ( )
else ( )
# Disable warnings about MS-specific _s variants of libc functions
add_definitions ( -D_CRT_SECURE_NO_WARNINGS )
2020-08-13 16:48:48 +02:00
if ( NOT CLANG )
add_compile_options ( -MP )
endif ( )
2014-06-11 23:02:56 +10:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG" )
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_NDEBUG" )
2023-06-24 21:36:46 +08:00
set ( CMAKE_EXE_LINKER_FLAGS /NODEFAULTLIB: "libcmt.lib" )
2012-11-18 13:00:27 -03:00
endif ( )
2018-03-23 03:18:13 +01:00
if ( WIN32 )
2018-03-24 13:39:05 +01:00
add_definitions ( -D_UNICODE -DUNICODE )
add_definitions ( -DUSING_WIN_UI )
2018-03-23 03:18:13 +01:00
endif ( )
2017-03-13 23:45:25 +01:00
if ( NOT ANDROID )
2012-11-18 13:00:27 -03:00
set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
2017-03-13 23:45:25 +01:00
endif ( )
2012-11-18 13:00:27 -03:00
# This sets up the MSVC project dirs according to the physical project dirs
macro ( setup_target_project TargetName ProjectDir )
2012-11-26 12:41:57 +10:00
get_property ( TargetSources TARGET "${TargetName}" PROPERTY SOURCES )
foreach ( Source ${ TargetSources } )
# Figure out the file's path relative to the ProjectDir
# NOTE: &#$@ double-quoted regexps
string ( REGEX REPLACE "${ProjectDir}" "" RelativePath "${Source}" )
string ( REGEX REPLACE "[\\\\/][^\\\\/]*$" "" RelativePath "${RelativePath}" )
string ( REGEX REPLACE "^[\\\\/]" "" RelativePath "${RelativePath}" )
string ( REGEX REPLACE "/" "\\\\\\\\" RelativePath "${RelativePath}" )
# put the source file in a source_group equivalent to the relative path
source_group ( "${RelativePath}" FILES ${ Source } )
endforeach ( )
2012-11-18 13:00:27 -03:00
endmacro ( )
2020-10-05 10:19:04 +02:00
add_subdirectory ( ext )
if ( WIN32 )
include_directories ( dx9sdk/Include )
include_directories ( dx9sdk/Include/DX11 )
endif ( )
2022-08-18 17:41:53 +03:00
set ( CommonJIT
C o r e / M I P S / J i t C o m m o n / J i t C o m m o n . c p p
C o r e / M I P S / J i t C o m m o n / J i t C o m m o n . h
C o r e / M I P S / J i t C o m m o n / J i t B l o c k C a c h e . c p p
C o r e / M I P S / J i t C o m m o n / J i t B l o c k C a c h e . h
C o r e / M I P S / J i t C o m m o n / J i t S t a t e . c p p
C o r e / M I P S / J i t C o m m o n / J i t S t a t e . h
)
2016-10-11 03:26:33 +02:00
set ( CommonX86
C o m m o n / A B I . c p p
C o m m o n / A B I . h
C o m m o n / C P U D e t e c t . c p p
C o m m o n / C P U D e t e c t . h
C o m m o n / T h u n k . c p p
C o m m o n / T h u n k . h
C o m m o n / x 6 4 A n a l y z e r . c p p
C o m m o n / x 6 4 A n a l y z e r . h
C o m m o n / x 6 4 E m i t t e r . c p p
2018-10-28 11:33:25 -07:00
C o m m o n / x 6 4 E m i t t e r . h
)
2016-10-11 03:26:33 +02:00
source_group ( x86 FILES ${ CommonX86 } )
set ( CommonARM
C o m m o n / A r m C P U D e t e c t . c p p
C o m m o n / A r m E m i t t e r . h
C o m m o n / A r m E m i t t e r . c p p
2018-10-28 11:33:25 -07:00
)
2016-10-11 03:26:33 +02:00
source_group ( ARM FILES ${ CommonARM } )
set ( CommonARM64
C o m m o n / A r m 6 4 E m i t t e r . h
C o m m o n / A r m 6 4 E m i t t e r . c p p
C o m m o n / A r m E m i t t e r . h
C o m m o n / A r m E m i t t e r . c p p
2022-12-30 11:36:32 -08:00
C o r e / U t i l / D i s A r m 6 4 . h
2018-10-28 11:33:25 -07:00
C o r e / U t i l / D i s A r m 6 4 . c p p
)
2016-10-11 03:26:33 +02:00
source_group ( ARM64 FILES ${ CommonARM64 } )
set ( CommonMIPS
C o m m o n / M i p s C P U D e t e c t . c p p
C o m m o n / M i p s E m i t t e r . c p p
2018-10-28 11:33:25 -07:00
C o m m o n / M i p s E m i t t e r . h
)
2016-10-11 03:26:33 +02:00
source_group ( MIPS FILES ${ CommonMIPS } )
2021-06-29 21:46:17 +10:00
set ( CommonRISCV64
2022-08-18 17:41:53 +03:00
$ { C o m m o n J I T }
2021-07-28 21:58:56 +10:00
C o m m o n / R i s c V C P U D e t e c t . c p p
2022-08-24 10:12:49 -07:00
C o m m o n / R i s c V E m i t t e r . c p p
C o m m o n / R i s c V E m i t t e r . h
2021-06-29 21:46:17 +10:00
C o r e / M I P S / f a k e / F a k e J i t . c p p
C o r e / M I P S / f a k e / F a k e J i t . h
)
source_group ( RISCV64 FILES ${ CommonRISCV64 } )
2023-08-07 00:14:56 +08:00
set ( CommonLOONGARCH64
$ { C o m m o n J I T }
C o m m o n / L o o n g A r c h C P U D e t e c t . c p p
C o r e / M I P S / f a k e / F a k e J i t . c p p
C o r e / M I P S / f a k e / F a k e J i t . h
)
source_group ( LOONGARCH64 FILES ${ CommonLOONGARCH64 } )
2020-10-04 23:24:14 +02:00
if ( WIN32 )
set ( CommonD3D
C o m m o n / G P U / D 3 D 9 / D 3 D 9 S h a d e r C o m p i l e r . c p p
C o m m o n / G P U / D 3 D 9 / D 3 D 9 S h a d e r C o m p i l e r . h
C o m m o n / G P U / D 3 D 9 / D 3 D 9 S t a t e C a c h e . c p p
C o m m o n / G P U / D 3 D 9 / D 3 D 9 S t a t e C a c h e . h
C o m m o n / G P U / D 3 D 9 / t h i n 3 d _ d 3 d 9 . c p p
C o m m o n / G P U / D 3 D 9 / D 3 D C o m p i l e r L o a d e r . c p p
C o m m o n / G P U / D 3 D 1 1 / t h i n 3 d _ d 3 d 1 1 . c p p
C o m m o n / G P U / D 3 D 1 1 / D 3 D 1 1 L o a d e r . c p p
C o m m o n / G P U / D 3 D 1 1 / D 3 D 1 1 L o a d e r . h
)
endif ( )
2016-12-05 16:51:28 +01:00
2022-10-17 19:25:55 +02:00
set ( CommonVR
2022-11-06 15:37:58 +01:00
C o m m o n / V R / O p e n X R L o a d e r . c p p
C o m m o n / V R / O p e n X R L o a d e r . h
2022-10-17 19:25:55 +02:00
C o m m o n / V R / P P S S P P V R . c p p
C o m m o n / V R / P P S S P P V R . h
C o m m o n / V R / V R B a s e . c p p
C o m m o n / V R / V R B a s e . h
C o m m o n / V R / V R F r a m e b u f f e r . c p p
C o m m o n / V R / V R F r a m e b u f f e r . h
C o m m o n / V R / V R I n p u t . c p p
C o m m o n / V R / V R I n p u t . h
C o m m o n / V R / V R M a t h . c p p
C o m m o n / V R / V R M a t h . h
C o m m o n / V R / V R R e n d e r e r . c p p
C o m m o n / V R / V R R e n d e r e r . h
)
include_directories ( ext/openxr )
2012-11-18 13:00:27 -03:00
add_library ( Common STATIC
2016-10-11 03:26:33 +02:00
$ { C o m m o n X 8 6 }
$ { C o m m o n A R M }
$ { C o m m o n A R M 6 4 }
$ { C o m m o n M I P S }
2021-06-29 21:46:17 +10:00
$ { C o m m o n R I S C V 6 4 }
2023-08-07 00:14:56 +08:00
$ { C o m m o n L O O N G A R C H 6 4 }
2020-10-04 23:24:14 +02:00
$ { C o m m o n D 3 D }
2022-10-17 19:25:55 +02:00
$ { C o m m o n V R }
2020-08-10 00:12:51 -07:00
C o m m o n / S e r i a l i z e / S e r i a l i z e r . c p p
C o m m o n / S e r i a l i z e / S e r i a l i z e r . h
C o m m o n / S e r i a l i z e / S e r i a l i z e D e q u e . h
C o m m o n / S e r i a l i z e / S e r i a l i z e F u n c s . h
C o m m o n / S e r i a l i z e / S e r i a l i z e L i s t . h
C o m m o n / S e r i a l i z e / S e r i a l i z e M a p . h
C o m m o n / S e r i a l i z e / S e r i a l i z e S e t . h
2012-11-26 12:41:57 +10:00
C o m m o n / C r y p t o / m d 5 . c p p
C o m m o n / C r y p t o / m d 5 . h
C o m m o n / C r y p t o / s h a 1 . c p p
C o m m o n / C r y p t o / s h a 1 . h
2014-12-07 19:25:45 +01:00
C o m m o n / C r y p t o / s h a 2 5 6 . c p p
C o m m o n / C r y p t o / s h a 2 5 6 . h
2020-10-01 13:05:04 +02:00
C o m m o n / D a t a / C o l l e c t i o n s / C o n s t M a p . h
2020-10-05 20:58:33 +02:00
C o m m o n / D a t a / C o l l e c t i o n s / F i x e d S i z e Q u e u e . h
C o m m o n / D a t a / C o l l e c t i o n s / H a s h m a p s . h
2020-10-01 13:05:04 +02:00
C o m m o n / D a t a / C o l l e c t i o n s / T i n y S e t . h
2023-05-16 23:29:41 +02:00
C o m m o n / D a t a / C o l l e c t i o n s / F a s t V e c . h
2020-10-05 20:58:33 +02:00
C o m m o n / D a t a / C o l l e c t i o n s / T h r e a d S a f e L i s t . h
2020-10-01 13:05:04 +02:00
C o m m o n / D a t a / C o l o r / R G B A U t i l . c p p
C o m m o n / D a t a / C o l o r / R G B A U t i l . h
2021-05-01 07:15:04 -07:00
C o m m o n / D a t a / C o n v e r t / C o l o r C o n v . c p p
C o m m o n / D a t a / C o n v e r t / C o l o r C o n v . h
2020-10-04 00:25:21 +02:00
C o m m o n / D a t a / C o n v e r t / S m a l l D a t a C o n v e r t . c p p
C o m m o n / D a t a / C o n v e r t / S m a l l D a t a C o n v e r t . h
2020-10-01 13:05:04 +02:00
C o m m o n / D a t a / E n c o d i n g / B a s e 6 4 . c p p
C o m m o n / D a t a / E n c o d i n g / B a s e 6 4 . h
C o m m o n / D a t a / E n c o d i n g / C o m p r e s s i o n . c p p
C o m m o n / D a t a / E n c o d i n g / C o m p r e s s i o n . h
C o m m o n / D a t a / E n c o d i n g / S h i f t j i s . h
C o m m o n / D a t a / E n c o d i n g / U t f 8 . c p p
C o m m o n / D a t a / E n c o d i n g / U t f 8 . h
C o m m o n / D a t a / E n c o d i n g / U t f 1 6 . h
2020-10-04 00:25:21 +02:00
C o m m o n / D a t a / F o r m a t / R I F F . c p p
C o m m o n / D a t a / F o r m a t / R I F F . h
C o m m o n / D a t a / F o r m a t / I n i F i l e . c p p
C o m m o n / D a t a / F o r m a t / I n i F i l e . h
2020-10-04 09:29:36 +02:00
C o m m o n / D a t a / F o r m a t / J S O N R e a d e r . h
C o m m o n / D a t a / F o r m a t / J S O N R e a d e r . c p p
C o m m o n / D a t a / F o r m a t / J S O N W r i t e r . h
C o m m o n / D a t a / F o r m a t / J S O N W r i t e r . c p p
2023-02-26 19:51:59 +01:00
C o m m o n / D a t a / F o r m a t / D D S L o a d . c p p
C o m m o n / D a t a / F o r m a t / D D S L o a d . h
2020-10-04 20:48:47 +02:00
C o m m o n / D a t a / F o r m a t / P N G L o a d . c p p
C o m m o n / D a t a / F o r m a t / P N G L o a d . h
C o m m o n / D a t a / F o r m a t / Z I M L o a d . c p p
C o m m o n / D a t a / F o r m a t / Z I M L o a d . h
C o m m o n / D a t a / F o r m a t / Z I M S a v e . c p p
C o m m o n / D a t a / F o r m a t / Z I M S a v e . h
2020-10-01 13:05:04 +02:00
C o m m o n / D a t a / H a s h / H a s h . c p p
C o m m o n / D a t a / H a s h / H a s h . h
C o m m o n / D a t a / T e x t / I 1 8 n . c p p
C o m m o n / D a t a / T e x t / I 1 8 n . h
C o m m o n / D a t a / T e x t / P a r s e r s . c p p
C o m m o n / D a t a / T e x t / P a r s e r s . h
C o m m o n / D a t a / T e x t / W r a p T e x t . c p p
C o m m o n / D a t a / T e x t / W r a p T e x t . h
C o m m o n / D a t a / R a n d o m / R n g . h
2020-10-04 00:25:21 +02:00
C o m m o n / F i l e / V F S / V F S . h
C o m m o n / F i l e / V F S / V F S . c p p
2023-03-06 15:30:39 +01:00
C o m m o n / F i l e / V F S / Z i p F i l e R e a d e r . c p p
C o m m o n / F i l e / V F S / Z i p F i l e R e a d e r . h
C o m m o n / F i l e / V F S / D i r e c t o r y R e a d e r . c p p
C o m m o n / F i l e / V F S / D i r e c t o r y R e a d e r . h
2021-06-05 19:29:23 +02:00
C o m m o n / F i l e / A n d r o i d S t o r a g e . h
C o m m o n / F i l e / A n d r o i d S t o r a g e . c p p
2023-05-16 14:34:28 +02:00
C o m m o n / F i l e / A n d r o i d C o n t e n t U R I . h
C o m m o n / F i l e / A n d r o i d C o n t e n t U R I . c p p
2020-10-04 00:25:21 +02:00
C o m m o n / F i l e / D i s k F r e e . h
C o m m o n / F i l e / D i s k F r e e . c p p
2021-05-06 01:31:38 +02:00
C o m m o n / F i l e / P a t h . h
C o m m o n / F i l e / P a t h . c p p
2020-10-04 00:25:21 +02:00
C o m m o n / F i l e / P a t h B r o w s e r . h
C o m m o n / F i l e / P a t h B r o w s e r . c p p
2020-10-04 20:48:47 +02:00
C o m m o n / F i l e / F i l e U t i l . c p p
C o m m o n / F i l e / F i l e U t i l . h
C o m m o n / F i l e / D i r L i s t i n g . c p p
C o m m o n / F i l e / D i r L i s t i n g . h
C o m m o n / F i l e / F i l e D e s c r i p t o r . c p p
C o m m o n / F i l e / F i l e D e s c r i p t o r . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / D a t a F o r m a t . h
2022-11-24 10:38:49 +01:00
C o m m o n / G P U / M i s c T y p e s . h
2023-05-24 14:32:38 +02:00
C o m m o n / G P U / G P U B a c k e n d C o m m o n . c p p
C o m m o n / G P U / G P U B a c k e n d C o m m o n . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / t h i n 3 d . c p p
C o m m o n / G P U / t h i n 3 d . h
C o m m o n / G P U / t h i n 3 d _ c r e a t e . h
2020-11-04 09:18:35 +01:00
C o m m o n / G P U / S h a d e r . c p p
C o m m o n / G P U / S h a d e r . h
C o m m o n / G P U / S h a d e r W r i t e r . c p p
C o m m o n / G P U / S h a d e r W r i t e r . h
2020-11-09 09:00:06 +01:00
C o m m o n / G P U / S h a d e r T r a n s l a t i o n . h
C o m m o n / G P U / S h a d e r T r a n s l a t i o n . c p p
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / O p e n G L / G L C o m m o n . h
C o m m o n / G P U / O p e n G L / G L D e b u g L o g . c p p
C o m m o n / G P U / O p e n G L / G L D e b u g L o g . h
C o m m o n / G P U / O p e n G L / G L S L P r o g r a m . c p p
C o m m o n / G P U / O p e n G L / G L S L P r o g r a m . h
C o m m o n / G P U / O p e n G L / g l 3 s t u b . c
C o m m o n / G P U / O p e n G L / g l 3 s t u b . h
C o m m o n / G P U / O p e n G L / G L F e a t u r e s . c p p
C o m m o n / G P U / O p e n G L / G L F e a t u r e s . h
2023-02-06 10:46:52 +01:00
C o m m o n / G P U / O p e n G L / G L F r a m e D a t a . c p p
C o m m o n / G P U / O p e n G L / G L F r a m e D a t a . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / O p e n G L / t h i n 3 d _ g l . c p p
2023-05-18 22:02:38 +02:00
C o m m o n / G P U / O p e n G L / G L M e m o r y . c p p
C o m m o n / G P U / O p e n G L / G L M e m o r y . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / O p e n G L / G L R e n d e r M a n a g e r . c p p
C o m m o n / G P U / O p e n G L / G L R e n d e r M a n a g e r . h
C o m m o n / G P U / O p e n G L / G L Q u e u e R u n n e r . c p p
C o m m o n / G P U / O p e n G L / G L Q u e u e R u n n e r . h
C o m m o n / G P U / O p e n G L / D a t a F o r m a t G L . c p p
C o m m o n / G P U / O p e n G L / D a t a F o r m a t G L . h
2022-05-01 10:18:55 +02:00
C o m m o n / G P U / V u l k a n / V u l k a n B a r r i e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n B a r r i e r . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / V u l k a n / V u l k a n D e b u g . c p p
C o m m o n / G P U / V u l k a n / V u l k a n D e b u g . h
C o m m o n / G P U / V u l k a n / V u l k a n C o n t e x t . c p p
C o m m o n / G P U / V u l k a n / V u l k a n C o n t e x t . h
2023-10-08 11:45:00 +02:00
C o m m o n / G P U / V u l k a n / V u l k a n D e s c S e t . c p p
C o m m o n / G P U / V u l k a n / V u l k a n D e s c S e t . h
2022-11-27 10:22:37 +01:00
C o m m o n / G P U / V u l k a n / V u l k a n F r a m e b u f f e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n F r a m e b u f f e r . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / V u l k a n / V u l k a n I m a g e . c p p
C o m m o n / G P U / V u l k a n / V u l k a n I m a g e . h
C o m m o n / G P U / V u l k a n / V u l k a n L o a d e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n L o a d e r . h
C o m m o n / G P U / V u l k a n / V u l k a n M e m o r y . c p p
C o m m o n / G P U / V u l k a n / V u l k a n M e m o r y . h
2021-12-12 11:34:05 +01:00
C o m m o n / G P U / V u l k a n / V u l k a n P r o f i l e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n P r o f i l e r . h
2020-10-04 23:24:14 +02:00
C o m m o n / G P U / V u l k a n / t h i n 3 d _ v u l k a n . c p p
C o m m o n / G P U / V u l k a n / V u l k a n R e n d e r M a n a g e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n R e n d e r M a n a g e r . h
C o m m o n / G P U / V u l k a n / V u l k a n Q u e u e R u n n e r . c p p
C o m m o n / G P U / V u l k a n / V u l k a n Q u e u e R u n n e r . h
2022-09-17 01:34:38 +02:00
C o m m o n / G P U / V u l k a n / V u l k a n F r a m e D a t a . c p p
C o m m o n / G P U / V u l k a n / V u l k a n F r a m e D a t a . h
2020-10-01 09:36:43 +02:00
C o m m o n / I n p u t / G e s t u r e D e t e c t o r . c p p
C o m m o n / I n p u t / G e s t u r e D e t e c t o r . h
C o m m o n / I n p u t / K e y C o d e s . h
C o m m o n / I n p u t / I n p u t S t a t e . c p p
C o m m o n / I n p u t / I n p u t S t a t e . h
2020-10-04 00:25:21 +02:00
C o m m o n / M a t h / f a s t / f a s t _ m a t r i x . c
C o m m o n / M a t h / c u r v e s . c p p
C o m m o n / M a t h / c u r v e s . h
C o m m o n / M a t h / e x p r e s s i o n _ p a r s e r . c p p
C o m m o n / M a t h / e x p r e s s i o n _ p a r s e r . h
C o m m o n / M a t h / l i n / m a t r i x 4 x 4 . c p p
C o m m o n / M a t h / l i n / m a t r i x 4 x 4 . h
C o m m o n / M a t h / l i n / v e c 3 . c p p
C o m m o n / M a t h / l i n / v e c 3 . h
C o m m o n / M a t h / m a t h _ u t i l . c p p
C o m m o n / M a t h / m a t h _ u t i l . h
2022-10-10 10:53:27 +02:00
C o m m o n / M a t h / S t a t i s t i c s . h
C o m m o n / M a t h / S t a t i s t i c s . c p p
2020-10-04 20:48:47 +02:00
C o m m o n / N e t / H T T P C l i e n t . c p p
C o m m o n / N e t / H T T P C l i e n t . h
C o m m o n / N e t / H T T P H e a d e r s . c p p
C o m m o n / N e t / H T T P H e a d e r s . h
2023-07-20 11:15:18 +02:00
C o m m o n / N e t / H T T P N a e t t R e q u e s t . c p p
C o m m o n / N e t / H T T P N a e t t R e q u e s t . h
2023-07-20 11:10:32 +02:00
C o m m o n / N e t / H T T P R e q u e s t . c p p
C o m m o n / N e t / H T T P R e q u e s t . h
2020-10-04 20:48:47 +02:00
C o m m o n / N e t / H T T P S e r v e r . c p p
C o m m o n / N e t / H T T P S e r v e r . h
2021-05-01 08:36:25 -07:00
C o m m o n / N e t / N e t B u f f e r . c p p
C o m m o n / N e t / N e t B u f f e r . h
2020-10-04 20:48:47 +02:00
C o m m o n / N e t / R e s o l v e . c p p
C o m m o n / N e t / R e s o l v e . h
C o m m o n / N e t / S i n k s . c p p
C o m m o n / N e t / S i n k s . h
C o m m o n / N e t / U R L . c p p
C o m m o n / N e t / U R L . h
C o m m o n / N e t / W e b s o c k e t S e r v e r . c p p
C o m m o n / N e t / W e b s o c k e t S e r v e r . h
2020-10-04 10:04:01 +02:00
C o m m o n / P r o f i l e r / P r o f i l e r . c p p
C o m m o n / P r o f i l e r / P r o f i l e r . h
2020-10-04 23:24:14 +02:00
C o m m o n / R e n d e r / T e x t u r e A t l a s . c p p
C o m m o n / R e n d e r / T e x t u r e A t l a s . h
C o m m o n / R e n d e r / D r a w B u f f e r . c p p
C o m m o n / R e n d e r / D r a w B u f f e r . h
2022-11-21 20:15:22 +01:00
C o m m o n / R e n d e r / M a n a g e d T e x t u r e . c p p
C o m m o n / R e n d e r / M a n a g e d T e x t u r e . h
2020-10-05 00:05:28 +02:00
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t . h
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ a n d r o i d . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ a n d r o i d . h
2023-08-02 07:48:35 -06:00
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ s d l . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ s d l . h
2020-10-05 00:05:28 +02:00
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ w i n . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ w i n . h
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ u w p . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ u w p . h
2020-10-04 10:10:55 +02:00
C o m m o n / S y s t e m / D i s p l a y . c p p
C o m m o n / S y s t e m / D i s p l a y . h
2023-03-22 12:26:14 +01:00
C o m m o n / S y s t e m / S y s t e m . h
C o m m o n / S y s t e m / N a t i v e A p p . h
C o m m o n / S y s t e m / R e q u e s t . c p p
C o m m o n / S y s t e m / R e q u e s t . h
2023-06-30 17:15:49 +02:00
C o m m o n / S y s t e m / O S D . c p p
C o m m o n / S y s t e m / O S D . h
2020-11-28 00:12:06 +01:00
C o m m o n / T h r e a d / C h a n n e l . h
C o m m o n / T h r e a d / P a r a l l e l L o o p . c p p
C o m m o n / T h r e a d / P a r a l l e l L o o p . h
C o m m o n / T h r e a d / P r o m i s e . h
2020-10-01 09:27:25 +02:00
C o m m o n / T h r e a d / T h r e a d U t i l . c p p
C o m m o n / T h r e a d / T h r e a d U t i l . h
2020-11-28 00:12:06 +01:00
C o m m o n / T h r e a d / T h r e a d M a n a g e r . c p p
C o m m o n / T h r e a d / T h r e a d M a n a g e r . h
2022-11-21 20:15:22 +01:00
C o m m o n / U I / A s y n c I m a g e F i l e V i e w . c p p
C o m m o n / U I / A s y n c I m a g e F i l e V i e w . h
2020-10-04 20:48:47 +02:00
C o m m o n / U I / R o o t . c p p
C o m m o n / U I / R o o t . h
C o m m o n / U I / S c r e e n . c p p
C o m m o n / U I / S c r e e n . h
C o m m o n / U I / U I . c p p
C o m m o n / U I / U I . h
C o m m o n / U I / C o n t e x t . c p p
C o m m o n / U I / C o n t e x t . h
2023-06-18 10:32:35 +02:00
C o m m o n / U I / I c o n C a c h e . c p p
C o m m o n / U I / I c o n C a c h e . h
2020-10-04 20:48:47 +02:00
C o m m o n / U I / U I S c r e e n . c p p
C o m m o n / U I / U I S c r e e n . h
C o m m o n / U I / T w e e n . c p p
C o m m o n / U I / T w e e n . h
C o m m o n / U I / V i e w . c p p
C o m m o n / U I / V i e w . h
C o m m o n / U I / V i e w G r o u p . c p p
C o m m o n / U I / V i e w G r o u p . h
2023-01-11 10:36:00 +01:00
C o m m o n / U I / S c r o l l V i e w . c p p
C o m m o n / U I / S c r o l l V i e w . h
C o m m o n / U I / P o p u p S c r e e n s . c p p
C o m m o n / U I / P o p u p S c r e e n s . h
2020-09-29 12:53:18 +02:00
C o m m o n / B i t S c a n . h
C o m m o n / B i t S e t . h
2020-09-29 13:02:02 +02:00
C o m m o n / B u f f e r . h
C o m m o n / B u f f e r . c p p
2020-09-29 12:53:18 +02:00
C o m m o n / C o d e B l o c k . h
C o m m o n / C o m m o n . h
C o m m o n / C o m m o n F u n c s . h
C o m m o n / C o m m o n T y p e s . h
C o m m o n / C o n s o l e L i s t e n e r . c p p
C o m m o n / C o n s o l e L i s t e n e r . h
C o m m o n / D b g N e w . h
C o m m o n / F a k e E m i t t e r . h
2021-03-20 17:25:50 -07:00
C o m m o n / F a k e C P U D e t e c t . c p p
2019-02-11 11:11:56 +01:00
C o m m o n / E x c e p t i o n H a n d l e r S e t u p . c p p
C o m m o n / E x c e p t i o n H a n d l e r S e t u p . h
2020-08-16 13:48:31 +02:00
C o m m o n / L o g . h
C o m m o n / L o g . c p p
2019-08-12 21:53:51 +02:00
C o m m o n / L o g M a n a g e r . c p p
2012-11-26 12:41:57 +10:00
C o m m o n / L o g M a n a g e r . h
2021-06-06 09:19:10 -07:00
C o m m o n / L o g R e p o r t i n g . c p p
C o m m o n / L o g R e p o r t i n g . h
2017-01-25 15:43:24 +01:00
C o m m o n / M e m A r e n a A n d r o i d . c p p
2017-01-25 19:29:43 +01:00
C o m m o n / M e m A r e n a D a r w i n . c p p
2017-01-25 15:43:24 +01:00
C o m m o n / M e m A r e n a P o s i x . c p p
C o m m o n / M e m A r e n a W i n 3 2 . c p p
2023-06-26 16:17:45 +02:00
C o m m o n / M e m A r e n a H o r i z o n . c p p
2012-11-26 12:41:57 +10:00
C o m m o n / M e m A r e n a . h
C o m m o n / M e m o r y U t i l . c p p
2023-06-26 16:17:45 +02:00
C o m m o n / M e m o r y U t i l H o r i z o n . c p p
2012-11-26 12:41:57 +10:00
C o m m o n / M e m o r y U t i l . h
2017-02-14 10:33:42 +01:00
C o m m o n / O S V e r s i o n . c p p
C o m m o n / O S V e r s i o n . h
2013-05-03 16:22:15 +10:00
C o m m o n / S t r i n g U t i l s . c p p
C o m m o n / S t r i n g U t i l s . h
2020-09-29 15:45:51 +02:00
C o m m o n / S y s E r r o r . h
C o m m o n / S y s E r r o r . c p p
2020-08-15 20:53:08 +02:00
C o m m o n / T i m e U t i l . c p p
C o m m o n / T i m e U t i l . h
2023-01-27 11:19:29 +03:00
C o m m o n / B a t t e r y / B a t t e r y . h
2018-10-28 11:33:25 -07:00
)
2017-03-13 23:45:25 +01:00
2012-11-18 13:00:27 -03:00
include_directories ( Common )
setup_target_project ( Common Common )
2023-01-29 13:02:36 -08:00
target_link_libraries ( Common Ext::Snappy cpu_features )
2016-12-18 19:01:05 +01:00
2018-11-06 18:31:05 +01:00
if ( USING_GLES2 OR ( USING_EGL AND NOT USING_FBDEV ) )
2015-09-15 22:46:51 -03:00
find_package ( X11 )
endif ( )
2013-12-05 16:24:40 +01:00
2018-04-15 11:24:10 -07:00
add_library ( gason STATIC
2020-10-05 10:19:04 +02:00
e x t / g a s o n / g a s o n . c p p
e x t / g a s o n / g a s o n . h
2013-11-26 18:18:30 +01:00
)
2021-11-22 19:53:00 +01:00
add_library ( vma STATIC
e x t / v m a / v k _ m e m _ a l l o c . c p p
e x t / v m a / v k _ m e m _ a l l o c . h
)
2020-10-05 10:19:04 +02:00
2015-06-01 15:29:54 +02:00
if ( USE_FFMPEG )
2018-10-28 11:33:25 -07:00
if ( NOT FFMPEG_DIR )
if ( NOT USE_SYSTEM_FFMPEG )
if ( ANDROID )
if ( ARMV7 )
set ( PLATFORM_ARCH "android/armv7" )
elseif ( ARM64 )
set ( PLATFORM_ARCH "android/arm64" )
elseif ( X86_64 )
set ( PLATFORM_ARCH "android/x86_64" )
elseif ( X86 )
set ( PLATFORM_ARCH "android/x86" )
endif ( )
elseif ( IOS )
set ( PLATFORM_ARCH "ios/universal" )
elseif ( MACOSX )
2020-12-01 16:25:48 -07:00
set ( PLATFORM_ARCH "macosx/universal" )
2018-10-28 11:33:25 -07:00
elseif ( LINUX )
if ( ARMV7 )
set ( PLATFORM_ARCH "linux/armv7" )
elseif ( ARM64 )
set ( PLATFORM_ARCH "linux/aarch64" )
elseif ( ARM )
set ( PLATFORM_ARCH "linux/arm" )
elseif ( MIPS )
set ( PLATFORM_ARCH "linux/mips32" )
2021-06-25 04:56:43 +10:00
elseif ( RISCV64 )
set ( PLATFORM_ARCH "linux/riscv64" )
2023-08-07 00:14:56 +08:00
elseif ( LOONGARCH64 )
set ( PLATFORM_ARCH "linux/loongarch64" )
2018-10-28 11:33:25 -07:00
elseif ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set ( PLATFORM_ARCH "linux/x86_64" )
elseif ( X86 )
set ( PLATFORM_ARCH "linux/x86" )
endif ( )
elseif ( WIN32 )
if ( X86_64 )
set ( PLATFORM_ARCH "Windows/x86_64" )
elseif ( X86 )
set ( PLATFORM_ARCH "Windows/x86" )
endif ( )
endif ( )
if ( PLATFORM_ARCH )
set ( FFMPEG_DIR "ffmpeg/${PLATFORM_ARCH}" )
else ( )
message ( "Couldn't find an internal FFmpeg build, using system FFmpeg instead" )
endif ( )
endif ( )
endif ( )
find_package ( FFmpeg REQUIRED avcodec avformat avutil swresample swscale )
2013-12-06 12:08:19 +01:00
endif ( USE_FFMPEG )
find_package ( ZLIB )
2017-03-13 23:45:25 +01:00
if ( ZLIB_FOUND AND NOT ANDROID )
2013-12-06 12:08:19 +01:00
include_directories ( ${ ZLIB_INCLUDE_DIR } )
2015-09-16 00:59:31 -03:00
add_definitions ( -DSHARED_ZLIB )
2013-12-06 12:08:19 +01:00
else ( )
add_library ( zlib STATIC
e x t / z l i b / a d l e r 3 2 . c
e x t / z l i b / c o m p r e s s . c
e x t / z l i b / c r c 3 2 . c
e x t / z l i b / c r c 3 2 . h
e x t / z l i b / d e f l a t e . c
e x t / z l i b / d e f l a t e . h
e x t / z l i b / g z c l o s e . c
e x t / z l i b / g z g u t s . h
e x t / z l i b / g z l i b . c
e x t / z l i b / g z r e a d . c
e x t / z l i b / g z w r i t e . c
e x t / z l i b / i n f b a c k . c
e x t / z l i b / i n f f a s t . c
e x t / z l i b / i n f f a s t . h
e x t / z l i b / i n f f i x e d . h
e x t / z l i b / i n f l a t e . c
e x t / z l i b / i n f l a t e . h
e x t / z l i b / i n f t r e e s . c
e x t / z l i b / i n f t r e e s . h
e x t / z l i b / m a k e _ v m s . c o m
e x t / z l i b / t r e e s . c
e x t / z l i b / t r e e s . h
e x t / z l i b / u n c o m p r . c
e x t / z l i b / z c o n f . h
e x t / z l i b / z l i b . h
e x t / z l i b / z u t i l . c
e x t / z l i b / z u t i l . h
)
include_directories ( ext/zlib )
set ( ZLIB_LIBRARY zlib )
endif ( )
2013-12-14 15:46:11 -08:00
add_library ( cityhash STATIC
2020-09-29 23:59:05 +02:00
e x t / c i t y h a s h / c i t y . c p p
e x t / c i t y h a s h / c i t y . h
e x t / c i t y h a s h / c i t y c r c . h
2013-12-14 15:46:11 -08:00
)
2022-12-04 08:07:53 -08:00
target_include_directories ( cityhash PRIVATE ext/cityhash )
2013-12-06 12:08:19 +01:00
2018-10-28 11:33:25 -07:00
if ( NOT MSVC )
2014-06-11 23:02:56 +10:00
# These can be fast even for debug.
2021-01-17 10:43:21 +01:00
set_target_properties ( udis86 PROPERTIES COMPILE_FLAGS "-O2" )
set_target_properties ( cityhash PROPERTIES COMPILE_FLAGS "-O2" )
2014-06-11 23:02:56 +10:00
if ( NOT ZLIB_FOUND )
2021-01-17 10:43:21 +01:00
set_target_properties ( zlib PROPERTIES COMPILE_FLAGS "-O2" )
2014-06-11 23:02:56 +10:00
endif ( )
endif ( )
2021-01-05 06:38:06 -08:00
find_package ( LIBZIP )
2018-02-07 12:09:06 +01:00
if ( LIBZIP_FOUND AND USE_SYSTEM_LIBZIP )
2023-06-18 19:12:38 -04:00
include_directories ( ${ LIBZIP_INCLUDE_DIRS } )
2018-02-07 12:09:06 +01:00
add_definitions ( -DSHARED_LIBZIP )
else ( )
add_library ( libzip STATIC
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ a d d . c
e x t / l i b z i p / z i p _ a d d _ d i r . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ a d d _ e n t r y . c
e x t / l i b z i p / z i p _ a l g o r i t h m _ d e f l a t e . c
e x t / l i b z i p / z i p _ b u f f e r . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ c l o s e . c
e x t / l i b z i p / z i p _ d e l e t e . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ d i r _ a d d . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ d i r e n t . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ d i s c a r d . c
e x t / l i b z i p / z i p _ e n t r y . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ e r r o r . c
e x t / l i b z i p / z i p _ e r r o r _ c l e a r . c
e x t / l i b z i p / z i p _ e r r o r _ g e t . c
e x t / l i b z i p / z i p _ e r r o r _ g e t _ s y s _ t y p e . c
e x t / l i b z i p / z i p _ e r r o r _ s t r e r r o r . c
e x t / l i b z i p / z i p _ e r r o r _ t o _ s t r . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ e x t r a _ f i e l d . c
e x t / l i b z i p / z i p _ e x t r a _ f i e l d _ a p i . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f c l o s e . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f d o p e n . c
e x t / l i b z i p / z i p _ f i l e _ a d d . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f i l e _ e r r o r _ c l e a r . c
e x t / l i b z i p / z i p _ f i l e _ e r r o r _ g e t . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f i l e _ g e t _ c o m m e n t . c
e x t / l i b z i p / z i p _ f i l e _ g e t _ e x t e r n a l _ a t t r i b u t e s . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f i l e _ g e t _ o f f s e t . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f i l e _ r e n a m e . c
e x t / l i b z i p / z i p _ f i l e _ r e p l a c e . c
e x t / l i b z i p / z i p _ f i l e _ s e t _ c o m m e n t . c
e x t / l i b z i p / z i p _ f i l e _ s e t _ e n c r y p t i o n . c
e x t / l i b z i p / z i p _ f i l e _ s e t _ e x t e r n a l _ a t t r i b u t e s . c
e x t / l i b z i p / z i p _ f i l e _ s e t _ m t i m e . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f i l e _ s t r e r r o r . c
e x t / l i b z i p / z i p _ f o p e n . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f o p e n _ e n c r y p t e d . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f o p e n _ i n d e x . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f o p e n _ i n d e x _ e n c r y p t e d . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ f r e a d . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ f s e e k . c
e x t / l i b z i p / z i p _ f t e l l . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ g e t _ a r c h i v e _ c o m m e n t . c
e x t / l i b z i p / z i p _ g e t _ a r c h i v e _ f l a g . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ g e t _ e n c r y p t i o n _ i m p l e m e n t a t i o n . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ g e t _ f i l e _ c o m m e n t . c
e x t / l i b z i p / z i p _ g e t _ n a m e . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ g e t _ n u m _ e n t r i e s . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ g e t _ n u m _ f i l e s . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ h a s h . c
e x t / l i b z i p / z i p _ i o _ u t i l . c
e x t / l i b z i p / z i p _ l i b z i p _ v e r s i o n . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ m e m d u p . c
e x t / l i b z i p / z i p _ n a m e _ l o c a t e . c
e x t / l i b z i p / z i p _ n e w . c
e x t / l i b z i p / z i p _ o p e n . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ p k w a r e . c
e x t / l i b z i p / z i p _ p r o g r e s s . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ r e n a m e . c
e x t / l i b z i p / z i p _ r e p l a c e . c
e x t / l i b z i p / z i p _ s e t _ a r c h i v e _ c o m m e n t . c
e x t / l i b z i p / z i p _ s e t _ a r c h i v e _ f l a g . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s e t _ d e f a u l t _ p a s s w o r d . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s e t _ f i l e _ c o m m e n t . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s e t _ f i l e _ c o m p r e s s i o n . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s e t _ n a m e . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s o u r c e _ a c c e p t _ e m p t y . c
e x t / l i b z i p / z i p _ s o u r c e _ b e g i n _ w r i t e . c
e x t / l i b z i p / z i p _ s o u r c e _ b e g i n _ w r i t e _ c l o n i n g . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s o u r c e _ b u f f e r . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s o u r c e _ c a l l . c
e x t / l i b z i p / z i p _ s o u r c e _ c l o s e . c
e x t / l i b z i p / z i p _ s o u r c e _ c o m m i t _ w r i t e . c
e x t / l i b z i p / z i p _ s o u r c e _ c o m p r e s s . c
e x t / l i b z i p / z i p _ s o u r c e _ c r c . c
e x t / l i b z i p / z i p _ s o u r c e _ e r r o r . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ c o m m o n . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ s t d i o . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s o u r c e _ f r e e . c
e x t / l i b z i p / z i p _ s o u r c e _ f u n c t i o n . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s o u r c e _ g e t _ f i l e _ a t t r i b u t e s . c
e x t / l i b z i p / z i p _ s o u r c e _ i s _ d e l e t e d . c
e x t / l i b z i p / z i p _ s o u r c e _ l a y e r e d . c
e x t / l i b z i p / z i p _ s o u r c e _ o p e n . c
e x t / l i b z i p / z i p _ s o u r c e _ p k w a r e _ d e c o d e . c
e x t / l i b z i p / z i p _ s o u r c e _ p k w a r e _ e n c o d e . c
e x t / l i b z i p / z i p _ s o u r c e _ r e a d . c
e x t / l i b z i p / z i p _ s o u r c e _ r e m o v e . c
e x t / l i b z i p / z i p _ s o u r c e _ r o l l b a c k _ w r i t e . c
e x t / l i b z i p / z i p _ s o u r c e _ s e e k . c
e x t / l i b z i p / z i p _ s o u r c e _ s e e k _ w r i t e . c
e x t / l i b z i p / z i p _ s o u r c e _ s t a t . c
e x t / l i b z i p / z i p _ s o u r c e _ s u p p o r t s . c
e x t / l i b z i p / z i p _ s o u r c e _ t e l l . c
e x t / l i b z i p / z i p _ s o u r c e _ t e l l _ w r i t e . c
e x t / l i b z i p / z i p _ s o u r c e _ w i n d o w . c
e x t / l i b z i p / z i p _ s o u r c e _ w r i t e . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s o u r c e _ z i p . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s o u r c e _ z i p _ n e w . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ s t a t . c
e x t / l i b z i p / z i p _ s t a t _ i n d e x . c
e x t / l i b z i p / z i p _ s t a t _ i n i t . c
e x t / l i b z i p / z i p _ s t r e r r o r . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ s t r i n g . c
2020-09-29 23:59:05 +02:00
e x t / l i b z i p / z i p _ u n c h a n g e . c
e x t / l i b z i p / z i p _ u n c h a n g e _ a l l . c
e x t / l i b z i p / z i p _ u n c h a n g e _ a r c h i v e . c
e x t / l i b z i p / z i p _ u n c h a n g e _ d a t a . c
2021-05-09 19:58:30 -07:00
e x t / l i b z i p / z i p _ u t f - 8 . c
e x t / l i b z i p / z i p _ e r r _ s t r . c
2018-10-28 11:33:25 -07:00
)
2021-05-09 19:58:30 -07:00
if ( WIN32 )
target_sources ( libzip PRIVATE
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ w i n 3 2 . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ w i n 3 2 _ n a m e d . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ w i n 3 2 _ u t f 1 6 . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ w i n 3 2 _ u t f 8 . c
)
if ( CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore )
target_sources ( libzip PRIVATE ext/libzip/zip_random_uwp.c )
else ( )
target_sources ( libzip PRIVATE ext/libzip/zip_source_file_win32_ansi.c ext/libzip/zip_random_win32.c )
endif ( )
else ( )
target_sources ( libzip PRIVATE
e x t / l i b z i p / z i p _ m k s t e m p m . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e _ s t d i o _ n a m e d . c
e x t / l i b z i p / z i p _ r a n d o m _ u n i x . c
)
endif ( )
2018-02-07 12:09:06 +01:00
target_link_libraries ( libzip )
2020-09-29 23:59:05 +02:00
include_directories ( ext/libzip )
2018-02-07 12:09:06 +01:00
set ( LIBZIP_LIBRARY libzip )
endif ( )
2012-11-18 13:00:27 -03:00
2020-03-22 10:02:00 -07:00
# Arm platforms require at least libpng17.
if ( ANDROID OR ARMV7 OR ARM64 OR ARM OR IOS )
set ( PNG_REQUIRED_VERSION 1.7 )
else ( )
set ( PNG_REQUIRED_VERSION 1.6 )
endif ( )
2021-09-12 16:54:40 +03:00
if ( USE_SYSTEM_LIBPNG )
2020-03-22 10:02:00 -07:00
find_package ( PNG ${ PNG_REQUIRED_VERSION } )
2021-09-12 16:54:40 +03:00
endif ( )
2018-10-28 11:33:25 -07:00
if ( PNG_FOUND )
2020-03-22 10:02:00 -07:00
include_directories ( ${ PNG_INCLUDE_DIRS } )
2013-12-08 01:42:17 +10:00
else ( )
2014-05-31 04:36:13 +10:00
if ( ARM )
2016-10-11 03:27:54 +02:00
set ( PNG_ARM_INCLUDES
2020-09-29 23:59:05 +02:00
e x t / l i b p n g 1 7 / a r m / a r m _ i n i t . c
e x t / l i b p n g 1 7 / a r m / f i l t e r _ n e o n . S
e x t / l i b p n g 1 7 / a r m / f i l t e r _ n e o n _ i n t r i n s i c s . c
2018-10-28 11:33:25 -07:00
)
2020-12-14 19:43:11 +01:00
elseif ( ARM64 )
set ( PNG_ARM_INCLUDES
e x t / l i b p n g 1 7 / a r m / a r m _ i n i t . c
e x t / l i b p n g 1 7 / a r m / f i l t e r _ n e o n _ i n t r i n s i c s . c
)
2014-05-31 04:36:13 +10:00
endif ( )
add_library ( png17 STATIC
2020-09-29 23:59:05 +02:00
e x t / l i b p n g 1 7 / p n g c o n f . h
e x t / l i b p n g 1 7 / p n g d e b u g . h
e x t / l i b p n g 1 7 / p n g . c
e x t / l i b p n g 1 7 / p n g . h
e x t / l i b p n g 1 7 / p n g e r r o r . c
e x t / l i b p n g 1 7 / p n g g e t . c
e x t / l i b p n g 1 7 / p n g i n f o . h
e x t / l i b p n g 1 7 / p n g l i b c o n f . h
e x t / l i b p n g 1 7 / p n g m e m . c
e x t / l i b p n g 1 7 / p n g p r e a d . c
e x t / l i b p n g 1 7 / p n g p r i v . h
e x t / l i b p n g 1 7 / p n g r e a d . c
e x t / l i b p n g 1 7 / p n g r i o . c
e x t / l i b p n g 1 7 / p n g r t r a n . c
e x t / l i b p n g 1 7 / p n g r u t i l . c
e x t / l i b p n g 1 7 / p n g s e t . c
e x t / l i b p n g 1 7 / p n g s t r u c t . h
e x t / l i b p n g 1 7 / p n g t r a n s . c
e x t / l i b p n g 1 7 / p n g w i o . c
e x t / l i b p n g 1 7 / p n g w r i t e . c
e x t / l i b p n g 1 7 / p n g w t r a n . c
e x t / l i b p n g 1 7 / p n g w u t i l . c
2018-10-28 11:33:25 -07:00
$ { P N G _ A R M _ I N C L U D E S }
)
2020-03-22 10:02:00 -07:00
set ( PNG_LIBRARIES png17 )
2020-09-29 23:59:05 +02:00
include_directories ( ext/libpng17 )
2013-12-08 01:42:17 +10:00
endif ( )
2015-02-02 00:17:03 -08:00
2023-03-12 23:50:30 +01:00
add_library ( basis_universal STATIC
e x t / b a s i s _ u n i v e r s a l / b a s i s u . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ c o n t a i n e r s . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ c o n t a i n e r s _ i m p l . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ f i l e _ h e a d e r s . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r . c p p
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ i n t e r n a l . h
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ a s t c . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ a s t c _ 0 _ 2 5 5 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ a t c _ 5 5 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ a t c _ 5 6 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ b c 7 _ m 5 _ a l p h a . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ b c 7 _ m 5 _ c o l o r . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ d x t 1 _ 5 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ d x t 1 _ 6 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ p v r t c 2 _ 4 5 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ t a b l e s _ p v r t c 2 _ a l p h a _ 3 3 . i n c
e x t / b a s i s _ u n i v e r s a l / b a s i s u _ t r a n s c o d e r _ u a s t c . h
)
set ( BASISU_LIBRARIES basis_universal )
2012-11-18 13:00:27 -03:00
set ( nativeExtra )
2012-12-02 14:48:00 +10:00
set ( nativeExtraLibs )
2014-03-22 15:18:01 +01:00
2012-11-18 13:00:27 -03:00
if ( ANDROID )
2020-02-05 11:00:08 -06:00
set ( NativeAppSource ${ NativeAppSource }
2016-01-21 13:37:13 -08:00
a n d r o i d / j n i / a p p - a n d r o i d . c p p
2018-01-20 21:47:16 +01:00
a n d r o i d / j n i / A n d r o i d J a v a G L C o n t e x t . c p p
a n d r o i d / j n i / A n d r o i d J a v a G L C o n t e x t . h
a n d r o i d / j n i / A n d r o i d V u l k a n C o n t e x t . c p p
a n d r o i d / j n i / A n d r o i d V u l k a n C o n t e x t . h
a n d r o i d / j n i / A n d r o i d G r a p h i c s C o n t e x t . h
2020-07-28 14:22:50 +02:00
a n d r o i d / j n i / A n d r o i d A u d i o . c p p
a n d r o i d / j n i / A n d r o i d A u d i o . h
a n d r o i d / j n i / O p e n S L C o n t e x t . c p p
a n d r o i d / j n i / O p e n S L C o n t e x t . h
2018-10-28 11:33:25 -07:00
)
2022-07-07 19:30:06 +02:00
if ( OPENXR )
2022-07-08 14:44:20 +02:00
set ( nativeExtraLibs ${ nativeExtraLibs } openxr )
2022-07-07 19:30:06 +02:00
endif ( )
2012-12-02 14:48:00 +10:00
# No target
2023-02-06 23:36:55 -05:00
elseif ( IOS AND NOT LIBRETRO )
2013-02-18 00:04:44 +10:00
set ( nativeExtra ${ nativeExtra }
2013-08-18 20:17:33 -07:00
i o s / m a i n . m m
2015-05-27 02:35:09 -04:00
i o s / A p p D e l e g a t e . m m
2013-02-18 00:04:44 +10:00
i o s / A p p D e l e g a t e . h
2019-06-11 01:24:58 +08:00
i o s / D i s p l a y M a n a g e r . h
i o s / D i s p l a y M a n a g e r . m m
2013-02-18 00:04:44 +10:00
i o s / V i e w C o n t r o l l e r . m m
2013-03-16 21:50:55 +07:00
i o s / V i e w C o n t r o l l e r . h
2017-12-30 17:56:23 -08:00
i o s / i O S C o r e A u d i o . m m
2013-06-25 16:38:30 -05:00
i o s / i O S C o r e A u d i o . h
2020-01-09 15:57:09 +02:00
i o s / C a m e r a H e l p e r . m m
i o s / C a m e r a H e l p e r . h
i o s / L o c a t i o n H e l p e r . m m
i o s / L o c a t i o n H e l p e r . h
2017-09-04 15:46:05 +08:00
i o s / P P S S P P U I A p p l i c a t i o n . h
i o s / P P S S P P U I A p p l i c a t i o n . m m
i o s / S m a r t K e y b o a r d M a p . c p p
i o s / S m a r t K e y b o a r d M a p . h p p
2013-05-30 20:58:41 -05:00
i o s / i C a d e / i C a d e R e a d e r V i e w . h
i o s / i C a d e / i C a d e R e a d e r V i e w . m
2018-10-28 11:33:25 -07:00
i o s / i C a d e / i C a d e S t a t e . h
2023-01-31 13:36:14 +03:00
U I / D a r w i n F i l e S y s t e m S e r v i c e s . m m
U I / D a r w i n F i l e S y s t e m S e r v i c e s . h
2023-01-27 11:19:29 +03:00
C o m m o n / B a t t e r y / A p p l e B a t t e r y C l i e n t . m
2018-10-28 11:33:25 -07:00
)
2023-03-06 15:30:39 +01:00
2023-01-22 20:32:34 +03:00
set ( nativeExtraLibs ${ nativeExtraLibs } "-framework Foundation -framework MediaPlayer -framework AudioToolbox -framework CoreGraphics -framework QuartzCore -framework UIKit -framework GLKit -framework OpenAL -framework AVFoundation -framework CoreLocation -framework CoreVideo -framework CoreMedia -framework CoreServices" )
2014-05-31 01:22:11 +10:00
if ( EXISTS "${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks/GameController.framework" )
set ( nativeExtraLibs ${ nativeExtraLibs } "-weak_framework GameController" )
endif ( )
2017-11-18 08:16:44 -08:00
2015-10-08 14:27:15 +09:00
if ( NOT ICONV_LIBRARY )
set ( nativeExtraLibs ${ nativeExtraLibs } iconv )
endif ( )
2014-05-31 01:22:11 +10:00
2015-05-27 02:35:09 -04:00
set_source_files_properties ( ios/AppDelegate.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2014-05-31 01:22:11 +10:00
set_source_files_properties ( ios/ViewController.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2017-12-31 19:36:47 -08:00
set_source_files_properties ( ios/iOSCoreAudio.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
set_source_files_properties ( ios/PPSSPPUIApplication.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
set_source_files_properties ( ios/iCade/iCadeReaderView.m PROPERTIES COMPILE_FLAGS -fobjc-arc )
set_source_files_properties ( ios/main.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2020-01-09 15:57:09 +02:00
set_source_files_properties ( ios/CameraHelper.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
set_source_files_properties ( ios/LocationHelper.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-01-31 13:36:14 +03:00
set_source_files_properties ( UI/DarwinFileSystemServices.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-01-27 11:19:29 +03:00
set_source_files_properties ( Common/Battery/AppleBatteryClient.m PROPERTIES COMPILE_FLAGS -fobjc-arc )
2013-02-24 13:23:04 +10:00
set ( TargetBin PPSSPP )
2023-02-06 23:36:55 -05:00
elseif ( IOS AND LIBRETRO )
set ( nativeExtraLibs ${ nativeExtraLibs } "-framework GLKit" )
2012-12-16 21:17:13 +10:00
elseif ( USING_QT_UI )
2018-10-28 11:33:25 -07:00
set ( CMAKE_AUTOMOC ON )
2020-01-25 10:06:00 +02:00
find_package ( Qt5 COMPONENTS OpenGL Gui Core Multimedia )
2018-10-28 11:33:25 -07:00
list ( APPEND NativeAppSource
Q t / Q t M a i n . c p p
Q t / Q t M a i n . h
Q t / m a i n w i n d o w . c p p
Q t / m a i n w i n d o w . h
)
add_definitions ( -DUSING_QT_UI )
if ( USING_GLES2 )
add_definitions ( -DQT_OPENGL_ES -DQT_OPENGL_ES_2 )
endif ( )
2023-02-25 13:09:44 +01:00
if ( APPLE )
list ( APPEND NativeAppSource
U I / D a r w i n F i l e S y s t e m S e r v i c e s . m m
U I / D a r w i n F i l e S y s t e m S e r v i c e s . h
C o m m o n / B a t t e r y / A p p l e B a t t e r y C l i e n t . m )
set_source_files_properties ( Common/Battery/AppleBatteryClient.m PROPERTIES COMPILE_FLAGS -fobjc-arc )
set_source_files_properties ( UI/DarwinFileSystemServices.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
set ( nativeExtraLibs ${ nativeExtraLibs } ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ IOKIT_LIBRARY } )
endif ( )
2020-10-05 10:19:04 +02:00
include_directories ( Qt )
include_directories ( ${ CMAKE_CURRENT_BINARY_DIR } )
2020-01-25 10:06:00 +02:00
set ( nativeExtraLibs ${ nativeExtraLibs } Qt5::OpenGL Qt5::Gui Qt5::Core Qt5::Multimedia )
2012-12-16 21:17:13 +10:00
set ( TargetBin PPSSPPQt )
2017-02-01 14:14:04 +08:00
2020-10-05 10:19:04 +02:00
# Enable SDL joystick if SDL is found
2018-10-28 11:33:25 -07:00
if ( SDL2_FOUND )
add_definitions ( -DSDL )
set ( nativeExtra ${ nativeExtra }
S D L / S D L J o y s t i c k . h
S D L / S D L J o y s t i c k . c p p
)
set ( nativeExtraLibs ${ nativeExtraLibs } SDL2::SDL2 )
endif ( )
2017-02-01 14:14:04 +08:00
2016-12-05 16:51:28 +01:00
elseif ( WIN32 )
# Don't care about SDL.
set ( TargetBin PPSSPPWindows )
if ( X86_64 )
link_directories ( dx9sdk/Lib/x64 )
else ( )
link_directories ( dx9sdk/Lib/x86 )
endif ( )
2023-04-24 14:44:07 +02:00
elseif ( LIBRETRO )
else ( )
2023-04-25 16:34:23 +02:00
if ( GOLD )
set ( TargetBin PPSSPPGold )
else ( )
set ( TargetBin PPSSPPSDL )
endif ( )
2018-10-28 11:33:25 -07:00
# Require SDL
add_definitions ( -DSDL )
set ( nativeExtra ${ nativeExtra }
S D L / S D L J o y s t i c k . h
S D L / S D L J o y s t i c k . c p p
S D L / S D L M a i n . c p p
S D L / S D L G L G r a p h i c s C o n t e x t . c p p
)
2022-04-02 16:34:13 -07:00
if ( NOT USE_LIBNX )
set ( nativeExtra ${ nativeExtra }
S D L / S D L V u l k a n G r a p h i c s C o n t e x t . c p p
)
endif ( )
2023-09-25 09:53:31 +08:00
if ( SDL2_ttf_FOUND OR
( S D L 2 _ t t f _ P K G C O N F I G _ F O U N D A N D
S D L 2 _ t t f _ P K G C O N F I G _ V E R S I O N V E R S I O N _ G R E A T E R _ E Q U A L " 2 . 0 . 1 8 " ) )
2023-07-25 12:55:23 +08:00
add_definitions ( -DUSE_SDL2_TTF )
2023-07-25 21:57:39 +08:00
if ( FONTCONFIG_FOUND )
add_definitions ( -DUSE_SDL2_TTF_FONTCONFIG )
set ( nativeExtraLibs ${ nativeExtraLibs } Fontconfig::Fontconfig )
endif ( )
2023-09-25 09:53:31 +08:00
elseif ( SDL2_ttf_PKGCONFIG_FOUND )
message ( WARNING "Found SDL2_ttf <2.0.18 - this is too old, falling back to atlas" )
2023-07-25 12:55:23 +08:00
endif ( )
2023-08-03 22:02:24 +08:00
if ( SDL2_ttf_FOUND )
set ( nativeExtraLibs ${ nativeExtraLibs } SDL2_ttf::SDL2_ttf )
elseif ( SDL2_ttf_PKGCONFIG_FOUND )
set ( nativeExtraLibs ${ nativeExtraLibs } PkgConfig::SDL2_ttf_PKGCONFIG )
endif ( )
2018-10-28 11:33:25 -07:00
if ( APPLE )
2023-04-23 22:12:15 +03:00
set ( nativeExtra ${ nativeExtra }
S D L / S D L M a i n . h
S D L / S D L M a i n . m m
S D L / S D L C o c o a M e t a l L a y e r . h
S D L / S D L C o c o a M e t a l L a y e r . m m
S D L / C o c o a B a r I t e m s . m m
S D L / C o c o a B a r I t e m s . h
S D L / P P S S P P A b o u t V i e w C o n t r o l l e r . m
S D L / P P S S P P A b o u t V i e w C o n t r o l l e r . h
U I / D a r w i n F i l e S y s t e m S e r v i c e s . m m
U I / D a r w i n F i l e S y s t e m S e r v i c e s . h
C o m m o n / B a t t e r y / A p p l e B a t t e r y C l i e n t . m
U I / P S P N S A p p l i c a t i o n D e l e g a t e . m m
U I / P S P N S A p p l i c a t i o n D e l e g a t e . h )
2023-01-31 13:36:14 +03:00
set_source_files_properties ( UI/DarwinFileSystemServices.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-04-22 18:11:06 +03:00
set_source_files_properties ( UI/PSPNSApplicationDelegate.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-02-14 19:11:32 +03:00
set_source_files_properties ( SDL/CocoaBarItems.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-04-23 22:12:15 +03:00
set_source_files_properties ( SDL/PPSSPPAboutViewController.m PROPERTIES COMPILE_FLAGS -fobjc-arc )
2023-01-27 11:19:29 +03:00
set_source_files_properties ( Common/Battery/AppleBatteryClient.m PROPERTIES COMPILE_FLAGS -fobjc-arc )
set ( nativeExtraLibs ${ nativeExtraLibs } ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ IOKIT_LIBRARY } )
2023-05-05 17:17:45 -04:00
if ( USE_SYSTEM_LIBSDL2 )
set ( nativeExtraLibs ${ nativeExtraLibs } SDL2::SDL2 )
else ( )
set ( nativeExtraLibs ${ nativeExtraLibs } ${ SDL2Fwk } )
endif ( )
2018-10-28 11:33:25 -07:00
elseif ( USING_EGL )
2023-04-24 14:44:07 +02:00
set ( nativeExtraLibs ${ nativeExtraLibs } pthread SDL2::SDL2 )
else ( )
set ( nativeExtraLibs ${ nativeExtraLibs } SDL2::SDL2 )
2018-10-28 11:33:25 -07:00
endif ( )
2012-11-18 13:00:27 -03:00
endif ( )
2020-10-05 10:19:04 +02:00
if ( WIN32 )
if ( MINGW )
set ( CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <INCLUDES> <SOURCE> <OBJECT>" )
# required when using the dx9sdk include paths
add_definitions ( -include ${ CMAKE_CURRENT_SOURCE_DIR } /Windows/mingw_defines.h )
else ( )
target_link_libraries ( Common dxguid )
endif ( )
target_link_libraries ( Common winmm d3d9 dsound )
endif ( )
2023-03-24 17:19:57 +01:00
if ( NOT LIBRETRO )
list ( APPEND NativeAppSource
U I / A u d i o C o m m o n . h
U I / A u d i o C o m m o n . c p p
)
endif ( )
2016-10-12 20:58:50 +02:00
list ( APPEND NativeAppSource
2014-08-23 14:24:24 +02:00
a n d r o i d / j n i / T e s t R u n n e r . c p p
2018-08-13 00:25:08 +02:00
U I / D i s c o r d I n t e g r a t i o n . c p p
2014-06-28 02:49:50 +10:00
U I / N a t i v e A p p . c p p
2021-06-06 10:19:17 +02:00
U I / B a c k g r o u n d A u d i o . h
2014-06-28 02:49:50 +10:00
U I / B a c k g r o u n d A u d i o . c p p
2021-06-06 10:19:17 +02:00
U I / C h a t S c r e e n . h
2016-10-25 18:42:51 +08:00
U I / C h a t S c r e e n . c p p
2023-08-02 14:28:52 +02:00
U I / D e b u g O v e r l a y . c p p
U I / D e b u g O v e r l a y . h
2014-06-28 02:49:50 +10:00
U I / D e v S c r e e n s . c p p
2021-06-06 10:19:17 +02:00
U I / D e v S c r e e n s . h
2015-10-24 14:40:29 +02:00
U I / D i s p l a y L a y o u t S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / D i s p l a y L a y o u t S c r e e n . h
U I / E m u S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / E m u S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / G a m e I n f o C a c h e . h
2014-06-28 02:49:50 +10:00
U I / G a m e I n f o C a c h e . c p p
2021-06-06 10:19:17 +02:00
U I / M a i n S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / M a i n S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / M i s c S c r e e n s . h
2014-06-28 02:49:50 +10:00
U I / M i s c S c r e e n s . c p p
2021-06-06 10:19:17 +02:00
U I / P a u s e S c r e e n . h
2014-12-22 10:48:17 +01:00
U I / P a u s e S c r e e n . c p p
2023-06-16 13:44:35 +02:00
U I / T a b b e d D i a l o g S c r e e n . h
U I / T a b b e d D i a l o g S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / G a m e S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / G a m e S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / G a m e S e t t i n g s S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / G a m e S e t t i n g s S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / G P U D r i v e r T e s t S c r e e n . h
2018-12-19 14:01:19 +01:00
U I / G P U D r i v e r T e s t S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / T i l t A n a l o g S e t t i n g s S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / T i l t A n a l o g S e t t i n g s S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / T o u c h C o n t r o l L a y o u t S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / T o u c h C o n t r o l L a y o u t S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / T o u c h C o n t r o l V i s i b i l i t y S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / T o u c h C o n t r o l V i s i b i l i t y S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / G a m e p a d E m u . h
2014-06-28 02:49:50 +10:00
U I / G a m e p a d E m u . c p p
2023-02-01 14:58:16 +01:00
U I / J o y s t i c k H i s t o r y V i e w . h
U I / J o y s t i c k H i s t o r y V i e w . c p p
2021-06-06 10:19:17 +02:00
U I / O n S c r e e n D i s p l a y . h
2014-06-28 02:49:50 +10:00
U I / O n S c r e e n D i s p l a y . c p p
2021-06-06 10:19:17 +02:00
U I / C o n t r o l M a p p i n g S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / C o n t r o l M a p p i n g S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / R e m o t e I S O S c r e e n . h
2016-07-03 10:24:33 -07:00
U I / R e m o t e I S O S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / R e p o r t S c r e e n . h
2014-02-10 01:24:40 -08:00
U I / R e p o r t S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / S a v e d a t a S c r e e n . h
2015-06-11 20:22:16 +02:00
U I / S a v e d a t a S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / S t o r e . h
2014-06-28 02:49:50 +10:00
U I / S t o r e . c p p
2021-06-06 10:19:17 +02:00
U I / C w C h e a t S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / C w C h e a t S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / I n s t a l l Z i p S c r e e n . h
2014-06-28 02:49:50 +10:00
U I / I n s t a l l Z i p S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / M e m S t i c k S c r e e n . h
2021-04-24 22:47:57 +02:00
U I / M e m S t i c k S c r e e n . c p p
2021-06-06 10:19:17 +02:00
U I / P r o f i l e r D r a w . h
2015-10-14 17:45:21 +02:00
U I / P r o f i l e r D r a w . c p p
2023-03-26 11:21:34 +02:00
U I / C u s t o m B u t t o n M a p p i n g S c r e e n . h
U I / C u s t o m B u t t o n M a p p i n g S c r e e n . c p p
2022-02-11 12:32:23 +01:00
U I / T h e m e . h
U I / T h e m e . c p p
2023-06-17 13:48:49 +02:00
U I / R e t r o A c h i e v e m e n t S c r e e n s . c p p
U I / R e t r o A c h i e v e m e n t S c r e e n s . h
2018-10-28 11:33:25 -07:00
)
2016-12-05 16:51:28 +01:00
2014-06-28 02:49:50 +10:00
if ( ANDROID )
2018-10-28 11:33:25 -07:00
if ( ARM )
2014-06-28 02:49:50 +10:00
set ( NativeAppSource ${ NativeAppSource } android/jni/ArmEmitterTest.cpp )
2018-10-28 11:33:25 -07:00
elseif ( ARM64 )
2016-12-05 16:51:28 +01:00
set ( NativeAppSource ${ NativeAppSource } android/jni/Arm64EmitterTest.cpp )
2014-06-28 02:49:50 +10:00
endif ( )
2020-02-05 11:00:08 -06:00
if ( NOT LIBRETRO )
set ( nativeExtra ${ nativeExtra } ${ NativeAppSource } )
endif ( )
2014-06-28 02:49:50 +10:00
endif ( )
2022-12-06 12:23:09 -05:00
if ( IOS )
set ( nativeExtra ${ nativeExtra } ${ NativeAppSource } )
endif ( )
2012-11-18 13:00:27 -03:00
add_library ( native STATIC
2012-11-26 12:41:57 +10:00
$ { n a t i v e E x t r a }
2020-10-05 10:19:04 +02:00
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ q t . c p p
C o m m o n / R e n d e r / T e x t / d r a w _ t e x t _ q t . h
2020-09-29 23:59:05 +02:00
e x t / j p g e / j p g d . c p p
e x t / j p g e / j p g d . h
e x t / j p g e / j p g e . c p p
e x t / j p g e / j p g e . h
2018-10-28 11:33:25 -07:00
)
2013-12-19 11:10:46 +01:00
2018-10-28 11:33:25 -07:00
if ( LINUX AND NOT ANDROID )
set ( RT_LIB rt )
2013-12-19 11:10:46 +01:00
endif ( )
2018-10-28 11:33:25 -07:00
set ( ATOMIC_LIB )
2023-08-07 00:14:56 +08:00
if ( ANDROID OR ( LINUX AND ARM_DEVICE ) OR ( LINUX AND RISCV64 ) OR ( LINUX AND LOONGARCH64 ) )
2018-10-28 11:33:25 -07:00
set ( ATOMIC_LIB atomic )
2016-12-05 16:51:28 +01:00
endif ( )
2023-03-12 23:50:30 +01:00
target_link_libraries ( native ${ LIBZIP_LIBRARY } ${ PNG_LIBRARIES } ${ BASISU_LIBRARIES } ${ ZLIB_LIBRARY } vma gason udis86 ${ RT_LIB } ${ nativeExtraLibs } ${ ATOMIC_LIB } Common )
2017-01-10 01:19:58 +01:00
if ( TARGET Ext::GLEW )
2018-10-28 11:33:25 -07:00
target_link_libraries ( native Ext::GLEW )
2016-10-12 17:30:18 +02:00
endif ( )
2013-10-28 00:28:18 +10:00
2012-11-18 13:00:27 -03:00
if ( ANDROID )
2016-12-05 16:51:28 +01:00
target_link_libraries ( native log EGL OpenSLES )
2013-10-28 00:28:18 +10:00
elseif ( WIN32 )
2012-11-26 12:41:57 +10:00
target_link_libraries ( native ws2_32 winmm )
2018-10-27 17:55:55 +00:00
elseif ( ${ CMAKE_SYSTEM_NAME } MATCHES "^(DragonFly|FreeBSD|NetBSD)$" )
target_link_libraries ( native execinfo )
2012-11-18 13:00:27 -03:00
endif ( )
add_library ( kirk STATIC
2012-11-26 12:41:57 +10:00
e x t / l i b k i r k / A E S . c
e x t / l i b k i r k / A E S . h
2013-02-25 00:45:10 +10:00
e x t / l i b k i r k / a m c t r l . c
e x t / l i b k i r k / a m c t r l . h
2012-11-26 12:41:57 +10:00
e x t / l i b k i r k / S H A 1 . c
e x t / l i b k i r k / S H A 1 . h
e x t / l i b k i r k / b n . c
e x t / l i b k i r k / e c . c
e x t / l i b k i r k / k i r k _ e n g i n e . c
2018-10-28 11:33:25 -07:00
e x t / l i b k i r k / k i r k _ e n g i n e . h
)
2022-12-04 08:07:53 -08:00
target_include_directories ( kirk PRIVATE ext/libkirk )
2012-11-18 13:00:27 -03:00
2015-02-15 13:22:20 +08:00
add_library ( sfmt19937 STATIC
e x t / s f m t 1 9 9 3 7 / S F M T . c
e x t / s f m t 1 9 9 3 7 / S F M T . h
e x t / s f m t 1 9 9 3 7 / S F M T - c o m m o n . h
e x t / s f m t 1 9 9 3 7 / S F M T - p a r a m s . h
e x t / s f m t 1 9 9 3 7 / S F M T - p a r a m s 1 9 9 3 7 . h
)
2022-12-04 07:53:15 -08:00
target_compile_definitions ( sfmt19937 PRIVATE SFMT_MEXP=19937 )
target_include_directories ( sfmt19937 PRIVATE ext/sfmt19937 )
2015-02-15 13:22:20 +08:00
2013-04-30 18:44:20 +02:00
add_library ( xbrz STATIC
e x t / x b r z / x b r z . c p p
e x t / x b r z / x b r z . h
)
2022-12-04 08:07:53 -08:00
target_include_directories ( xbrz PRIVATE ext/xbrz )
2013-04-30 18:44:20 +02:00
2013-08-16 22:58:38 -07:00
add_library ( xxhash STATIC
e x t / x x h a s h . c
e x t / x x h a s h . h
)
2022-12-04 08:07:53 -08:00
target_include_directories ( xxhash PRIVATE ext/xxhash )
2013-08-16 22:58:38 -07:00
2012-11-18 13:00:27 -03:00
set ( CoreExtra )
2017-03-13 19:28:56 +01:00
set ( CoreExtraLibs )
2016-05-08 21:56:52 +02:00
set ( CoreExtra ${ CoreExtra }
2023-07-30 13:29:13 -07:00
C o r e / M I P S / I R / I R A n a l y s i s . c p p
C o r e / M I P S / I R / I R A n a l y s i s . h
2016-05-08 21:56:52 +02:00
C o r e / M I P S / I R / I R C o m p A L U . c p p
C o r e / M I P S / I R / I R C o m p B r a n c h . c p p
C o r e / M I P S / I R / I R C o m p F P U . c p p
C o r e / M I P S / I R / I R C o m p L o a d S t o r e . c p p
C o r e / M I P S / I R / I R C o m p V F P U . c p p
2016-05-09 20:05:06 +02:00
C o r e / M I P S / I R / I R F r o n t e n d . c p p
C o r e / M I P S / I R / I R F r o n t e n d . h
2016-05-08 21:56:52 +02:00
C o r e / M I P S / I R / I R I n s t . c p p
C o r e / M I P S / I R / I R I n s t . h
C o r e / M I P S / I R / I R I n t e r p r e t e r . c p p
C o r e / M I P S / I R / I R I n t e r p r e t e r . h
C o r e / M I P S / I R / I R J i t . c p p
C o r e / M I P S / I R / I R J i t . h
2023-08-03 23:05:10 -07:00
C o r e / M I P S / I R / I R N a t i v e C o m m o n . c p p
C o r e / M I P S / I R / I R N a t i v e C o m m o n . h
2016-05-08 21:56:52 +02:00
C o r e / M I P S / I R / I R P a s s S i m p l i f y . c p p
C o r e / M I P S / I R / I R P a s s S i m p l i f y . h
C o r e / M I P S / I R / I R R e g C a c h e . c p p
C o r e / M I P S / I R / I R R e g C a c h e . h
2018-10-28 11:33:25 -07:00
)
2016-05-08 21:56:52 +02:00
2016-10-12 17:32:52 +02:00
list ( APPEND CoreExtra
C o r e / M I P S / A R M / A r m A s m . c p p
C o r e / M I P S / A R M / A r m C o m p A L U . c p p
C o r e / M I P S / A R M / A r m C o m p B r a n c h . c p p
C o r e / M I P S / A R M / A r m C o m p F P U . c p p
C o r e / M I P S / A R M / A r m C o m p L o a d S t o r e . c p p
C o r e / M I P S / A R M / A r m C o m p V F P U . c p p
C o r e / M I P S / A R M / A r m C o m p V F P U N E O N . c p p
C o r e / M I P S / A R M / A r m C o m p V F P U N E O N U t i l . c p p
C o r e / M I P S / A R M / A r m C o m p R e p l a c e . c p p
C o r e / M I P S / A R M / A r m J i t . c p p
C o r e / M I P S / A R M / A r m J i t . h
C o r e / M I P S / A R M / A r m R e g C a c h e . c p p
C o r e / M I P S / A R M / A r m R e g C a c h e . h
C o r e / M I P S / A R M / A r m R e g C a c h e F P U . c p p
C o r e / M I P S / A R M / A r m R e g C a c h e F P U . h
G P U / C o m m o n / V e r t e x D e c o d e r A r m . c p p
)
list ( APPEND CoreExtra
C o r e / M I P S / A R M 6 4 / A r m 6 4 A s m . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p A L U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p B r a n c h . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p F P U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p L o a d S t o r e . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p V F P U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 C o m p R e p l a c e . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 J i t . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 J i t . h
C o r e / M I P S / A R M 6 4 / A r m 6 4 R e g C a c h e . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 R e g C a c h e . h
C o r e / M I P S / A R M 6 4 / A r m 6 4 R e g C a c h e F P U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 R e g C a c h e F P U . h
2023-09-03 11:30:04 -07:00
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R A s m . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p A L U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p B r a n c h . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p F P U . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p L o a d S t o r e . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p S y s t e m . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R C o m p V e c . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R J i t . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R J i t . h
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R R e g C a c h e . c p p
C o r e / M I P S / A R M 6 4 / A r m 6 4 I R R e g C a c h e . h
2016-10-12 17:32:52 +02:00
G P U / C o m m o n / V e r t e x D e c o d e r A r m 6 4 . c p p
2018-10-28 11:33:25 -07:00
C o r e / U t i l / D i s A r m 6 4 . c p p
)
2016-10-12 17:32:52 +02:00
list ( APPEND CoreExtra
C o r e / M I P S / x 8 6 / A s m . c p p
C o r e / M I P S / x 8 6 / C o m p A L U . c p p
C o r e / M I P S / x 8 6 / C o m p B r a n c h . c p p
C o r e / M I P S / x 8 6 / C o m p F P U . c p p
C o r e / M I P S / x 8 6 / C o m p L o a d S t o r e . c p p
C o r e / M I P S / x 8 6 / C o m p V F P U . c p p
C o r e / M I P S / x 8 6 / C o m p R e p l a c e . c p p
C o r e / M I P S / x 8 6 / J i t . c p p
C o r e / M I P S / x 8 6 / J i t . h
C o r e / M I P S / x 8 6 / J i t S a f e M e m . c p p
C o r e / M I P S / x 8 6 / J i t S a f e M e m . h
C o r e / M I P S / x 8 6 / R e g C a c h e . c p p
C o r e / M I P S / x 8 6 / R e g C a c h e . h
C o r e / M I P S / x 8 6 / R e g C a c h e F P U . c p p
C o r e / M I P S / x 8 6 / R e g C a c h e F P U . h
2023-08-20 18:36:06 -07:00
C o r e / M I P S / x 8 6 / X 6 4 I R A s m . c p p
2023-08-20 19:15:44 -07:00
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p A L U . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p B r a n c h . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p F P U . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p L o a d S t o r e . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p S y s t e m . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R C o m p V e c . c p p
2023-08-20 18:36:06 -07:00
C o r e / M I P S / x 8 6 / X 6 4 I R J i t . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R J i t . h
C o r e / M I P S / x 8 6 / X 6 4 I R R e g C a c h e . c p p
C o r e / M I P S / x 8 6 / X 6 4 I R R e g C a c h e . h
2016-10-12 17:32:52 +02:00
G P U / C o m m o n / V e r t e x D e c o d e r X 8 6 . c p p
2021-11-21 08:46:15 -08:00
G P U / S o f t w a r e / D r a w P i x e l X 8 6 . c p p
2017-05-10 17:31:34 -07:00
G P U / S o f t w a r e / S a m p l e r X 8 6 . c p p
2016-10-12 17:32:52 +02:00
)
list ( APPEND CoreExtra
C o r e / M I P S / M I P S / M i p s J i t . c p p
C o r e / M I P S / M I P S / M i p s J i t . h
)
2023-02-12 13:31:39 -08:00
list ( APPEND CoreExtra
2023-07-17 23:28:43 -07:00
C o r e / M I P S / R i s c V / R i s c V A s m . c p p
2023-07-20 21:09:59 -07:00
C o r e / M I P S / R i s c V / R i s c V C o m p A L U . c p p
C o r e / M I P S / R i s c V / R i s c V C o m p B r a n c h . c p p
C o r e / M I P S / R i s c V / R i s c V C o m p F P U . c p p
C o r e / M I P S / R i s c V / R i s c V C o m p L o a d S t o r e . c p p
C o r e / M I P S / R i s c V / R i s c V C o m p S y s t e m . c p p
C o r e / M I P S / R i s c V / R i s c V C o m p V e c . c p p
2023-07-16 18:54:59 -07:00
C o r e / M I P S / R i s c V / R i s c V J i t . c p p
C o r e / M I P S / R i s c V / R i s c V J i t . h
2023-07-20 19:22:12 -07:00
C o r e / M I P S / R i s c V / R i s c V R e g C a c h e . c p p
2023-07-17 23:28:43 -07:00
C o r e / M I P S / R i s c V / R i s c V R e g C a c h e . h
2023-02-12 13:31:39 -08:00
G P U / C o m m o n / V e r t e x D e c o d e r R i s c V . c p p
)
2018-10-28 11:33:25 -07:00
if ( NOT MOBILE_DEVICE )
2016-09-01 20:09:56 -04:00
set ( CoreExtra ${ CoreExtra }
C o r e / A V I D u m p . c p p
2016-09-03 18:26:01 -04:00
C o r e / A V I D u m p . h
C o r e / W a v e F i l e . c p p
2018-10-28 11:33:25 -07:00
C o r e / W a v e F i l e . h
)
2016-09-01 20:09:56 -04:00
endif ( )
2016-12-05 16:51:28 +01:00
set ( GPU_GLES
2023-02-03 21:06:43 +01:00
G P U / G L E S / S t e n c i l B u f f e r G L E S . c p p
2016-12-05 16:51:28 +01:00
G P U / G L E S / G P U _ G L E S . c p p
G P U / G L E S / G P U _ G L E S . h
2017-01-21 22:16:30 +01:00
G P U / G L E S / F r a g m e n t T e s t C a c h e G L E S . c p p
G P U / G L E S / F r a g m e n t T e s t C a c h e G L E S . h
2017-01-22 07:28:44 +01:00
G P U / G L E S / F r a m e b u f f e r M a n a g e r G L E S . c p p
G P U / G L E S / F r a m e b u f f e r M a n a g e r G L E S . h
2017-01-21 22:16:30 +01:00
G P U / G L E S / S h a d e r M a n a g e r G L E S . c p p
G P U / G L E S / S h a d e r M a n a g e r G L E S . h
G P U / G L E S / S t a t e M a p p i n g G L E S . c p p
G P U / G L E S / S t a t e M a p p i n g G L E S . h
G P U / G L E S / T e x t u r e C a c h e G L E S . c p p
G P U / G L E S / T e x t u r e C a c h e G L E S . h
2016-12-05 16:51:28 +01:00
G P U / G L E S / D r a w E n g i n e G L E S . c p p
G P U / G L E S / D r a w E n g i n e G L E S . h
)
set ( GPU_VULKAN
2018-01-17 13:59:32 +01:00
G P U / V u l k a n / D e b u g V i s V u l k a n . c p p
G P U / V u l k a n / D e b u g V i s V u l k a n . h
2016-12-05 16:51:28 +01:00
G P U / V u l k a n / D r a w E n g i n e V u l k a n . c p p
G P U / V u l k a n / D r a w E n g i n e V u l k a n . h
2020-08-03 23:22:11 +02:00
G P U / V u l k a n / F r a m e b u f f e r M a n a g e r V u l k a n . c p p
G P U / V u l k a n / F r a m e b u f f e r M a n a g e r V u l k a n . h
2016-12-05 16:51:28 +01:00
G P U / V u l k a n / G P U _ V u l k a n . c p p
G P U / V u l k a n / G P U _ V u l k a n . h
G P U / V u l k a n / P i p e l i n e M a n a g e r V u l k a n . c p p
G P U / V u l k a n / P i p e l i n e M a n a g e r V u l k a n . h
G P U / V u l k a n / S h a d e r M a n a g e r V u l k a n . c p p
G P U / V u l k a n / S h a d e r M a n a g e r V u l k a n . h
G P U / V u l k a n / S t a t e M a p p i n g V u l k a n . c p p
G P U / V u l k a n / S t a t e M a p p i n g V u l k a n . h
G P U / V u l k a n / T e x t u r e C a c h e V u l k a n . c p p
G P U / V u l k a n / T e x t u r e C a c h e V u l k a n . h
G P U / V u l k a n / V u l k a n U t i l . c p p
G P U / V u l k a n / V u l k a n U t i l . h
)
set ( GPU_D3D9
G P U / D i r e c t x 9 / D r a w E n g i n e D X 9 . c p p
G P U / D i r e c t x 9 / D r a w E n g i n e D X 9 . h
2020-08-03 23:24:50 +02:00
G P U / D i r e c t x 9 / F r a m e b u f f e r M a n a g e r D X 9 . c p p
G P U / D i r e c t x 9 / F r a m e b u f f e r M a n a g e r D X 9 . h
2016-12-05 16:51:28 +01:00
G P U / D i r e c t x 9 / G P U _ D X 9 . c p p
G P U / D i r e c t x 9 / G P U _ D X 9 . h
G P U / D i r e c t x 9 / S h a d e r M a n a g e r D X 9 . c p p
G P U / D i r e c t x 9 / S h a d e r M a n a g e r D X 9 . h
G P U / D i r e c t x 9 / S t a t e M a p p i n g D X 9 . c p p
G P U / D i r e c t x 9 / S t a t e M a p p i n g D X 9 . h
G P U / D i r e c t x 9 / T e x t u r e C a c h e D X 9 . c p p
G P U / D i r e c t x 9 / T e x t u r e C a c h e D X 9 . h
)
2017-02-08 17:47:07 +01:00
set ( GPU_D3D11
G P U / D 3 D 1 1 / D r a w E n g i n e D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / D r a w E n g i n e D 3 D 1 1 . h
G P U / D 3 D 1 1 / F r a m e b u f f e r M a n a g e r D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / F r a m e b u f f e r M a n a g e r D 3 D 1 1 . h
G P U / D 3 D 1 1 / G P U _ D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / G P U _ D 3 D 1 1 . h
2017-02-16 17:06:03 +01:00
G P U / D 3 D 1 1 / D 3 D 1 1 U t i l . c p p
G P U / D 3 D 1 1 / D 3 D 1 1 U t i l . h
2017-02-08 17:47:07 +01:00
G P U / D 3 D 1 1 / S h a d e r M a n a g e r D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / S h a d e r M a n a g e r D 3 D 1 1 . h
G P U / D 3 D 1 1 / S t a t e M a p p i n g D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / S t a t e M a p p i n g D 3 D 1 1 . h
G P U / D 3 D 1 1 / T e x t u r e C a c h e D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / T e x t u r e C a c h e D 3 D 1 1 . h
)
2016-12-05 16:51:28 +01:00
2018-01-30 00:24:27 +01:00
# We build Vulkan even on Apple to avoid annoying build differences.
set ( GPU_IMPLS ${ GPU_GLES } ${ GPU_VULKAN } )
2016-12-05 16:51:28 +01:00
if ( WIN32 )
2017-02-08 17:47:07 +01:00
list ( APPEND GPU_IMPLS ${ GPU_D3D9 } ${ GPU_D3D11 } )
2016-12-05 16:51:28 +01:00
endif ( )
2016-10-12 16:46:29 +02:00
set ( GPU_SOURCES
2016-12-05 16:51:28 +01:00
$ { G P U _ I M P L S }
$ { G P U _ N E O N }
2022-08-03 11:42:37 +02:00
G P U / C o m m o n / D r a w 2 D . c p p
G P U / C o m m o n / D r a w 2 D . h
2023-02-03 21:06:43 +01:00
G P U / C o m m o n / D e p t h B u f f e r C o m m o n . c p p
2022-08-22 12:20:21 +02:00
G P U / C o m m o n / T e x t u r e S h a d e r C o m m o n . c p p
G P U / C o m m o n / T e x t u r e S h a d e r C o m m o n . h
2016-10-12 16:46:29 +02:00
G P U / C o m m o n / D e p a l e t t i z e S h a d e r C o m m o n . c p p
G P U / C o m m o n / D e p a l e t t i z e S h a d e r C o m m o n . h
2020-10-31 18:56:44 +01:00
G P U / C o m m o n / F r a g m e n t S h a d e r G e n e r a t o r . c p p
G P U / C o m m o n / F r a g m e n t S h a d e r G e n e r a t o r . h
2020-11-01 13:02:53 +01:00
G P U / C o m m o n / V e r t e x S h a d e r G e n e r a t o r . c p p
G P U / C o m m o n / V e r t e x S h a d e r G e n e r a t o r . h
2021-10-26 09:56:14 +02:00
G P U / C o m m o n / G e o m e t r y S h a d e r G e n e r a t o r . c p p
G P U / C o m m o n / G e o m e t r y S h a d e r G e n e r a t o r . h
2020-08-03 23:17:22 +02:00
G P U / C o m m o n / F r a m e b u f f e r M a n a g e r C o m m o n . c p p
G P U / C o m m o n / F r a m e b u f f e r M a n a g e r C o m m o n . h
2016-10-12 16:46:29 +02:00
G P U / C o m m o n / G P U D e b u g I n t e r f a c e . c p p
G P U / C o m m o n / G P U D e b u g I n t e r f a c e . h
G P U / C o m m o n / G P U S t a t e U t i l s . c p p
G P U / C o m m o n / G P U S t a t e U t i l s . h
G P U / C o m m o n / D r a w E n g i n e C o m m o n . c p p
G P U / C o m m o n / D r a w E n g i n e C o m m o n . h
2020-05-09 22:06:22 -07:00
G P U / C o m m o n / P r e s e n t a t i o n C o m m o n . c p p
G P U / C o m m o n / P r e s e n t a t i o n C o m m o n . h
2020-11-02 16:12:45 +01:00
G P U / C o m m o n / R e i n t e r p r e t F r a m e b u f f e r . c p p
G P U / C o m m o n / R e i n t e r p r e t F r a m e b u f f e r . h
2016-10-12 16:46:29 +02:00
G P U / C o m m o n / S h a d e r I d . c p p
G P U / C o m m o n / S h a d e r I d . h
2017-02-16 17:06:03 +01:00
G P U / C o m m o n / S h a d e r U n i f o r m s . c p p
G P U / C o m m o n / S h a d e r U n i f o r m s . h
2017-03-13 16:51:36 +01:00
G P U / C o m m o n / S h a d e r C o m m o n . c p p
G P U / C o m m o n / S h a d e r C o m m o n . h
2016-10-12 16:46:29 +02:00
G P U / C o m m o n / S p l i n e C o m m o n . c p p
G P U / C o m m o n / S p l i n e C o m m o n . h
2017-11-01 14:49:50 +01:00
G P U / C o m m o n / S t e n c i l C o m m o n . c p p
G P U / C o m m o n / S t e n c i l C o m m o n . h
2016-10-12 16:46:29 +02:00
G P U / C o m m o n / S o f t w a r e T r a n s f o r m C o m m o n . c p p
G P U / C o m m o n / S o f t w a r e T r a n s f o r m C o m m o n . h
G P U / C o m m o n / V e r t e x D e c o d e r C o m m o n . c p p
G P U / C o m m o n / V e r t e x D e c o d e r C o m m o n . h
G P U / C o m m o n / T r a n s f o r m C o m m o n . c p p
G P U / C o m m o n / T r a n s f o r m C o m m o n . h
G P U / C o m m o n / I n d e x G e n e r a t o r . c p p
G P U / C o m m o n / I n d e x G e n e r a t o r . h
G P U / C o m m o n / T e x t u r e D e c o d e r . c p p
G P U / C o m m o n / T e x t u r e D e c o d e r . h
G P U / C o m m o n / T e x t u r e C a c h e C o m m o n . c p p
G P U / C o m m o n / T e x t u r e C a c h e C o m m o n . h
G P U / C o m m o n / T e x t u r e S c a l e r C o m m o n . c p p
G P U / C o m m o n / T e x t u r e S c a l e r C o m m o n . h
G P U / C o m m o n / P o s t S h a d e r . c p p
G P U / C o m m o n / P o s t S h a d e r . h
2023-03-09 21:11:53 +01:00
G P U / C o m m o n / T e x t u r e R e p l a c e r . c p p
G P U / C o m m o n / T e x t u r e R e p l a c e r . h
G P U / C o m m o n / R e p l a c e d T e x t u r e . c p p
G P U / C o m m o n / R e p l a c e d T e x t u r e . h
2016-10-12 16:46:29 +02:00
G P U / D e b u g g e r / B r e a k p o i n t s . c p p
G P U / D e b u g g e r / B r e a k p o i n t s . h
2018-09-01 08:32:03 -07:00
G P U / D e b u g g e r / D e b u g g e r . c p p
G P U / D e b u g g e r / D e b u g g e r . h
2022-09-05 10:38:38 -07:00
G P U / D e b u g g e r / G E C o m m a n d T a b l e . c p p
G P U / D e b u g g e r / G E C o m m a n d T a b l e . h
2019-06-23 18:48:40 -07:00
G P U / D e b u g g e r / P l a y b a c k . c p p
G P U / D e b u g g e r / P l a y b a c k . h
2017-06-02 21:53:20 -07:00
G P U / D e b u g g e r / R e c o r d . c p p
G P U / D e b u g g e r / R e c o r d . h
2019-06-23 18:48:40 -07:00
G P U / D e b u g g e r / R e c o r d F o r m a t . h
2016-10-12 16:46:29 +02:00
G P U / D e b u g g e r / S t e p p i n g . c p p
G P U / D e b u g g e r / S t e p p i n g . h
2020-08-04 14:45:14 +02:00
G P U / g e _ c o n s t a n t s . h
G P U / G e C o n s t a n t s . c p p
2016-10-12 16:46:29 +02:00
G P U / G P U I n t e r f a c e . h
G P U / G e D i s a s m . c p p
G P U / G e D i s a s m . h
G P U / G P U . c p p
G P U / G P U . h
G P U / G P U C o m m o n . c p p
G P U / G P U C o m m o n . h
2023-02-25 14:24:59 +01:00
G P U / G P U C o m m o n H W . c p p
G P U / G P U C o m m o n H W . h
2016-10-12 16:46:29 +02:00
G P U / G P U S t a t e . c p p
G P U / G P U S t a t e . h
G P U / M a t h 3 D . c p p
G P U / M a t h 3 D . h
2022-01-13 09:26:59 -08:00
G P U / S o f t w a r e / B i n M a n a g e r . c p p
G P U / S o f t w a r e / B i n M a n a g e r . h
2016-10-12 16:46:29 +02:00
G P U / S o f t w a r e / C l i p p e r . c p p
G P U / S o f t w a r e / C l i p p e r . h
2021-11-21 07:20:19 -08:00
G P U / S o f t w a r e / D r a w P i x e l . c p p
G P U / S o f t w a r e / D r a w P i x e l . h
2021-11-20 13:11:52 -08:00
G P U / S o f t w a r e / F u n c I d . c p p
G P U / S o f t w a r e / F u n c I d . h
2016-10-12 16:46:29 +02:00
G P U / S o f t w a r e / L i g h t i n g . c p p
G P U / S o f t w a r e / L i g h t i n g . h
G P U / S o f t w a r e / R a s t e r i z e r . c p p
G P U / S o f t w a r e / R a s t e r i z e r . h
2019-10-28 09:33:30 +01:00
G P U / S o f t w a r e / R a s t e r i z e r R e c t a n g l e . c p p
G P U / S o f t w a r e / R a s t e r i z e r R e c t a n g l e . h
2021-11-27 16:36:14 -08:00
G P U / S o f t w a r e / R a s t e r i z e r R e g C a c h e . c p p
G P U / S o f t w a r e / R a s t e r i z e r R e g C a c h e . h
2017-05-09 19:48:05 -07:00
G P U / S o f t w a r e / S a m p l e r . c p p
G P U / S o f t w a r e / S a m p l e r . h
2016-10-12 16:46:29 +02:00
G P U / S o f t w a r e / S o f t G p u . c p p
G P U / S o f t w a r e / S o f t G p u . h
G P U / S o f t w a r e / T r a n s f o r m U n i t . c p p
G P U / S o f t w a r e / T r a n s f o r m U n i t . h
2018-10-28 11:33:25 -07:00
)
2016-10-12 16:46:29 +02:00
2012-11-18 13:00:27 -03:00
# 'ppsspp_jni' on ANDROID, 'Core' everywhere else
# SHARED on ANDROID, STATIC everywhere else
add_library ( ${ CoreLibName } ${ CoreLinkType }
2012-11-26 12:41:57 +10:00
$ { C o r e E x t r a }
2022-08-18 17:41:53 +03:00
$ { C o m m o n J I T }
2012-11-26 12:41:57 +10:00
C o r e / C o n f i g . c p p
C o r e / C o n f i g . h
2023-04-05 11:35:46 +02:00
C o r e / C o n f i g S e t t i n g s . c p p
C o r e / C o n f i g S e t t i n g s . h
2018-06-16 18:42:31 -07:00
C o r e / C o n f i g V a l u e s . h
2021-07-08 21:30:23 +02:00
C o r e / C o n t r o l M a p p e r . c p p
C o r e / C o n t r o l M a p p e r . h
2012-11-26 12:41:57 +10:00
C o r e / C o r e . c p p
C o r e / C o r e . h
2015-09-26 16:01:16 +02:00
C o r e / C o m p a t i b i l i t y . c p p
C o r e / C o m p a t i b i l i t y . h
2012-11-26 12:41:57 +10:00
C o r e / C o r e P a r a m e t e r . h
C o r e / C o r e T i m i n g . c p p
C o r e / C o r e T i m i n g . h
2013-05-30 22:42:27 -07:00
C o r e / C w C h e a t . c p p
C o r e / C w C h e a t . h
2023-08-13 13:33:38 +02:00
C o r e / F r a m e T i m i n g . c p p
C o r e / F r a m e T i m i n g . h
2013-06-23 00:25:55 -04:00
C o r e / H D R e m a s t e r . c p p
C o r e / H D R e m a s t e r . h
2020-07-20 11:38:39 +02:00
C o r e / I n s t a n c e . c p p
C o r e / I n s t a n c e . h
2020-10-04 00:25:21 +02:00
C o r e / K e y M a p . c p p
C o r e / K e y M a p . h
2021-08-28 15:12:10 +02:00
C o r e / K e y M a p D e f a u l t s . c p p
C o r e / K e y M a p D e f a u l t s . h
2023-07-02 12:00:13 +02:00
C o r e / R e t r o A c h i e v e m e n t s . h
C o r e / R e t r o A c h i e v e m e n t s . c p p
2013-08-10 09:08:31 -07:00
C o r e / T h r e a d E v e n t Q u e u e . h
2023-02-01 15:04:32 +01:00
C o r e / T i l t E v e n t P r o c e s s o r . h
C o r e / T i l t E v e n t P r o c e s s o r . c p p
2018-04-21 13:51:18 -07:00
C o r e / W e b S e r v e r . c p p
C o r e / W e b S e r v e r . h
2012-11-26 12:41:57 +10:00
C o r e / D e b u g g e r / B r e a k p o i n t s . c p p
C o r e / D e b u g g e r / B r e a k p o i n t s . h
C o r e / D e b u g g e r / D e b u g I n t e r f a c e . h
2021-02-02 00:08:05 -08:00
C o r e / D e b u g g e r / M e m B l o c k I n f o . c p p
C o r e / D e b u g g e r / M e m B l o c k I n f o . h
2012-11-26 12:41:57 +10:00
C o r e / D e b u g g e r / S y m b o l M a p . c p p
C o r e / D e b u g g e r / S y m b o l M a p . h
2013-12-30 00:23:04 +01:00
C o r e / D e b u g g e r / D i s a s s e m b l y M a n a g e r . c p p
C o r e / D e b u g g e r / D i s a s s e m b l y M a n a g e r . h
2018-04-12 22:11:11 -07:00
C o r e / D e b u g g e r / W e b S o c k e t . c p p
C o r e / D e b u g g e r / W e b S o c k e t . h
2018-05-03 06:20:20 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / B r e a k p o i n t S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / B r e a k p o i n t S u b s c r i b e r . h
2018-04-15 08:50:25 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / C P U C o r e S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / C P U C o r e S u b s c r i b e r . h
2018-04-22 20:35:24 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / D i s a s m S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / D i s a s m S u b s c r i b e r . h
2018-04-14 08:54:04 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / G a m e B r o a d c a s t e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / G a m e B r o a d c a s t e r . h
2018-04-21 18:26:36 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / G a m e S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / G a m e S u b s c r i b e r . h
2023-05-31 19:17:43 +03:00
C o r e / D e b u g g e r / W e b S o c k e t / C l i e n t C o n f i g S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / C l i e n t C o n f i g S u b s c r i b e r . h
2018-06-16 15:07:25 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / G P U B u f f e r S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / G P U B u f f e r S u b s c r i b e r . h
2018-09-01 10:58:28 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / G P U R e c o r d S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / G P U R e c o r d S u b s c r i b e r . h
2021-09-19 14:24:43 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / G P U S t a t s S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / G P U S t a t s S u b s c r i b e r . h
2018-05-08 17:23:14 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / H L E S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / H L E S u b s c r i b e r . h
2021-01-18 17:51:35 -08:00
C o r e / D e b u g g e r / W e b S o c k e t / I n p u t B r o a d c a s t e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / I n p u t B r o a d c a s t e r . h
2021-01-18 16:58:34 -08:00
C o r e / D e b u g g e r / W e b S o c k e t / I n p u t S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / I n p u t S u b s c r i b e r . h
2018-04-14 08:54:04 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / L o g B r o a d c a s t e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / L o g B r o a d c a s t e r . h
2021-04-04 20:23:51 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / M e m o r y I n f o S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / M e m o r y I n f o S u b s c r i b e r . h
2020-07-26 01:18:16 +03:00
C o r e / D e b u g g e r / W e b S o c k e t / M e m o r y S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / M e m o r y S u b s c r i b e r . h
2021-05-23 21:23:13 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / R e p l a y S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / R e p l a y S u b s c r i b e r . h
2018-04-14 08:54:04 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / S t e p p i n g B r o a d c a s t e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / S t e p p i n g B r o a d c a s t e r . h
2018-04-29 22:02:04 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / S t e p p i n g S u b s c r i b e r . c p p
C o r e / D e b u g g e r / W e b S o c k e t / S t e p p i n g S u b s c r i b e r . h
2018-04-15 08:50:25 -07:00
C o r e / D e b u g g e r / W e b S o c k e t / W e b S o c k e t U t i l s . c p p
C o r e / D e b u g g e r / W e b S o c k e t / W e b S o c k e t U t i l s . h
2012-12-10 13:08:54 +01:00
C o r e / D i a l o g / P S P D i a l o g . c p p
C o r e / D i a l o g / P S P D i a l o g . h
2013-09-14 07:50:22 +08:00
C o r e / D i a l o g / P S P G a m e d a t a I n s t a l l D i a l o g . c p p
2013-09-13 23:19:53 +08:00
C o r e / D i a l o g / P S P G a m e d a t a I n s t a l l D i a l o g . h
2012-12-10 13:08:54 +01:00
C o r e / D i a l o g / P S P M s g D i a l o g . c p p
C o r e / D i a l o g / P S P M s g D i a l o g . h
2013-10-13 10:32:56 +08:00
C o r e / D i a l o g / P S P N e t c o n f D i a l o g . c p p
C o r e / D i a l o g / P S P N e t c o n f D i a l o g . h
2021-03-12 14:32:33 +07:00
C o r e / D i a l o g / P S P N p S i g n i n D i a l o g . c p p
C o r e / D i a l o g / P S P N p S i g n i n D i a l o g . h
2012-12-15 15:31:43 -08:00
C o r e / D i a l o g / P S P O s k D i a l o g . c p p
C o r e / D i a l o g / P S P O s k D i a l o g . h
2012-12-10 13:08:54 +01:00
C o r e / D i a l o g / P S P P l a c e h o l d e r D i a l o g . c p p
C o r e / D i a l o g / P S P P l a c e h o l d e r D i a l o g . h
C o r e / D i a l o g / P S P S a v e D i a l o g . c p p
C o r e / D i a l o g / P S P S a v e D i a l o g . h
2014-04-28 21:54:52 +08:00
C o r e / D i a l o g / P S P S c r e e n s h o t D i a l o g . c p p
C o r e / D i a l o g / P S P S c r e e n s h o t D i a l o g . h
2012-12-10 13:08:54 +01:00
C o r e / D i a l o g / S a v e d a t a P a r a m . c p p
C o r e / D i a l o g / S a v e d a t a P a r a m . h
2012-11-26 12:41:57 +10:00
C o r e / E L F / E l f R e a d e r . c p p
C o r e / E L F / E l f R e a d e r . h
C o r e / E L F / E l f T y p e s . h
2013-04-08 21:46:41 +02:00
C o r e / E L F / P B P R e a d e r . c p p
C o r e / E L F / P B P R e a d e r . h
2012-11-26 12:41:57 +10:00
C o r e / E L F / P r x D e c r y p t e r . c p p
C o r e / E L F / P r x D e c r y p t e r . h
2012-11-30 21:49:59 +01:00
C o r e / E L F / P a r a m S F O . c p p
C o r e / E L F / P a r a m S F O . h
2013-05-09 04:29:23 +10:00
C o r e / F i l e S y s t e m s / t l z r c . c p p
2017-06-03 12:47:38 -07:00
C o r e / F i l e S y s t e m s / B l o b F i l e S y s t e m . c p p
C o r e / F i l e S y s t e m s / B l o b F i l e S y s t e m . h
2012-11-26 12:41:57 +10:00
C o r e / F i l e S y s t e m s / B l o c k D e v i c e s . c p p
C o r e / F i l e S y s t e m s / B l o c k D e v i c e s . h
C o r e / F i l e S y s t e m s / D i r e c t o r y F i l e S y s t e m . c p p
C o r e / F i l e S y s t e m s / D i r e c t o r y F i l e S y s t e m . h
C o r e / F i l e S y s t e m s / F i l e S y s t e m . h
2013-12-29 23:28:31 +01:00
C o r e / F i l e S y s t e m s / F i l e S y s t e m . c p p
2012-11-26 12:41:57 +10:00
C o r e / F i l e S y s t e m s / I S O F i l e S y s t e m . c p p
C o r e / F i l e S y s t e m s / I S O F i l e S y s t e m . h
C o r e / F i l e S y s t e m s / M e t a F i l e S y s t e m . c p p
C o r e / F i l e S y s t e m s / M e t a F i l e S y s t e m . h
2013-07-27 23:46:26 -07:00
C o r e / F i l e S y s t e m s / V i r t u a l D i s c F i l e S y s t e m . c p p
C o r e / F i l e S y s t e m s / V i r t u a l D i s c F i l e S y s t e m . h
2013-02-28 08:13:01 -08:00
C o r e / F o n t / P G F . c p p
C o r e / F o n t / P G F . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / F u n c t i o n W r a p p e r s . h
C o r e / H L E / H L E . c p p
C o r e / H L E / H L E . h
2013-11-30 20:57:44 +01:00
C o r e / H L E / R e p l a c e T a b l e s . c p p
C o r e / H L E / R e p l a c e T a b l e s . h
2014-05-22 23:38:21 -07:00
C o r e / H L E / H L E H e l p e r T h r e a d . c p p
C o r e / H L E / H L E H e l p e r T h r e a d . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / H L E T a b l e s . c p p
C o r e / H L E / H L E T a b l e s . h
2013-09-02 17:59:47 -07:00
C o r e / H L E / K e r n e l W a i t H e l p e r s . h
2016-08-28 20:55:25 +08:00
C o r e / H L E / K U B r i d g e . h
C o r e / H L E / K U B r i d g e . c p p
2020-08-25 19:54:51 -07:00
C o r e / H L E / P l u g i n s . h
C o r e / H L E / P l u g i n s . c p p
2015-09-12 13:03:15 -07:00
C o r e / H L E / T h r e a d Q u e u e L i s t . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / _ _ s c e A u d i o . c p p
C o r e / H L E / _ _ s c e A u d i o . h
2015-02-08 09:35:00 +08:00
C o r e / H L E / s c e A d l e r . c p p
C o r e / H L E / s c e A d l e r . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e A t r a c . c p p
C o r e / H L E / s c e A t r a c . h
C o r e / H L E / s c e A u d i o . c p p
2013-06-09 02:17:17 -07:00
C o r e / H L E / s c e A u d i o c o d e c . c p p
C o r e / H L E / s c e A u d i o c o d e c . h
2015-03-08 12:50:06 +08:00
C o r e / H L E / s c e A u d i o R o u t i n g . c p p
C o r e / H L E / s c e A u d i o R o u t i n g . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e A u d i o . h
2013-06-30 20:21:56 +08:00
C o r e / H L E / s c e C c c . h
C o r e / H L E / s c e C c c . c p p
2013-01-29 00:11:02 +01:00
C o r e / H L E / s c e C h n n l s v . c p p
C o r e / H L E / s c e C h n n l s v . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e C t r l . c p p
C o r e / H L E / s c e C t r l . h
2013-04-05 10:14:12 -07:00
C o r e / H L E / s c e D e f l t . c p p
C o r e / H L E / s c e D e f l t . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e D i s p l a y . c p p
C o r e / H L E / s c e D i s p l a y . h
C o r e / H L E / s c e D m a c . c p p
C o r e / H L E / s c e D m a c . h
2015-03-08 13:27:40 +08:00
C o r e / H L E / s c e G 7 2 9 . c p p
C o r e / H L E / s c e G 7 2 9 . h
2013-03-19 14:28:26 +01:00
C o r e / H L E / s c e G a m e U p d a t e . c p p
C o r e / H L E / s c e G a m e U p d a t e . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e G e . c p p
C o r e / H L E / s c e G e . h
C o r e / H L E / s c e F o n t . c p p
C o r e / H L E / s c e F o n t . h
2013-09-04 10:34:00 +02:00
C o r e / H L E / s c e H e a p . c p p
C o r e / H L E / s c e H e a p . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e H p r m . c p p
C o r e / H L E / s c e H p r m . h
C o r e / H L E / s c e H t t p . c p p
C o r e / H L E / s c e H t t p . h
C o r e / H L E / s c e I m p o s e . c p p
C o r e / H L E / s c e I m p o s e . h
C o r e / H L E / s c e I o . c p p
C o r e / H L E / s c e I o . h
2013-05-15 19:49:34 +08:00
C o r e / H L E / s c e J p e g . c p p
C o r e / H L E / s c e J p e g . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e K e r n e l . c p p
C o r e / H L E / s c e K e r n e l . h
C o r e / H L E / s c e K e r n e l A l a r m . c p p
C o r e / H L E / s c e K e r n e l A l a r m . h
C o r e / H L E / s c e K e r n e l E v e n t F l a g . c p p
C o r e / H L E / s c e K e r n e l E v e n t F l a g . h
2019-08-08 17:13:47 +02:00
C o r e / H L E / s c e K e r n e l H e a p . c p p
C o r e / H L E / s c e K e r n e l H e a p . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e K e r n e l I n t e r r u p t . c p p
C o r e / H L E / s c e K e r n e l I n t e r r u p t . h
C o r e / H L E / s c e K e r n e l M b x . c p p
C o r e / H L E / s c e K e r n e l M b x . h
C o r e / H L E / s c e K e r n e l M e m o r y . c p p
C o r e / H L E / s c e K e r n e l M e m o r y . h
C o r e / H L E / s c e K e r n e l M o d u l e . c p p
C o r e / H L E / s c e K e r n e l M o d u l e . h
C o r e / H L E / s c e K e r n e l M s g P i p e . c p p
C o r e / H L E / s c e K e r n e l M s g P i p e . h
C o r e / H L E / s c e K e r n e l M u t e x . c p p
C o r e / H L E / s c e K e r n e l M u t e x . h
C o r e / H L E / s c e K e r n e l S e m a p h o r e . c p p
C o r e / H L E / s c e K e r n e l S e m a p h o r e . h
C o r e / H L E / s c e K e r n e l T h r e a d . c p p
C o r e / H L E / s c e K e r n e l T h r e a d . h
C o r e / H L E / s c e K e r n e l T i m e . c p p
C o r e / H L E / s c e K e r n e l T i m e . h
C o r e / H L E / s c e K e r n e l V T i m e r . c p p
C o r e / H L E / s c e K e r n e l V T i m e r . h
C o r e / H L E / s c e M p e g . c p p
C o r e / H L E / s c e M p e g . h
C o r e / H L E / s c e N e t . c p p
C o r e / H L E / s c e N e t . h
2013-09-07 00:55:42 +02:00
C o r e / H L E / s c e N e t A d h o c . c p p
C o r e / H L E / s c e N e t A d h o c . h
2013-11-10 01:26:31 +00:00
C o r e / H L E / p r o A d h o c . h
C o r e / H L E / p r o A d h o c . c p p
2014-08-04 21:15:58 +08:00
C o r e / H L E / p r o A d h o c S e r v e r . h
C o r e / H L E / p r o A d h o c S e r v e r . c p p
2012-12-07 01:44:29 +07:00
C o r e / H L E / s c e O p e n P S I D . c p p
C o r e / H L E / s c e O p e n P S I D . h
2013-03-15 07:45:00 -07:00
C o r e / H L E / s c e P 3 d a . c p p
C o r e / H L E / s c e P 3 d a . h
2014-01-25 12:19:48 +08:00
C o r e / H L E / s c e M t 1 9 9 3 7 . c p p
C o r e / H L E / s c e M t 1 9 9 3 7 . h
2013-05-15 19:49:34 +08:00
C o r e / H L E / s c e M d 5 . c p p
C o r e / H L E / s c e M d 5 . h
2013-04-28 08:27:48 +08:00
C o r e / H L E / s c e M p 4 . c p p
C o r e / H L E / s c e M p 4 . h
2013-05-06 21:09:40 +08:00
C o r e / H L E / s c e M p 3 . c p p
C o r e / H L E / s c e M p 3 . h
2012-12-07 01:44:29 +07:00
C o r e / H L E / s c e P a r s e H t t p . c p p
C o r e / H L E / s c e P a r s e H t t p . h
C o r e / H L E / s c e P a r s e U r i . c p p
C o r e / H L E / s c e P a r s e U r i . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e P o w e r . c p p
C o r e / H L E / s c e P o w e r . h
C o r e / H L E / s c e P s m f . c p p
C o r e / H L E / s c e P s m f . h
C o r e / H L E / s c e R t c . c p p
C o r e / H L E / s c e R t c . h
C o r e / H L E / s c e S a s . c p p
C o r e / H L E / s c e S a s . h
2015-02-15 13:22:20 +08:00
C o r e / H L E / s c e S f m t 1 9 9 3 7 . c p p
C o r e / H L E / s c e S f m t 1 9 9 3 7 . h
2014-12-05 15:24:39 +08:00
C o r e / H L E / s c e S h a 2 5 6 . c p p
C o r e / H L E / s c e S h a 2 5 6 . h
2012-12-07 01:44:29 +07:00
C o r e / H L E / s c e S s l . c p p
C o r e / H L E / s c e S s l . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e U m d . c p p
C o r e / H L E / s c e U m d . h
2012-12-17 21:45:32 +01:00
C o r e / H L E / s c e U s b . c p p
C o r e / H L E / s c e U s b . h
2018-08-15 18:35:07 +02:00
C o r e / H L E / s c e U s b A c c . c p p
C o r e / H L E / s c e U s b A c c . h
2017-08-20 21:03:06 +03:00
C o r e / H L E / s c e U s b C a m . c p p
C o r e / H L E / s c e U s b C a m . h
2014-08-13 00:11:26 +08:00
C o r e / H L E / s c e U s b G p s . c p p
C o r e / H L E / s c e U s b G p s . h
2019-08-03 18:33:43 +03:00
C o r e / H L E / s c e U s b M i c . c p p
C o r e / H L E / s c e U s b M i c . h
2012-11-26 12:41:57 +10:00
C o r e / H L E / s c e U t i l i t y . c p p
C o r e / H L E / s c e U t i l i t y . h
2012-12-07 01:44:29 +07:00
C o r e / H L E / s c e V a u d i o . c p p
C o r e / H L E / s c e V a u d i o . h
2013-02-24 19:27:37 +02:00
C o r e / H L E / s c e P s p N p D r m _ u s e r . c p p
C o r e / H L E / s c e P s p N p D r m _ u s e r . h
2013-04-29 12:40:09 +09:00
C o r e / H L E / s c e N p . c p p
C o r e / H L E / s c e N p . h
2022-03-05 19:58:09 +07:00
C o r e / H L E / s c e N p 2 . c p p
C o r e / H L E / s c e N p 2 . h
2013-04-29 12:40:09 +09:00
C o r e / H L E / s c e P a u t h . c p p
C o r e / H L E / s c e P a u t h . h
2014-03-23 19:45:08 +01:00
C o r e / H W / S i m p l e A u d i o D e c . c p p
C o r e / H W / S i m p l e A u d i o D e c . h
2013-08-11 11:40:41 -07:00
C o r e / H W / A s y n c I O M a n a g e r . c p p
C o r e / H W / A s y n c I O M a n a g e r . h
2020-08-09 21:20:42 -07:00
C o r e / H W / B u f f e r Q u e u e . c p p
C o r e / H W / B u f f e r Q u e u e . h
2020-01-09 15:57:09 +02:00
C o r e / H W / C a m e r a . c p p
C o r e / H W / C a m e r a . h
2022-01-30 09:41:08 -08:00
C o r e / H W / D i s p l a y . c p p
C o r e / H W / D i s p l a y . h
2013-01-05 16:23:21 +01:00
C o r e / H W / M e d i a E n g i n e . c p p
C o r e / H W / M e d i a E n g i n e . h
2013-06-01 23:37:51 +02:00
C o r e / H W / M p e g D e m u x . c p p
C o r e / H W / M p e g D e m u x . h
2012-11-26 12:41:57 +10:00
C o r e / H W / M e m o r y S t i c k . c p p
C o r e / H W / M e m o r y S t i c k . h
2012-12-16 20:40:49 +01:00
C o r e / H W / S a s A u d i o . c p p
C o r e / H W / S a s A u d i o . h
2015-10-27 12:34:54 +01:00
C o r e / H W / S a s R e v e r b . c p p
C o r e / H W / S a s R e v e r b . h
2015-01-11 15:13:43 +01:00
C o r e / H W / S t e r e o R e s a m p l e r . c p p
C o r e / H W / S t e r e o R e s a m p l e r . h
2012-11-26 12:41:57 +10:00
C o r e / L o a d e r s . c p p
C o r e / L o a d e r s . h
2015-06-27 10:58:44 -07:00
C o r e / F i l e L o a d e r s / C a c h i n g F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / C a c h i n g F i l e L o a d e r . h
2015-06-27 18:32:21 -07:00
C o r e / F i l e L o a d e r s / D i s k C a c h i n g F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / D i s k C a c h i n g F i l e L o a d e r . h
2015-06-27 10:58:44 -07:00
C o r e / F i l e L o a d e r s / H T T P F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / H T T P F i l e L o a d e r . h
C o r e / F i l e L o a d e r s / L o c a l F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / L o c a l F i l e L o a d e r . h
2015-12-19 15:23:25 -08:00
C o r e / F i l e L o a d e r s / R a m C a c h i n g F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / R a m C a c h i n g F i l e L o a d e r . h
2015-06-27 10:58:44 -07:00
C o r e / F i l e L o a d e r s / R e t r y i n g F i l e L o a d e r . c p p
C o r e / F i l e L o a d e r s / R e t r y i n g F i l e L o a d e r . h
2012-11-26 12:41:57 +10:00
C o r e / M I P S / M I P S . c p p
C o r e / M I P S / M I P S . h
C o r e / M I P S / M I P S A n a l y s t . c p p
C o r e / M I P S / M I P S A n a l y s t . h
C o r e / M I P S / M I P S C o d e U t i l s . c p p
C o r e / M I P S / M I P S C o d e U t i l s . h
C o r e / M I P S / M I P S D e b u g I n t e r f a c e . c p p
C o r e / M I P S / M I P S D e b u g I n t e r f a c e . h
C o r e / M I P S / M I P S D i s . c p p
C o r e / M I P S / M I P S D i s . h
C o r e / M I P S / M I P S D i s V F P U . c p p
C o r e / M I P S / M I P S D i s V F P U . h
C o r e / M I P S / M I P S I n t . c p p
C o r e / M I P S / M I P S I n t . h
C o r e / M I P S / M I P S I n t V F P U . c p p
C o r e / M I P S / M I P S I n t V F P U . h
2013-08-12 01:54:14 -07:00
C o r e / M I P S / M I P S S t a c k W a l k . c p p
C o r e / M I P S / M I P S S t a c k W a l k . h
2012-11-26 12:41:57 +10:00
C o r e / M I P S / M I P S T a b l e s . c p p
C o r e / M I P S / M I P S T a b l e s . h
C o r e / M I P S / M I P S V F P U U t i l s . c p p
C o r e / M I P S / M I P S V F P U U t i l s . h
2023-04-03 11:33:41 +02:00
C o r e / M I P S / M I P S V F P U F a l l b a c k s . c p p
C o r e / M I P S / M I P S V F P U F a l l b a c k s . h
2013-07-28 14:50:25 +02:00
C o r e / M I P S / M I P S A s m . c p p
C o r e / M I P S / M I P S A s m . h
2020-07-15 12:10:33 +02:00
C o r e / M e m F a u l t . c p p
C o r e / M e m F a u l t . h
2012-11-26 12:41:57 +10:00
C o r e / M e m M a p . c p p
C o r e / M e m M a p . h
C o r e / M e m M a p F u n c t i o n s . c p p
2015-04-05 18:03:50 -07:00
C o r e / M e m M a p H e l p e r s . h
2012-11-26 12:41:57 +10:00
C o r e / P S P L o a d e r s . c p p
C o r e / P S P L o a d e r s . h
2013-03-01 08:58:05 -08:00
C o r e / R e p o r t i n g . c p p
C o r e / R e p o r t i n g . h
2018-03-17 23:30:04 -07:00
C o r e / R e p l a y . c p p
C o r e / R e p l a y . h
2012-12-27 10:34:22 -08:00
C o r e / S a v e S t a t e . c p p
C o r e / S a v e S t a t e . h
2014-12-20 23:14:46 -08:00
C o r e / S c r e e n s h o t . c p p
C o r e / S c r e e n s h o t . h
2012-11-26 12:41:57 +10:00
C o r e / S y s t e m . c p p
C o r e / S y s t e m . h
2020-10-05 20:58:33 +02:00
C o r e / T h r e a d P o o l s . c p p
C o r e / T h r e a d P o o l s . h
2015-01-11 13:50:52 -08:00
C o r e / U t i l / A u d i o F o r m a t . c p p
C o r e / U t i l / A u d i o F o r m a t . h
2013-11-20 14:42:48 +01:00
C o r e / U t i l / G a m e M a n a g e r . c p p
C o r e / U t i l / G a m e M a n a g e r . h
2020-01-18 02:32:09 +07:00
C o r e / U t i l / P o r t M a n a g e r . c p p
C o r e / U t i l / P o r t M a n a g e r . h
2012-11-26 12:41:57 +10:00
C o r e / U t i l / B l o c k A l l o c a t o r . c p p
C o r e / U t i l / B l o c k A l l o c a t o r . h
C o r e / U t i l / P P G e D r a w . c p p
C o r e / U t i l / P P G e D r a w . h
2016-10-12 16:46:29 +02:00
$ { G P U _ S O U R C E S }
2016-10-12 17:30:18 +02:00
e x t / d i s a r m . c p p
2022-12-30 11:36:32 -08:00
e x t / d i s a r m . h
e x t / r i s c v - d i s a s . c p p
e x t / r i s c v - d i s a s . h
2021-11-29 10:05:13 -08:00
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g i t - v e r s i o n . c p p
2018-10-28 11:33:25 -07:00
)
2016-12-05 16:51:28 +01:00
if ( ANDROID )
2018-10-28 11:33:25 -07:00
set ( CoreExtraLibs ${ CoreExtraLibs } android )
if ( X86_64 )
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic" )
endif ( )
2017-11-18 08:16:44 -08:00
endif ( )
2022-12-17 10:08:46 -08:00
if ( USE_ARMIPS )
set ( CoreExtraLibs ${ CoreExtraLibs } armips )
else ( )
add_definitions ( -DNO_ARMIPS=1 )
endif ( )
2016-12-05 16:51:28 +01:00
2017-12-15 16:03:48 +01:00
# needed for VK_USE_PLATFORM_XCB_KHR only
#if(VULKAN AND NOT WIN32)
# target_link_libraries(native X11-xcb X11)
#endif()
2021-03-17 15:23:38 +00:00
set ( GlslangLibs glslang OGLCompiler OSDependent SPIRV spirv-cross-glsl )
if ( ENABLE_SPVREMAPPER )
list ( APPEND GlslangLibs SPVRemapper )
endif ( )
2017-02-16 17:06:03 +01:00
2018-03-23 03:18:13 +01:00
if ( WIN32 )
2018-10-28 11:33:25 -07:00
set ( GlslangLibs ${ GlslangLibs } spirv-cross-hlsl )
2018-03-23 03:18:13 +01:00
endif ( )
2021-08-02 14:22:35 -04:00
if ( OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND AND NOT APPLE )
2021-10-28 16:30:05 +08:00
set ( OPENGL_LIBRARIES OpenGL::OpenGL )
endif ( )
if ( USE_SYSTEM_ZSTD )
find_package ( ZSTD REQUIRED )
target_include_directories ( ${ CoreLibName } PRIVATE ${ ZSTD_INCLUDE_DIR } )
target_link_libraries ( ${ CoreLibName } ${ ZSTD_LIBRARY } )
else ( )
set ( ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "we don't need zstd programs" FORCE )
2022-12-04 08:08:20 -08:00
set ( ZSTD_LEGACY_SUPPORT OFF CACHE BOOL "we don't use any old zstd files" FORCE )
2021-10-28 16:30:05 +08:00
add_subdirectory ( ext/zstd/build/cmake EXCLUDE_FROM_ALL )
set ( CoreExtraLibs ${ CoreExtraLibs } libzstd_static )
include_directories ( ext/zstd/lib )
2021-02-20 04:19:15 -05:00
endif ( )
2023-09-22 18:24:37 +02:00
include_directories ( ext/libchdr/include )
2023-09-22 22:14:49 +02:00
target_link_libraries ( ${ CoreLibName } Common native chdr kirk cityhash sfmt19937 xbrz xxhash rcheevos ${ GlslangLibs }
2017-12-21 14:13:55 +01:00
$ { C o r e E x t r a L i b s } $ { O P E N G L _ L I B R A R I E S } $ { X 1 1 _ L I B R A R I E S } $ { C M A K E _ D L _ L I B S } )
2023-07-20 16:01:51 +02:00
if ( NOT HTTPS_NOT_AVAILABLE )
target_link_libraries ( ${ CoreLibName } naett )
endif ( )
2022-01-17 11:13:24 -08:00
target_compile_features ( ${ CoreLibName } PUBLIC cxx_std_17 )
2016-12-05 10:37:51 +01:00
if ( FFmpeg_FOUND )
2018-10-28 11:33:25 -07:00
target_compile_definitions ( ${ CoreLibName } PRIVATE USE_FFMPEG=1 )
2021-08-13 10:05:43 +07:00
set_target_properties ( ${ CoreLibName } PROPERTIES NO_SYSTEM_FROM_IMPORTED true )
target_include_directories ( ${ CoreLibName } BEFORE PUBLIC ${ FFmpeg_INCLUDE_avcodec } )
2018-10-28 11:33:25 -07:00
target_link_libraries ( ${ CoreLibName }
F F m p e g : : a v c o d e c
F F m p e g : : a v f o r m a t
F F m p e g : : a v u t i l
F F m p e g : : s w r e s a m p l e
F F m p e g : : s w s c a l e
$ { Z L I B _ L I B R A R Y }
)
2016-12-05 10:37:51 +01:00
endif ( )
2018-08-18 10:11:15 +02:00
# Discord integration
2020-03-17 12:32:07 -07:00
if ( USE_DISCORD AND NOT IOS AND NOT LIBRETRO )
2018-11-10 07:39:27 -08:00
add_definitions ( -DUSE_DISCORD=1 )
2018-10-28 11:33:25 -07:00
target_link_libraries ( ${ CoreLibName } discord-rpc )
2018-08-26 23:10:37 +02:00
endif ( )
2018-08-18 10:11:15 +02:00
2020-01-18 02:32:09 +07:00
# miniUPnPc integration (MiniUPnPc supposed to works on any POSIX system, not sure if some of these are redundant/not needed tho)
if ( USE_MINIUPNPC )
2021-11-30 11:29:28 +08:00
if ( USE_SYSTEM_MINIUPNPC )
find_package ( MINIUPNPC REQUIRED )
target_include_directories ( ${ CoreLibName } PRIVATE ${ MINIUPNP_INCLUDE_DIR } )
target_link_libraries ( ${ CoreLibName } ${ MINIUPNP_LIBRARY } )
2021-12-06 00:21:14 +08:00
add_definitions ( -DWITH_UPNP -DUSE_SYSTEM_MINIUPNPC )
2020-01-18 02:32:09 +07:00
else ( )
2021-11-30 11:29:28 +08:00
set ( MINIUPNPC_VERSION 2.1 ) # used by miniupnpcstrings.h.cmake
set ( MINIUPNPC_API_VERSION 17 )
option ( UPNPC_BUILD_STATIC "Build static library" TRUE )
option ( NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE )
mark_as_advanced ( NO_GETADDRINFO )
if ( NO_GETADDRINFO )
add_definitions ( -DNO_GETADDRINFO )
endif ( )
2021-08-13 10:05:43 +07:00
2021-11-30 11:29:28 +08:00
if ( NOT WIN32 )
add_definitions ( -DMINIUPNPC_SET_SOCKET_TIMEOUT )
add_definitions ( -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L )
endif ( )
if ( MACOSX )
add_definitions ( -D_DARWIN_C_SOURCE )
endif ( )
if ( WIN32 )
2021-12-06 00:21:14 +08:00
add_definitions ( -DWIN32 -DMINIUPNP_EXPORTS )
2021-11-30 11:29:28 +08:00
else ( )
add_definitions ( -fPIC )
endif ( )
add_definitions ( -DWITH_UPNP -DMINIUPNP_STATICLIB )
set ( MINIUPNP_DIR "ext/miniupnp/miniupnpc" )
include_directories ( ${ CMAKE_CURRENT_BINARY_DIR } )
configure_file ( ${ MINIUPNP_DIR } /miniupnpcstrings.h.cmake ${ CMAKE_CURRENT_BINARY_DIR } /miniupnpcstrings.h ) # by default miniupnp repo doesn't contains miniupnpcstrings.h and need to be generated
set ( MINIUPNPC_SOURCES
# the needed bits of miniupnpc (no python module, no tests, no cli)
$ { M I N I U P N P _ D I R } / a d d r _ i s _ r e s e r v e d . c
$ { M I N I U P N P _ D I R } / c o n n e c t h o s t p o r t . c
$ { M I N I U P N P _ D I R } / i g d _ d e s c _ p a r s e . c
$ { M I N I U P N P _ D I R } / m i n i s o a p . c
$ { M I N I U P N P _ D I R } / m i n i s s d p c . c
$ { M I N I U P N P _ D I R } / m i n i u p n p c . c
$ { M I N I U P N P _ D I R } / m i n i w g e t . c
$ { M I N I U P N P _ D I R } / m i n i x m l . c
$ { M I N I U P N P _ D I R } / m i n i x m l v a l i d . c
$ { M I N I U P N P _ D I R } / p o r t l i s t i n g p a r s e . c
$ { M I N I U P N P _ D I R } / r e c e i v e d a t a . c
#${MINIUPNP_DIR}/upnpc.c # causing an error due to already existing _main()
$ { M I N I U P N P _ D I R } / u p n p c o m m a n d s . c
$ { M I N I U P N P _ D I R } / u p n p d e v . c
$ { M I N I U P N P _ D I R } / u p n p e r r o r s . c
$ { M I N I U P N P _ D I R } / u p n p r e p l y p a r s e . c
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / m i n i u p n p c s t r i n g s . h
)
if ( NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS" )
#set(MINIUPNPC_SOURCES ${MINIUPNPC_SOURCES} minissdpc.c) # causing an error due to duplication in MINIUPNPC_SOURCES?
endif ( )
if ( WIN32 )
set_source_files_properties ( ${ MINIUPNPC_SOURCES } PROPERTIES COMPILE_DEFINITIONS "MINIUPNP_STATICLIB;MINIUPNP_EXPORTS" )
set ( LDLIBS ws2_32 iphlpapi ${ LDLIBS } )
#elseif (CMAKE_SYSTEM_NAME STREQUAL "Solaris")
# find_library (SOCKET_LIBRARY NAMES socket)
# find_library (NSL_LIBRARY NAMES nsl)
# find_library (RESOLV_LIBRARY NAMES resolv)
# set (LDLIBS ${SOCKET_LIBRARY} ${NSL_LIBRARY} ${RESOLV_LIBRARY} ${LDLIBS})
endif ( )
if ( UPNPC_BUILD_STATIC )
add_library ( miniupnpc STATIC ${ MINIUPNPC_SOURCES } )
target_link_libraries ( ${ CoreLibName } miniupnpc ${ LDLIBS } )
set ( UPNPC_LIBRARY miniupnpc )
if ( MSVC )
# Suppress noise warnings
target_compile_definitions ( miniupnpc PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS )
endif ( )
2020-08-12 20:15:32 +02:00
endif ( )
2020-01-18 02:32:09 +07:00
endif ( )
endif ( )
2012-11-18 13:00:27 -03:00
setup_target_project ( ${ CoreLibName } Core )
2020-08-12 20:15:32 +02:00
# Generate git-version at build time.
add_custom_target ( GitVersion DEPENDS something_that_never_exists )
set ( WIN_VERSION_CMD "" )
if ( WIN32 )
set ( WIN_VERSION_CMD COMMAND ${ CMAKE_SOURCE_DIR } /Windows/git-version-gen.cmd PPSSPPWindows )
endif ( )
2013-03-02 11:01:08 -08:00
add_custom_command ( OUTPUT something_that_never_exists
C O M M A N D $ { C M A K E _ C O M M A N D } - D S O U R C E _ D I R = $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R }
2021-11-29 10:05:13 -08:00
- D O U T P U T _ D I R = $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R }
2020-08-12 20:15:32 +02:00
- P $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / g i t - v e r s i o n . c m a k e
$ { W I N _ V E R S I O N _ C M D } )
2013-03-02 11:01:08 -08:00
2021-11-29 10:05:13 -08:00
set_source_files_properties ( ${ CMAKE_CURRENT_BINARY_DIR } /git-version.cpp
2018-06-03 08:37:09 -07:00
P R O P E R T I E S G E N E R A T E D T R U E
S K I P _ A U T O M O C O N )
2013-03-02 11:01:08 -08:00
add_dependencies ( ${ CoreLibName } GitVersion )
2016-12-05 16:51:28 +01:00
set ( WindowsFiles
W i n d o w s / D S o u n d S t r e a m . c p p
W i n d o w s / D S o u n d S t r e a m . h
2017-06-27 11:46:10 +02:00
W i n d o w s / W i n d o w s A u d i o . c p p
W i n d o w s / W i n d o w s A u d i o . h
W i n d o w s / W A S A P I S t r e a m . c p p
W i n d o w s / W A S A P I S t r e a m . h
2016-12-05 16:51:28 +01:00
W i n d o w s / D e b u g g e r / B r e a k p o i n t W i n d o w . c p p
W i n d o w s / D e b u g g e r / B r e a k p o i n t W i n d o w . h
W i n d o w s / D e b u g g e r / D u m p M e m o r y W i n d o w . c p p
W i n d o w s / D e b u g g e r / D u m p M e m o r y W i n d o w . h
W i n d o w s / D e b u g g e r / C t r l D i s A s m V i e w . c p p
W i n d o w s / D e b u g g e r / C t r l D i s A s m V i e w . h
W i n d o w s / D e b u g g e r / C t r l M e m V i e w . c p p
W i n d o w s / D e b u g g e r / C t r l M e m V i e w . h
W i n d o w s / D e b u g g e r / C t r l R e g i s t e r L i s t . c p p
W i n d o w s / D e b u g g e r / C t r l R e g i s t e r L i s t . h
W i n d o w s / D e b u g g e r / D e b u g g e r S h a r e d . c p p
W i n d o w s / D e b u g g e r / D e b u g g e r S h a r e d . h
W i n d o w s / D e b u g g e r / D e b u g g e r _ D i s a s m . c p p
W i n d o w s / D e b u g g e r / D e b u g g e r _ D i s a s m . h
W i n d o w s / D e b u g g e r / D e b u g g e r _ M e m o r y D l g . c p p
W i n d o w s / D e b u g g e r / D e b u g g e r _ M e m o r y D l g . h
W i n d o w s / D e b u g g e r / D e b u g g e r _ L i s t s . c p p
W i n d o w s / D e b u g g e r / D e b u g g e r _ L i s t s . h
W i n d o w s / D e b u g g e r / D e b u g g e r _ V F P U D l g . c p p
W i n d o w s / D e b u g g e r / D e b u g g e r _ V F P U D l g . h
2023-04-09 00:35:37 -07:00
W i n d o w s / D e b u g g e r / W a t c h I t e m W i n d o w . c p p
W i n d o w s / D e b u g g e r / W a t c h I t e m W i n d o w . h
2023-07-17 16:38:24 +03:00
W i n d o w s / D e b u g g e r / E d i t S y m b o l s W i n d o w . c p p
W i n d o w s / D e b u g g e r / E d i t S y m b o l s W i n d o w . h
2016-12-05 16:51:28 +01:00
W i n d o w s / G E D e b u g g e r / C t r l D i s p l a y L i s t V i e w . c p p
W i n d o w s / G E D e b u g g e r / S i m p l e G L W i n d o w . c p p
W i n d o w s / G E D e b u g g e r / T a b S t a t e . c p p
W i n d o w s / G E D e b u g g e r / V e r t e x P r e v i e w . c p p
W i n d o w s / G E D e b u g g e r / C t r l D i s p l a y L i s t V i e w . h
W i n d o w s / G E D e b u g g e r / S i m p l e G L W i n d o w . h
W i n d o w s / G E D e b u g g e r / T a b S t a t e . h
W i n d o w s / G E D e b u g g e r / G E D e b u g g e r . c p p
W i n d o w s / G E D e b u g g e r / T a b D i s p l a y L i s t s . c p p
W i n d o w s / G E D e b u g g e r / T a b V e r t i c e s . c p p
W i n d o w s / G E D e b u g g e r / G E D e b u g g e r . h
W i n d o w s / G E D e b u g g e r / T a b D i s p l a y L i s t s . h
W i n d o w s / G E D e b u g g e r / T a b V e r t i c e s . h
2020-01-13 15:06:02 +08:00
W i n d o w s / B u f f e r L o c k . h
W i n d o w s / C a p t u r e D e v i c e . c p p
W i n d o w s / C a p t u r e D e v i c e . h
2016-12-05 16:51:28 +01:00
W i n d o w s / D i n p u t D e v i c e . c p p
W i n d o w s / D i n p u t D e v i c e . h
W i n d o w s / D S o u n d S t r e a m . c p p
W i n d o w s / D S o u n d S t r e a m . h
W i n d o w s / E m u T h r e a d . c p p
W i n d o w s / E m u T h r e a d . h
W i n d o w s / G e D e b u g g e r / G e D e b u g g e r . c p p
W i n d o w s / G P U / D 3 D 9 C o n t e x t . c p p
W i n d o w s / G P U / D 3 D 9 C o n t e x t . h
2017-02-16 17:06:03 +01:00
W i n d o w s / G P U / D 3 D 1 1 C o n t e x t . c p p
W i n d o w s / G P U / D 3 D 1 1 C o n t e x t . h
2016-12-05 16:51:28 +01:00
W i n d o w s / G P U / W i n d o w s G L C o n t e x t . c p p
W i n d o w s / G P U / W i n d o w s V u l k a n C o n t e x t . c p p
W i n d o w s / I n p u t B o x . c p p
W i n d o w s / I n p u t B o x . h
W i n d o w s / I n p u t D e v i c e . c p p
W i n d o w s / I n p u t D e v i c e . h
2021-10-07 19:47:16 -07:00
W i n d o w s / W 3 2 U t i l / C o n t e x t M e n u . h
W i n d o w s / W 3 2 U t i l / C o n t e x t M e n u . h
2016-12-05 16:51:28 +01:00
W i n d o w s / W 3 2 U t i l / D i a l o g M a n a g e r . c p p
W i n d o w s / W 3 2 U t i l / D i a l o g M a n a g e r . h
W i n d o w s / W 3 2 U t i l / M i s c . c p p
W i n d o w s / W 3 2 U t i l / M i s c . h
W i n d o w s / W 3 2 U t i l / S h e l l U t i l . c p p
W i n d o w s / W 3 2 U t i l / S h e l l U t i l . h
W i n d o w s / W 3 2 U t i l / T a b C o n t r o l . c p p
W i n d o w s / W 3 2 U t i l / T a b C o n t r o l . h
2023-06-24 21:36:46 +08:00
W i n d o w s / W 3 2 U t i l / I a t H o o k . h
W i n d o w s / W 3 2 U t i l / C o n t e x t M e n u . h
W i n d o w s / W 3 2 U t i l / C o n t e x t M e n u . c p p
W i n d o w s / W 3 2 U t i l / D a r k M o d e . h
W i n d o w s / W 3 2 U t i l / D a r k M o d e . c p p
W i n d o w s / W 3 2 U t i l / U A H M e n u B a r . h
W i n d o w s / W 3 2 U t i l / U A H M e n u B a r . c p p
2016-12-05 16:51:28 +01:00
W i n d o w s / W i n d o w s H o s t . c p p
W i n d o w s / W i n d o w s H o s t . h
W i n d o w s / M a i n W i n d o w . c p p
W i n d o w s / M a i n W i n d o w . h
W i n d o w s / M a i n W i n d o w M e n u . c p p
W i n d o w s / M a i n W i n d o w M e n u . h
W i n d o w s / R a w I n p u t . c p p
W i n d o w s / R a w I n p u t . h
W i n d o w s / T o u c h I n p u t H a n d l e r . c p p
W i n d o w s / T o u c h I n p u t H a n d l e r . h
W i n d o w s / X i n p u t D e v i c e . c p p
W i n d o w s / X i n p u t D e v i c e . h
W i n d o w s / m a i n . c p p
W i n d o w s / m a i n . h
W i n d o w s / p p s s p p . r c
W i n d o w s / r e s o u r c e . h
W i n d o w s / s t d a f x . c p p
2018-10-28 11:33:25 -07:00
W i n d o w s / s t d a f x . h
)
2016-12-05 16:51:28 +01:00
list ( APPEND LinkCommon ${ CoreLibName } ${ CMAKE_THREAD_LIBS_INIT } )
2012-11-18 13:00:27 -03:00
if ( WIN32 )
2023-06-24 21:36:46 +08:00
list ( APPEND LinkCommon kernel32 user32 gdi32 shell32 comctl32 dsound xinput d3d9 winmm dinput8 ole32 winspool ksuser mf uxtheme mfplat mfreadwrite mfuuid shlwapi )
2016-12-05 16:51:28 +01:00
#setup_target_project(${TargetBin} Windows)
list ( APPEND NativeAppSource ${ WindowsFiles } )
2012-11-18 13:00:27 -03:00
endif ( )
2021-12-10 22:43:04 +01:00
set ( BigFontAssets
a s s e t s / f o n t _ a t l a s . z i m
a s s e t s / f o n t _ a t l a s . m e t a
)
2012-12-17 01:47:39 +10:00
set ( NativeAssets
2021-12-11 08:35:43 -08:00
a s s e t s / u i _ a t l a s . z i m
a s s e t s / u i _ a t l a s . m e t a
a s s e t s / a s c i i f o n t _ a t l a s . z i m
a s s e t s / a s c i i f o n t _ a t l a s . m e t a
2021-09-26 12:27:54 -07:00
a s s e t s / d e b u g g e r
2016-10-14 22:46:01 +02:00
a s s e t s / l a n g
2013-10-18 02:09:44 +10:00
a s s e t s / s h a d e r s
2022-02-14 07:37:56 +01:00
a s s e t s / t h e m e s
2023-03-10 05:22:09 -05:00
a s s e t s / v f p u
2017-06-06 23:25:42 -07:00
a s s e t s / R o b o t o - C o n d e n s e d . t t f
a s s e t s / 7 z . p n g
2015-09-27 11:50:23 +02:00
a s s e t s / c o m p a t . i n i
2016-09-20 22:04:01 +01:00
a s s e t s / g a m e c o n t r o l l e r d b . t x t
2017-06-06 23:25:42 -07:00
a s s e t s / l a n g r e g i o n . i n i
a s s e t s / p p g e _ a t l a s . z i m
2020-02-29 21:51:14 +01:00
a s s e t s / p p g e _ a t l a s . m e t a
2017-06-06 23:25:42 -07:00
a s s e t s / r a r g r a y . p n g
a s s e t s / u n k n o w n . p n g
2018-10-28 11:33:25 -07:00
a s s e t s / z i p . p n g
2020-08-04 23:36:35 +02:00
a s s e t s / s f x _ b a c k . w a v
a s s e t s / s f x _ c o n f i r m . w a v
a s s e t s / s f x _ s e l e c t . w a v
a s s e t s / s f x _ t o g g l e _ o f f . w a v
a s s e t s / s f x _ t o g g l e _ o n . w a v
2019-01-06 14:12:55 +04:00
s o u r c e _ a s s e t s / i m a g e / l o g o . p n g
s o u r c e _ a s s e t s / i m a g e / i c o n _ r e g u l a r _ 7 2 . p n g
2018-10-28 11:33:25 -07:00
)
2012-12-02 14:48:00 +10:00
2013-12-06 11:33:51 +01:00
2013-10-19 17:35:46 -07:00
if ( HEADLESS )
2021-02-12 07:38:52 -08:00
set ( HeadlessSource
2013-10-19 17:35:46 -07:00
h e a d l e s s / H e a d l e s s . c p p
2023-03-25 17:49:05 -07:00
h e a d l e s s / H e a d l e s s H o s t . c p p
h e a d l e s s / H e a d l e s s H o s t . h
2013-10-19 17:35:46 -07:00
h e a d l e s s / C o m p a r e . c p p
2017-06-18 12:15:59 -07:00
h e a d l e s s / C o m p a r e . h
h e a d l e s s / S D L H e a d l e s s H o s t . c p p
2018-10-28 11:33:25 -07:00
h e a d l e s s / S D L H e a d l e s s H o s t . h
)
2021-02-12 07:38:52 -08:00
if ( WIN32 )
list ( APPEND HeadlessSource
h e a d l e s s / W i n d o w s H e a d l e s s H o s t . c p p
h e a d l e s s / W i n d o w s H e a d l e s s H o s t . h
W i n d o w s / G P U / D 3 D 9 C o n t e x t . c p p
W i n d o w s / G P U / D 3 D 9 C o n t e x t . h
W i n d o w s / G P U / D 3 D 1 1 C o n t e x t . c p p
W i n d o w s / G P U / D 3 D 1 1 C o n t e x t . h
W i n d o w s / G P U / W i n d o w s G L C o n t e x t . c p p
W i n d o w s / G P U / W i n d o w s V u l k a n C o n t e x t . c p p
W i n d o w s / W 3 2 U t i l / S h e l l U t i l . c p p
W i n d o w s / W 3 2 U t i l / S h e l l U t i l . h
W i n d o w s / C a p t u r e D e v i c e . c p p
W i n d o w s / C a p t u r e D e v i c e . h
W i n d o w s / W 3 2 U t i l / M i s c . c p p
W i n d o w s / W 3 2 U t i l / M i s c . h
)
endif ( )
add_executable ( PPSSPPHeadless ${ HeadlessSource } )
2023-01-27 11:19:29 +03:00
target_link_libraries ( PPSSPPHeadless ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ IOKIT_LIBRARY } ${ LinkCommon } )
2013-10-19 17:35:46 -07:00
setup_target_project ( PPSSPPHeadless headless )
endif ( )
2014-01-09 12:09:07 +01:00
if ( UNITTEST )
2022-01-29 12:31:13 -08:00
add_executable ( PPSSPPUnitTest
2014-01-09 12:09:07 +01:00
u n i t t e s t / U n i t T e s t . c p p
2021-02-17 22:31:48 -05:00
u n i t t e s t / T e s t S h a d e r G e n e r a t o r s . c p p
2015-04-03 23:50:51 +02:00
u n i t t e s t / T e s t A r m E m i t t e r . c p p
u n i t t e s t / T e s t A r m 6 4 E m i t t e r . c p p
2022-07-24 10:37:54 -07:00
u n i t t e s t / T e s t I R P a s s S i m p l i f y . c p p
2015-04-03 23:50:51 +02:00
u n i t t e s t / T e s t X 6 4 E m i t t e r . c p p
2015-07-03 15:25:40 -07:00
u n i t t e s t / T e s t V e r t e x J i t . c p p
2023-05-02 11:35:45 +02:00
u n i t t e s t / T e s t V F S . c p p
2022-08-27 15:43:44 -07:00
u n i t t e s t / T e s t R i s c V E m i t t e r . c p p
2022-01-29 18:34:14 -08:00
u n i t t e s t / T e s t S o f t w a r e G P U J i t . c p p
2021-06-12 22:42:10 +02:00
u n i t t e s t / T e s t T h r e a d M a n a g e r . c p p
2015-04-03 23:50:51 +02:00
u n i t t e s t / J i t H a r n e s s . c p p
C o r e / M I P S / A R M / A r m R e g C a c h e . c p p
C o r e / M I P S / A R M / A r m R e g C a c h e F P U . c p p
2014-01-09 12:09:07 +01:00
)
2023-01-27 11:19:29 +03:00
target_link_libraries ( PPSSPPUnitTest ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ IOKIT_LIBRARY } ${ LinkCommon } Common )
2022-01-29 12:31:13 -08:00
setup_target_project ( PPSSPPUnitTest unittest )
add_test ( arm64_emitter PPSSPPUnitTest Arm64Emitter )
add_test ( arm_emitter PPSSPPUnitTest ArmEmitter )
add_test ( x64_emitter PPSSPPUnitTest X64Emitter )
add_test ( vertex_jit PPSSPPUnitTest VertexJit )
add_test ( asin PPSSPPUnitTest Asin )
add_test ( sincos PPSSPPUnitTest SinCos )
add_test ( vfpu_sincos PPSSPPUnitTest VFPUSinCos )
add_test ( math_util PPSSPPUnitTest MathUtil )
add_test ( parsers PPSSPPUnitTest Parsers )
add_test ( jit PPSSPPUnitTest Jit )
add_test ( matrix_transpose PPSSPPUnitTest MatrixTranspose )
add_test ( parse_lbn PPSSPPUnitTest ParseLBN )
add_test ( quick_texhash PPSSPPUnitTest QuickTexHash )
add_test ( clz PPSSPPUnitTest CLZ )
add_test ( shadergen PPSSPPUnitTest ShaderGenerators )
2014-01-09 12:09:07 +01:00
endif ( )
2018-03-24 12:44:53 +01:00
if ( LIBRETRO )
add_subdirectory ( libretro )
endif ( )
2018-10-28 11:33:25 -07:00
if ( TargetBin )
2020-12-08 13:46:14 +08:00
if ( APPLE )
if ( NOT IOS )
2023-04-19 14:54:58 +02:00
if ( GOLD )
set ( ICON_PATH_ABS ${ CMAKE_CURRENT_SOURCE_DIR } /icons/ppsspp_gold.icns )
set ( MACOSX_BUNDLE_ICON_FILE ppsspp_gold.icns )
set ( MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP Gold" )
set ( MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppssppgold )
else ( )
set ( ICON_PATH_ABS ${ CMAKE_CURRENT_SOURCE_DIR } /icons/ppsspp.icns )
set ( MACOSX_BUNDLE_ICON_FILE ppsspp.icns )
set ( MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP" )
set ( MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppsspp )
endif ( )
2018-10-28 11:33:25 -07:00
set_source_files_properties ( ${ ICON_PATH_ABS } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" )
2015-05-27 03:37:49 -04:00
endif ( )
2014-07-23 15:12:18 +09:00
# TODO: there must a native way to copy these.
# Now this is very prone to errors when changes occur.
2015-05-27 03:37:49 -04:00
# Also better to have assets under Resources dir for OS X.
2017-03-31 23:50:17 +02:00
file ( GLOB_RECURSE FLASH0_FILES assets/flash0/* )
2016-10-14 22:33:45 +02:00
file ( GLOB_RECURSE LANG_FILES assets/lang/* )
2014-07-23 15:12:18 +09:00
file ( GLOB_RECURSE SHADER_FILES assets/shaders/* )
2022-02-14 07:37:56 +01:00
file ( GLOB_RECURSE THEME_FILE assets/themes/* )
2021-09-26 12:27:54 -07:00
file ( GLOB_RECURSE DEBUGGER_FILES assets/debugger/* )
2023-04-19 14:54:58 +02:00
file ( GLOB_RECURSE VFPU_FILES assets/vfpu/* )
2015-05-27 03:37:49 -04:00
2020-12-08 13:46:14 +08:00
if ( NOT IOS )
2021-12-10 22:43:04 +01:00
set_source_files_properties ( ${ BigFontAssets } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets" )
2021-11-06 09:22:08 +03:00
set_source_files_properties ( ${ NativeAssets } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets" )
set_source_files_properties ( ${ FLASH0_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/flash0/font" )
set_source_files_properties ( ${ LANG_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/lang" )
set_source_files_properties ( ${ SHADER_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/shaders" )
2022-02-14 07:37:56 +01:00
set_source_files_properties ( ${ THEME_FILE } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/themes" )
2021-11-06 09:22:08 +03:00
set_source_files_properties ( ${ DEBUGGER_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/debugger" )
2023-04-19 14:54:58 +02:00
set_source_files_properties ( ${ VFPU_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources/assets/vfpu" )
2015-05-27 03:37:49 -04:00
endif ( )
2015-02-02 00:17:03 -08:00
2018-10-28 11:33:25 -07:00
if ( IOS )
2022-02-14 07:37:56 +01:00
add_executable ( ${ TargetBin } MACOSX_BUNDLE ${ ICON_PATH_ABS } ${ NativeAssets } ${ BigFontAssets } ${ SHADER_FILES } ${ THEME_FILE } ${ DEBUGGER_FILES } ${ FLASH0_FILES } ${ LANG_FILES } ${ NativeAppSource } "ios/Settings.bundle" "ios/Launch Screen.storyboard" )
2021-11-06 14:55:44 +08:00
file ( INSTALL "${CMAKE_SOURCE_DIR}/ext/vulkan/iOS/Frameworks/libMoltenVK.dylib" DESTINATION "${CMAKE_BINARY_DIR}/PPSSPP.app/Frameworks/" )
2018-01-04 09:56:49 -08:00
else ( )
2022-02-14 07:37:56 +01:00
add_executable ( ${ TargetBin } MACOSX_BUNDLE ${ ICON_PATH_ABS } ${ NativeAssets } ${ BigFontAssets } ${ SHADER_FILES } ${ THEME_FILE } ${ DEBUGGER_FILES } ${ FLASH0_FILES } ${ LANG_FILES } ${ NativeAppSource } )
2023-04-25 16:34:23 +02:00
file ( INSTALL "${CMAKE_SOURCE_DIR}/ext/vulkan/macOS/Frameworks/libMoltenVK.dylib" DESTINATION "${CMAKE_BINARY_DIR}/${TargetBin}.app/Contents/Frameworks/" )
2023-04-24 14:44:07 +02:00
if ( USING_QT_UI )
2020-02-04 11:55:54 +08:00
add_custom_command ( TARGET ${ TargetBin } POST_BUILD COMMAND /bin/bash "${CMAKE_SOURCE_DIR}/Qt/macbundle.sh" "${CMAKE_BINARY_DIR}/PPSSPPQt.app" )
2023-05-05 17:17:45 -04:00
elseif ( NOT USE_SYSTEM_LIBSDL2 )
2023-04-25 16:34:23 +02:00
add_custom_command ( TARGET ${ TargetBin } POST_BUILD COMMAND /bin/bash "${CMAKE_SOURCE_DIR}/SDL/macbundle.sh" "${CMAKE_BINARY_DIR}/${TargetBin}.app" "${TargetBin}" )
2019-02-23 14:15:17 +03:00
endif ( )
2018-01-04 09:56:49 -08:00
endif ( )
2016-12-05 17:34:26 +01:00
elseif ( WIN32 )
2017-02-16 17:06:03 +01:00
add_executable ( ${ TargetBin } WIN32 ${ NativeAppSource } )
2018-03-23 03:18:13 +01:00
if ( MSVC )
set_target_properties ( ${ TargetBin } PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS" )
else ( )
set_target_properties ( ${ TargetBin } PROPERTIES LINK_FLAGS "-Wl,-subsystem,windows" )
endif ( )
2016-12-05 17:34:26 +01:00
set_property ( DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT ${ TargetBin } )
2013-02-24 13:23:04 +10:00
else ( )
add_executable ( ${ TargetBin } ${ NativeAppSource } )
endif ( )
2015-04-03 23:50:51 +02:00
target_link_libraries ( ${ TargetBin } ${ LinkCommon } Common )
2012-11-18 13:00:27 -03:00
endif ( )
2013-02-24 13:23:04 +10:00
# installs
2017-03-13 23:45:25 +01:00
if ( NOT ANDROID )
2021-12-10 22:43:04 +01:00
file ( INSTALL ${ BigFontAssets } DESTINATION assets )
2018-10-28 11:33:25 -07:00
file ( INSTALL ${ NativeAssets } DESTINATION assets )
file ( INSTALL assets/flash0 DESTINATION assets )
2017-03-13 23:45:25 +01:00
endif ( )
2013-03-23 23:18:00 -07:00
# packaging and code signing
2023-02-06 23:36:55 -05:00
if ( IOS AND NOT LIBRETRO )
2022-10-01 08:01:01 -07:00
set ( DEPLOYMENT_TARGET 11.0 )
2013-03-15 01:29:33 -07:00
file ( GLOB IOSAssets ios/assets/*.png )
2015-10-08 13:43:33 +09:00
list ( REMOVE_ITEM IOSAssets ${ CMAKE_CURRENT_SOURCE_DIR } /ios/assets/Default-568h@2x.png )
list ( REMOVE_ITEM IOSAssets ${ CMAKE_CURRENT_SOURCE_DIR } /ios/assets/Default-568h@3x.png )
2016-10-11 03:27:54 +02:00
file ( INSTALL ${ IOSAssets } DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } /assets )
2015-10-08 13:43:33 +09:00
file ( GLOB IOSAssets ios/assets/Default-568h@*.png )
2016-10-11 03:27:54 +02:00
file ( INSTALL ${ IOSAssets } DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } )
2018-10-28 11:33:25 -07:00
if ( IOS_DEBUG )
2016-10-11 03:27:54 +02:00
file ( INSTALL pspautotests DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } /assets )
2013-03-15 23:50:31 -07:00
endif ( )
2013-02-24 13:23:04 +10:00
set ( RSRC_XIB_FILES assets/Icon@2x.png )
2018-01-04 09:56:49 -08:00
set ( RSRC_XIB_FILES "Launch Screen.storyboard" )
2013-03-15 23:50:31 -07:00
set_source_files_properties ( ${ RSRC_XIB_FILES }
P R O P E R T I E S M A C O S X _ P A C K A G E _ L O C A T I O N R e s o u r c e s
)
2021-01-17 11:34:27 +01:00
#This breaks in modern XCode. Not sure when it worked...
#if(CMAKE_GENERATOR STREQUAL "Xcode")
# set(APP_DIR_NAME "$(TARGET_BUILD_DIR)/$(FULL_PRODUCT_NAME)")
#else()
2018-10-28 11:33:25 -07:00
set ( APP_DIR_NAME "$<TARGET_FILE_DIR:PPSSPP>" )
2021-01-17 11:34:27 +01:00
#endif()
2013-02-24 13:23:04 +10:00
add_custom_command ( TARGET PPSSPP POST_BUILD
2017-12-30 20:16:00 -08:00
C O M M A N D m k d i r - p \ " $ { A P P _ D I R _ N A M E } \ "
C O M M A N D t a r - c - C $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } - - e x c l u d e . D S _ S t o r e - - e x c l u d e . g i t a s s e t s * . p n g | t a r - x - C \ " $ { A P P _ D I R _ N A M E } \ "
2020-04-30 20:06:03 +03:00
C O M M A N D / b i n / b a s h " $ { C M A K E _ S O U R C E _ D I R } / i o s / m a c b u n d l e . s h " \ " $ { A P P _ D I R _ N A M E } \ "
2013-03-16 01:04:38 -07:00
)
2018-01-04 09:56:49 -08:00
set ( MACOSX_DEPLOYMENT_TARGET ${ DEPLOYMENT_TARGET } )
2013-03-15 01:29:33 -07:00
set_target_properties ( ${ TargetBin } PROPERTIES
2016-10-12 13:24:53 +02:00
M A C O S X _ B U N D L E _ I N F O _ P L I S T " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / i o s / P P S S P P - I n f o . p l i s t "
2018-01-04 09:56:49 -08:00
R E S O U R C E " i o s / L a u n c h S c r e e n . s t o r y b o a r d "
2019-06-19 17:47:14 +08:00
R E S O U R C E " i o s / S e t t i n g s . b u n d l e "
2020-12-15 09:53:23 +08:00
R E S O U R C E " e x t / v u l k a n / i O S / F r a m e w o r k s "
2018-01-04 09:56:49 -08:00
X C O D E _ A T T R I B U T E _ I P H O N E O S _ D E P L O Y M E N T _ T A R G E T $ { D E P L O Y M E N T _ T A R G E T }
2021-01-26 18:12:28 +01:00
X C O D E _ A T T R I B U T E _ T A R G E T E D _ D E V I C E _ F A M I L Y " i P h o n e / i P a d "
2018-10-28 11:33:25 -07:00
X C O D E _ A T T R I B U T E _ C L A N G _ E N A B L E _ O B J C _ A R C Y E S
X C O D E _ A T T R I B U T E _ E N A B L E _ B I T C O D E N O
X C O D E _ A T T R I B U T E _ C O D E _ S I G N _ I D E N T I T Y " - "
2013-03-15 01:29:33 -07:00
)
2013-02-18 00:04:44 +10:00
endif ( )
2020-12-05 17:49:21 -08:00
2023-04-26 19:25:48 +08:00
if ( MACOSX AND NOT IOS )
2023-04-25 16:34:23 +02:00
if ( GOLD )
set_target_properties ( ${ TargetBin } PROPERTIES
M A C O S X _ B U N D L E _ I N F O _ P L I S T " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / m a c O S / I n f o G o l d . p l i s t "
)
else ( )
set_target_properties ( ${ TargetBin } PROPERTIES
M A C O S X _ B U N D L E _ I N F O _ P L I S T " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / m a c O S / I n f o . p l i s t "
)
endif ( )
2023-04-22 18:11:06 +03:00
endif ( )
2020-12-10 07:15:53 -08:00
if ( UNIX AND NOT ANDROID AND NOT APPLE )
2020-12-07 16:12:55 +08:00
configure_file (
" $ { C M A K E _ S O U R C E _ D I R } / p p s s p p . d e s k t o p . i n "
" $ { C M A K E _ B I N A R Y _ D I R } / p p s s p p . d e s k t o p "
@ O N L Y
)
install (
T A R G E T S $ { T a r g e t B i n }
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ B I N D I R } "
)
install (
D I R E C T O R Y " $ { C M A K E _ B I N A R Y _ D I R } / a s s e t s "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A D I R } / p p s s p p "
P A T T E R N " . g i t * " E X C L U D E
2022-09-30 23:59:59 +00:00
P A T T E R N " m i m e " E X C L U D E
P A T T E R N " l a n g / R E A D M E . m d " E X C L U D E
2020-12-07 16:12:55 +08:00
)
install (
F I L E S " $ { C M A K E _ B I N A R Y _ D I R } / p p s s p p . d e s k t o p "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / a p p l i c a t i o n s "
R E N A M E $ { T a r g e t B i n } . d e s k t o p
)
install (
D I R E C T O R Y " $ { C M A K E _ S O U R C E _ D I R } / i c o n s / h i c o l o r "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / i c o n s "
)
install (
F I L E S " $ { C M A K E _ S O U R C E _ D I R } / i c o n s / i c o n - 5 1 2 . s v g "
2022-09-30 23:59:59 +00:00
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / i c o n s / h i c o l o r / s c a l a b l e / a p p s "
R E N A M E " p p s s p p . s v g "
)
install (
F I L E S " $ { C M A K E _ S O U R C E _ D I R } / a s s e t s / m i m e / p p s s p p . x m l "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / m i m e / p a c k a g e s "
2020-12-07 16:12:55 +08:00
)
endif ( )