2012-11-26 22:03:44 +00:00
# vim:noexpandtab:
2016-10-11 01:27:04 +00:00
cmake_minimum_required ( VERSION 3.6 )
2012-11-18 16:00:27 +00:00
project ( PPSSPP )
2021-02-17 05:42:31 +00:00
enable_testing ( )
2016-12-05 15:51:28 +00:00
#This is supposed to work but doesn't!
2018-10-28 18:33:25 +00:00
if ( NOT ANDROID )
set ( CMAKE_CXX_STANDARD 11 )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
2017-03-16 09:16:29 +00:00
endif ( )
2016-12-05 15:51:28 +00:00
2014-06-11 13:02:56 +00:00
enable_language ( ASM )
2012-11-18 16:00:27 +00:00
2016-12-05 15:51:28 +00:00
add_definitions ( -D__STDC_CONSTANT_MACROS )
2013-12-13 10:04:22 +00:00
2017-03-16 09:16:29 +00:00
if ( ${ CMAKE_CXX_COMPILER_ID } STREQUAL "Clang" )
2018-10-28 18:33:25 +00:00
set ( CLANG ON )
message ( "Clang enabled" )
2017-03-16 09:16:29 +00:00
endif ( )
2018-06-15 20:29:56 +00:00
if ( FORCED_CPU )
2018-10-28 18:33:25 +00:00
message ( "Detected CPU (${CMAKE_SYSTEM_PROCESSOR}) overridden as: ${FORCED_CPU}" )
set ( CMAKE_SYSTEM_PROCESSOR ${ FORCED_CPU } )
2018-06-15 20:29:56 +00:00
endif ( )
2014-06-18 06:15:47 +00:00
# Detect CPU from CMAKE configuration. Toolchains should set this up
2014-11-13 15:41:30 +00:00
if ( CMAKE_SYSTEM_PROCESSOR )
2020-12-01 23:23:45 +00:00
if ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^aarch64" )
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-04 02:35:48 +00: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-04 02:35:48 +00:00
endif ( )
2014-11-14 08:07:29 +00:00
if ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^armv7" )
2018-12-04 02:35:48 +00:00
set ( ARMV7_DEVICE ON )
2018-09-20 15:06:49 +00:00
add_compile_options ( -mfpu=neon )
2016-12-05 15:51:28 +00:00
# Horrifying workaround for bug in android cmake stuff for asm files
2018-10-28 18:33:25 +00:00
if ( ANDROID )
2016-12-05 15:51:28 +00:00
set ( CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -target armv7a-none-linux-android" )
endif ( )
2014-11-14 08:07:29 +00:00
endif ( )
2016-12-05 15:51:28 +00:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^amd64" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^x86_64" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^AMD64" )
2018-12-04 02:35:48 +00:00
set ( X86_DEVICE ON )
set ( X86_64_DEVICE ON )
2016-12-05 15:51:28 +00:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^x86" OR ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "i.86" )
2018-12-04 02:35:48 +00:00
set ( X86_DEVICE ON )
2014-11-13 15:41:30 +00:00
elseif ( ${ CMAKE_SYSTEM_PROCESSOR } MATCHES "^mips" )
2018-12-04 02:35:48 +00:00
set ( MIPS_DEVICE ON )
2016-12-05 15:51:28 +00:00
else ( )
2018-10-28 18:33:25 +00:00
message ( "Unknown CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}" )
2014-11-13 15:41:30 +00:00
endif ( )
2014-11-11 12:55:49 +00:00
endif ( )
2013-03-22 07:15:00 +00:00
2018-03-23 02:18:13 +00:00
# the libraries in the ffmpeg/ directory are not compatible with mingw
if ( MINGW AND NOT DEFINED USE_SYSTEM_FFMPEG )
2018-03-24 12:39:05 +00:00
set ( USE_SYSTEM_FFMPEG ON )
2018-03-23 02:18:13 +00:00
endif ( )
2017-12-05 12:23:13 +00:00
if ( NOT ANDROID AND NOT IOS )
2019-01-25 15:38:03 +00:00
if ( ARM_DEVICE OR SIMULATOR )
2017-03-13 22:45:25 +00:00
set ( USING_EGL ON )
endif ( )
2014-06-18 06:15:47 +00:00
endif ( )
2012-11-18 16:00:27 +00:00
2013-06-21 05:33:29 +00:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Linux" )
set ( LINUX ON )
2014-06-11 13:02:56 +00:00
add_definitions ( -D__STDC_CONSTANT_MACROS )
2013-06-21 05:33:29 +00:00
endif ( )
2013-06-15 12:50:47 +00:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Darwin" )
set ( MACOSX ON )
2020-12-01 23:23:45 +00:00
set ( USING_EGL OFF )
2013-06-15 12:50:47 +00:00
endif ( )
2016-10-11 01:27:38 +00:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Android" )
2017-12-13 21:58:45 +00:00
set ( ANDROID ON )
endif ( )
2020-01-19 09:34:21 +00: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 01:27:38 +00:00
endif ( )
2020-12-02 21:46:56 +00:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /cmake/Modules )
2021-01-17 10:34:27 +00:00
if ( NOT ( ( ARM64 AND MACOSX ) OR IOS ) )
2020-12-02 21:46:56 +00:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /cmake/sdl )
endif ( )
include ( ccache )
2020-12-06 01:49:21 +00:00
include ( GNUInstallDirs )
2020-12-02 21:46:56 +00:00
2020-12-06 01:49:21 +00:00
add_definitions ( -DASSETS_DIR= "${CMAKE_INSTALL_FULL_DATADIR}/ppsspp/assets/" )
2020-12-02 21:46:56 +00:00
2017-03-16 09:42:15 +00:00
if ( GOLD )
add_definitions ( -DGOLD )
2017-03-17 10:55:14 +00:00
message ( "Gold Build" )
else ( )
message ( "Normal Build" )
2017-03-16 09:42:15 +00:00
endif ( )
2012-11-18 16:00:27 +00:00
# User-editable options (go into CMakeCache.txt)
2014-05-30 15:22:11 +00:00
# :: Processors
2018-12-04 02:35:48 +00: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 } )
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-30 15:22:11 +00: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 02:41:57 +00:00
option ( USING_GLES2 "Set to ON if target device uses OpenGL ES 2.0" ${ USING_GLES2 } )
2018-06-27 11:48:59 +00:00
option ( USING_X11_VULKAN "Set to OFF if target environment doesn't use X11 for Vulkan" ON )
2019-03-23 14:27:29 +00:00
option ( USE_WAYLAND_WSI "Enable or disable Wayland WSI support for Vulkan" ${ USE_WAYLAND_WSI } )
2014-05-30 15:22:11 +00:00
# :: Frontends
2012-12-16 11:17:13 +00:00
option ( USING_QT_UI "Set to ON if you wish to use the Qt frontend wrapper" ${ USING_QT_UI } )
2016-10-09 20:10:51 +00:00
option ( MOBILE_DEVICE "Set to ON when targeting a mobile device" ${ MOBILE_DEVICE } )
2012-11-18 16:00:27 +00:00
option ( HEADLESS "Set to OFF to not generate the PPSSPPHeadless target" ${ HEADLESS } )
2014-01-11 11:18:57 +00:00
option ( UNITTEST "Set to ON to generate the unittest target" ${ UNITTEST } )
2013-11-26 02:18:15 +00:00
option ( SIMULATOR "Set to ON when targeting an x86 simulator of an ARM platform" ${ SIMULATOR } )
2018-03-24 11:44:53 +00:00
option ( LIBRETRO "Set to ON to generate the libretro target" OFF )
2014-05-30 15:22:11 +00:00
# :: Options
2018-12-04 02:35:48 +00:00
option ( USE_FFMPEG "Build with FFMPEG support" ON )
2018-11-10 15:39:27 +00:00
option ( USE_DISCORD "Build with Discord support" ON )
2020-01-17 19:32:09 +00:00
option ( USE_MINIUPNPC "Build with miniUPnPc support" ON )
2018-08-26 19:59:02 +00:00
option ( USE_SYSTEM_SNAPPY "Dynamically link against system snappy" ${ USE_SYSTEM_SNAPPY } )
2015-06-01 13:29:54 +00:00
option ( USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${ USE_SYSTEM_FFMPEG } )
2018-02-07 11:09:06 +00:00
option ( USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${ USE_SYSTEM_LIBZIP } )
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 16:00:27 +00:00
2017-12-27 14:28:17 +00:00
if ( UNIX AND NOT ( APPLE OR ANDROID ) AND VULKAN )
2018-06-19 20:44:55 +00:00
if ( USING_X11_VULKAN )
message ( "Using X11 for Vulkan" )
add_definitions ( -DVK_USE_PLATFORM_XLIB_KHR )
else ( )
message ( "NOT using X11 for Vulkan" )
endif ( )
2017-12-26 12:00:40 +00:00
# add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
2018-11-06 09:59:22 +00:00
if ( USE_WAYLAND_WSI )
find_package ( Wayland )
if ( NOT WAYLAND_FOUND )
message ( STATUS "Could not find Wayland libraries, disabling Wayland WSI support for Vulkan." )
else ( )
include_directories ( ${ WAYLAND_INCLUDE_DIR } )
add_definitions ( -DVK_USE_PLATFORM_WAYLAND_KHR )
endif ( )
2017-12-26 12:00:40 +00:00
endif ( )
endif ( )
2017-12-13 21:58:45 +00:00
2018-03-24 11:44:53 +00:00
if ( LIBRETRO )
add_definitions ( -D__LIBRETRO__ )
add_definitions ( -DGLEW_NO_GLU )
2018-03-24 12:39:05 +00:00
if ( NOT MSVC )
add_compile_options ( -fPIC )
endif ( )
2018-03-24 11:44:53 +00:00
endif ( )
2013-11-29 13:24:12 +00:00
if ( ANDROID )
2016-10-09 20:10:51 +00:00
set ( MOBILE_DEVICE ON )
set ( USING_GLES2 ON )
2018-03-28 23:16:56 +00:00
endif ( )
if ( ANDROID AND NOT LIBRETRO )
set ( CoreLibName ppsspp_jni )
set ( CoreLinkType SHARED )
2012-11-18 16:00:27 +00:00
else ( )
2012-11-26 02:41:57 +00:00
set ( CoreLibName Core )
set ( CoreLinkType STATIC )
2012-11-18 16:00:27 +00:00
endif ( )
2020-03-03 21:46:26 +00:00
# Work around for some misfeature of the current glslang build system
include_directories ( ext/glslang )
2020-10-05 07:13:35 +00: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 21:46:26 +00:00
2016-10-11 01:27:38 +00:00
if ( NOT OPENGL_LIBRARIES AND USING_GLES2 )
2018-09-25 12:19:23 +00:00
set ( OPENGL_LIBRARIES GLESv2 EGL )
2014-06-18 06:15:47 +00:00
endif ( )
2018-11-06 13:31:44 +00:00
if ( NOT OPENGL_LIBRARIES )
2021-02-16 23:14:57 +00:00
if ( POLICY CMP0072 )
cmake_policy ( SET CMP0072 NEW )
endif ( )
2018-11-06 13:31:44 +00:00
find_package ( OpenGL REQUIRED )
endif ( )
2017-12-04 18:09:06 +00: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 18:09:06 +00:00
endif ( )
2021-01-17 10:34:27 +00:00
if ( NOT LIBRETRO AND NOT IOS )
2019-11-10 18:47:15 +00:00
find_package ( SDL2 )
endif ( )
2012-11-18 16:00:27 +00:00
include ( FindThreads )
2014-06-18 06:15:47 +00:00
2012-11-26 22:06:18 +00:00
if ( APPLE )
find_library ( COCOA_LIBRARY Cocoa )
2020-01-19 09:34:21 +00:00
find_library ( QUARTZ_CORE_LIBRARY QuartzCore )
2012-11-26 22:06:18 +00:00
endif ( )
2012-11-18 16:00:27 +00:00
include_directories ( "${CMAKE_SOURCE_DIR}" )
2014-05-30 15:22:11 +00:00
if ( USING_EGL )
add_definitions ( -DUSING_EGL )
2013-01-12 15:15:46 +00:00
endif ( )
2014-05-30 15:22:11 +00:00
if ( USING_FBDEV )
2021-03-17 14:33:03 +00:00
add_definitions ( -DUSING_FBDEV -DEGL_NO_X11 )
2012-11-18 16:00:27 +00:00
endif ( )
2012-12-16 11:17:13 +00:00
if ( USING_GLES2 )
2012-11-26 02:41:57 +00:00
add_definitions ( -DUSING_GLES2 )
2012-11-18 16:00:27 +00:00
endif ( )
2014-02-08 18:29:22 +00:00
if ( MOBILE_DEVICE )
add_definitions ( -DMOBILE_DEVICE )
endif ( )
2012-11-18 16:00:27 +00:00
2018-10-28 18:33:25 +00:00
if ( NOT CMAKE_BUILD_TYPE )
2014-06-11 13:28:51 +00:00
message ( STATUS "No build type selected, default to Release" )
set ( CMAKE_BUILD_TYPE "Release" )
endif ( )
2016-12-05 15:51:28 +00:00
message ( "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}" )
# Let's not use elseif here so we can catch dupes.
2014-07-06 13:50:48 +00:00
if ( ARMV7 )
2016-12-05 15:51:28 +00: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 ( )
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 22:45:25 +00:00
message ( "Generating for ARMv8, ${CMAKE_BUILD_TYPE}" )
2014-07-06 13:50:48 +00:00
endif ( )
2020-08-16 12:01:23 +00: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 02:41:57 +00:00
if ( NOT MSVC )
2018-10-28 18:33:25 +00:00
if ( ANDROID )
2017-03-16 09:16:29 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11" )
endif ( )
2018-10-28 18:33:25 +00:00
if ( CLANG )
2017-03-16 09:16:29 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-uninitialized" )
2017-03-13 22:45:25 +00:00
endif ( )
2017-03-15 14:56:06 +00:00
2021-01-29 23:08:20 +00:00
if ( USE_ASAN )
2018-01-31 13:22:38 +00: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 13:22:38 +00: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 13:22:38 +00: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 13:22:38 +00:00
2017-03-15 14:56:06 +00: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 09:43:21 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -D_NDEBUG" )
2017-03-15 14:56:06 +00: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 09:43:21 +00:00
set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -D_NDEBUG" )
2017-03-15 14:56:06 +00:00
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG" )
2021-03-03 08:00:23 +00:00
2012-11-26 03:25:14 +00:00
# Disable some warnings
add_definitions ( -Wno-multichar )
2017-03-13 22:45:25 +00:00
add_definitions ( -Wno-deprecated-register )
2020-03-11 04:00:30 +00:00
add_definitions ( -Wno-tautological-pointer-compare )
2016-12-05 15:51:28 +00:00
# Don't compile with strict aliasing, we're not 100% aliasing-safe
2018-03-23 02:18:13 +00:00
add_compile_options ( -fno-strict-aliasing )
2018-10-28 18:33:25 +00:00
if ( ${ CMAKE_C_COMPILER_ID } STREQUAL "Intel" )
2013-05-30 12:26:43 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -parallel -fopenmp" )
endif ( )
2012-11-26 02:41:57 +00:00
2017-03-16 09:16:29 +00:00
if ( X86 OR X86_64 )
2012-11-26 02:41:57 +00:00
# enable sse2 code generation
add_definitions ( -msse2 )
endif ( )
2013-02-24 12:17:52 +00:00
if ( IOS )
2016-10-11 01:27:38 +00:00
elseif ( APPLE AND NOT CMAKE_CROSSCOMPILING )
2020-10-05 08:19:04 +00:00
set ( MACOSX_VERSION_MIN "10.8" )
2018-06-03 16:02:57 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${MACOSX_VERSION_MIN}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${MACOSX_VERSION_MIN} -stdlib=libc++ -U__STRICT_ANSI__" )
2013-03-02 19:19:40 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
2017-03-13 22:45:25 +00:00
elseif ( NOT ANDROID )
2017-03-16 09:16:29 +00:00
# TODO: See if we can get rid of no-psabi
2018-10-28 18:33:25 +00:00
if ( NOT ${ CMAKE_C_COMPILER_ID } STREQUAL "Intel" AND NOT ${ CMAKE_CXX_COMPILER_ID } STREQUAL "Clang" )
2014-06-11 13:02:56 +00:00
add_definitions ( -Wno-psabi )
endif ( )
2016-10-11 15:34:19 +00:00
add_definitions ( -D_XOPEN_SOURCE=700 )
2015-06-17 07:32:13 +00:00
add_definitions ( -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 )
2014-06-11 13:02:56 +00:00
add_definitions ( -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 )
2017-03-13 22:45:25 +00:00
elseif ( ANDROID )
add_definitions ( -fsigned-char )
2012-11-26 02:41:57 +00:00
endif ( )
else ( )
# Disable warnings about MS-specific _s variants of libc functions
add_definitions ( -D_CRT_SECURE_NO_WARNINGS )
2020-08-13 14:48:48 +00:00
if ( NOT CLANG )
add_compile_options ( -MP )
endif ( )
2014-06-11 13:02:56 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG" )
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_NDEBUG" )
2012-11-18 16:00:27 +00:00
endif ( )
2018-03-23 02:18:13 +00:00
if ( WIN32 )
2018-03-24 12:39:05 +00:00
add_definitions ( -D_UNICODE -DUNICODE )
add_definitions ( -DUSING_WIN_UI )
2018-03-23 02:18:13 +00:00
endif ( )
2017-03-13 22:45:25 +00:00
if ( NOT ANDROID )
2012-11-18 16:00:27 +00:00
set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
2017-03-13 22:45:25 +00:00
endif ( )
2012-11-18 16:00:27 +00:00
# This sets up the MSVC project dirs according to the physical project dirs
macro ( setup_target_project TargetName ProjectDir )
2012-11-26 02:41:57 +00: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 16:00:27 +00:00
endmacro ( )
2020-10-05 08:19:04 +00:00
add_subdirectory ( ext )
if ( WIN32 )
include_directories ( dx9sdk/Include )
include_directories ( dx9sdk/Include/DX11 )
endif ( )
2016-10-11 01:26:33 +00: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 18:33:25 +00:00
C o m m o n / x 6 4 E m i t t e r . h
)
2016-10-11 01:26:33 +00: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
2021-05-01 14:15:04 +00: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 N E O N . c p p
2018-10-28 18:33:25 +00:00
)
2016-10-11 01:26:33 +00: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
2018-10-28 18:33:25 +00:00
C o r e / U t i l / D i s A r m 6 4 . c p p
)
2016-10-11 01:26:33 +00: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 18:33:25 +00:00
C o m m o n / M i p s E m i t t e r . h
)
2016-10-11 01:26:33 +00:00
source_group ( MIPS FILES ${ CommonMIPS } )
2020-10-04 21:24:14 +00: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 15:51:28 +00:00
2012-11-18 16:00:27 +00:00
add_library ( Common STATIC
2016-10-11 01:26:33 +00: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 }
2020-10-04 21:24:14 +00:00
$ { C o m m o n D 3 D }
2020-08-10 07:12:51 +00: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 02:41:57 +00: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 18:25:45 +00: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 11:05:04 +00: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 18:58:33 +00: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 11:05:04 +00: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
2020-10-05 18:58:33 +00: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 11:05:04 +00: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 14:15:04 +00: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-03 22:25:21 +00: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 11:05:04 +00: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-03 22:25:21 +00: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 07:29:36 +00: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
2020-10-04 18:48:47 +00: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 11:05:04 +00: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-03 22:25:21 +00: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
C o m m o n / F i l e / V F S / A s s e t R e a d e r . c p p
C o m m o n / F i l e / V F S / A s s e t R e a d e r . h
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
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 18:48:47 +00: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 21:24:14 +00:00
C o m m o n / G P U / D a t a F o r m a t . h
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 08:18:35 +00: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 08:00:06 +00: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 21:24:14 +00: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
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
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
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
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
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
2020-10-01 07:36:43 +00: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-03 22:25:21 +00:00
C o m m o n / M a t h / f a s t / f a s t _ m a t h . c
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 / f a s t / f a s t _ m a t r i x _ n e o n . S
C o m m o n / M a t h / f a s t / f a s t _ m a t r i x _ s s e . 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
2020-10-04 18:48:47 +00: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
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 15:36:25 +00: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 18:48:47 +00: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 08:04:01 +00: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 21:24:14 +00: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
2020-10-04 22:05:28 +00: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
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 08:10:55 +00: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
2020-10-01 07:27:25 +00:00
C o m m o n / T h r e a d / P r i o r i t i z e d W o r k Q u e u e . c p p
C o m m o n / T h r e a d / P r i o r i t i z e d W o r k Q u e u e . h
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
C o m m o n / T h r e a d / T h r e a d P o o l . c p p
C o m m o n / T h r e a d / T h r e a d P o o l . h
2020-10-04 18:48:47 +00: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
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
2020-09-29 10:53:18 +00: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 11:02:02 +00: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 10:53:18 +00: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-21 00:25:50 +00: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 10:11:56 +00: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 11:48:31 +00: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 19:53:51 +00:00
C o m m o n / L o g M a n a g e r . c p p
2012-11-26 02:41:57 +00:00
C o m m o n / L o g M a n a g e r . h
2019-08-12 19:53:51 +00:00
C o m m o n / M a k e U n i q u e . h
2017-01-25 14:43:24 +00: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 18:29:43 +00: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 14:43:24 +00: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
2012-11-26 02:41:57 +00: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
C o m m o n / M e m o r y U t i l . h
2017-02-14 09:33:42 +00: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 06:22:15 +00: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 13:45:51 +00: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 18:53:08 +00: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
2018-10-28 18:33:25 +00:00
)
2017-03-13 22:45:25 +00:00
2012-11-18 16:00:27 +00:00
include_directories ( Common )
setup_target_project ( Common Common )
2017-03-19 17:38:04 +00:00
target_link_libraries ( Common Ext::Snappy )
2016-12-18 18:01:05 +00:00
2018-11-06 17:31:05 +00:00
if ( USING_GLES2 OR ( USING_EGL AND NOT USING_FBDEV ) )
2015-09-16 01:46:51 +00:00
find_package ( X11 )
endif ( )
2013-12-05 15:24:40 +00:00
2018-04-15 18:24:10 +00:00
add_library ( gason STATIC
2020-10-05 08:19:04 +00: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 17:18:30 +00:00
)
2020-10-05 08:19:04 +00:00
2015-06-01 13:29:54 +00:00
if ( USE_FFMPEG )
2018-10-28 18:33:25 +00: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 23:25:48 +00:00
set ( PLATFORM_ARCH "macosx/universal" )
2018-10-28 18:33:25 +00: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" )
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 11:08:19 +00:00
endif ( USE_FFMPEG )
find_package ( ZLIB )
2017-03-13 22:45:25 +00:00
if ( ZLIB_FOUND AND NOT ANDROID )
2013-12-06 11:08:19 +00:00
include_directories ( ${ ZLIB_INCLUDE_DIR } )
2015-09-16 03:59:31 +00:00
add_definitions ( -DSHARED_ZLIB )
2013-12-06 11:08:19 +00: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 23:46:11 +00:00
add_library ( cityhash STATIC
2020-09-29 21:59:05 +00: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 23:46:11 +00:00
)
include_directories ( ext/cityhash )
2013-12-06 11:08:19 +00:00
2018-10-28 18:33:25 +00:00
if ( NOT MSVC )
2014-06-11 13:02:56 +00:00
# These can be fast even for debug.
2021-01-17 09:43:21 +00:00
set_target_properties ( udis86 PROPERTIES COMPILE_FLAGS "-O2" )
set_target_properties ( cityhash PROPERTIES COMPILE_FLAGS "-O2" )
2014-06-11 13:02:56 +00:00
if ( NOT ZLIB_FOUND )
2021-01-17 09:43:21 +00:00
set_target_properties ( zlib PROPERTIES COMPILE_FLAGS "-O2" )
2014-06-11 13:02:56 +00:00
endif ( )
endif ( )
2021-01-05 14:38:06 +00:00
find_package ( LIBZIP )
2018-02-07 11:09:06 +00:00
if ( LIBZIP_FOUND AND USE_SYSTEM_LIBZIP )
add_definitions ( -DSHARED_LIBZIP )
else ( )
add_library ( libzip STATIC
2020-09-29 21:59:05 +00:00
e x t / l i b z i p / z i p . h
e x t / l i b z i p / m k s t e m p . c
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
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
e x t / l i b z i p / z i p _ d i r e n t . c
e x t / l i b z i p / z i p _ e n t r y _ f r e e . c
e x t / l i b z i p / z i p _ e n t r y _ n e w . c
e x t / l i b z i p / z i p _ e r r _ s t r . c
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
e x t / l i b z i p / z i p _ f c l o s e . c
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
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
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 i l e r a n g e _ c r c . c
e x t / l i b z i p / z i p _ f o p e n . c
e x t / l i b z i p / z i p _ f o p e n _ i n d e x . c
e x t / l i b z i p / z i p _ f r e a d . c
e x t / l i b z i p / z i p _ f r e e . c
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
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
e x t / l i b z i p / z i p _ g e t _ n u m _ f i l e s . c
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
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
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
e x t / l i b z i p / z i p _ s e t _ n a m e . c
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
e x t / l i b z i p / z i p _ s o u r c e _ f i l e . c
e x t / l i b z i p / z i p _ s o u r c e _ f i l e p . c
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
e x t / l i b z i p / z i p _ s o u r c e _ z i p . c
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
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
2018-10-28 18:33:25 +00:00
)
2018-02-07 11:09:06 +00:00
target_link_libraries ( libzip )
2020-09-29 21:59:05 +00:00
include_directories ( ext/libzip )
2018-02-07 11:09:06 +00:00
set ( LIBZIP_LIBRARY libzip )
endif ( )
2012-11-18 16:00:27 +00:00
2020-03-22 17:02:00 +00: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 ( )
find_package ( PNG ${ PNG_REQUIRED_VERSION } )
2018-10-28 18:33:25 +00:00
if ( PNG_FOUND )
2020-03-22 17:02:00 +00:00
include_directories ( ${ PNG_INCLUDE_DIRS } )
2013-12-07 15:42:17 +00:00
else ( )
2014-05-30 18:36:13 +00:00
if ( ARM )
2016-10-11 01:27:54 +00:00
set ( PNG_ARM_INCLUDES
2020-09-29 21:59:05 +00: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 18:33:25 +00:00
)
2020-12-14 18:43:11 +00: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-30 18:36:13 +00:00
endif ( )
add_library ( png17 STATIC
2020-09-29 21:59:05 +00: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 18:33:25 +00:00
$ { P N G _ A R M _ I N C L U D E S }
)
2020-03-22 17:02:00 +00:00
set ( PNG_LIBRARIES png17 )
2020-09-29 21:59:05 +00:00
include_directories ( ext/libpng17 )
2013-12-07 15:42:17 +00:00
endif ( )
2015-02-02 08:17:03 +00:00
2012-11-18 16:00:27 +00:00
set ( nativeExtra )
2012-12-02 04:48:00 +00:00
set ( nativeExtraLibs )
2014-03-22 14:18:01 +00:00
2012-11-18 16:00:27 +00:00
if ( ANDROID )
2018-10-28 18:33:25 +00:00
set ( nativeExtra ${ nativeExtra }
C o m m o n / G L / G L I n t e r f a c e / E G L A n d r o i d . c p p
C o m m o n / G L / G L I n t e r f a c e / E G L A n d r o i d . h
C o m m o n / G L / G L I n t e r f a c e / E G L . c p p
C o m m o n / G L / G L I n t e r f a c e / E G L . h
C o m m o n / G L / G L I n t e r f a c e / G L I n t e r f a c e . c p p
C o m m o n / G L / G L I n t e r f a c e B a s e . h
)
2016-12-05 15:51:28 +00:00
2020-02-05 17:00:08 +00:00
set ( NativeAppSource ${ NativeAppSource }
2016-01-21 21:37:13 +00: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 20:47:16 +00:00
a n d r o i d / j n i / A n d r o i d E 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 E 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 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 12:22:50 +00: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 18:33:25 +00:00
)
2012-12-02 04:48:00 +00:00
# No target
2013-02-17 14:04:44 +00:00
elseif ( IOS )
set ( nativeExtra ${ nativeExtra }
2013-08-19 03:17:33 +00:00
i o s / m a i n . m m
2015-05-27 06:35:09 +00:00
i o s / A p p D e l e g a t e . m m
2013-02-17 14:04:44 +00:00
i o s / A p p D e l e g a t e . h
2019-06-10 17:24:58 +00: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-17 14:04:44 +00:00
i o s / V i e w C o n t r o l l e r . m m
2013-03-16 14:50:55 +00:00
i o s / V i e w C o n t r o l l e r . h
2017-12-31 01:56:23 +00:00
i o s / i O S C o r e A u d i o . m m
2013-06-25 21:38:30 +00:00
i o s / i O S C o r e A u d i o . h
2020-01-09 13:57:09 +00: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 07:46:05 +00: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
2018-04-08 00:15:49 +00:00
i o s / S u b t l e V o l u m e . h
i o s / S u b t l e V o l u m e . m m
2013-05-31 01:58:41 +00: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 18:33:25 +00:00
i o s / i C a d e / i C a d e S t a t e . h
)
2020-01-09 13:57:09 +00: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" )
2014-05-30 15:22:11 +00:00
if ( EXISTS "${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks/GameController.framework" )
set ( nativeExtraLibs ${ nativeExtraLibs } "-weak_framework GameController" )
endif ( )
2017-11-18 16:16:44 +00:00
2015-10-08 05:27:15 +00:00
if ( NOT ICONV_LIBRARY )
set ( nativeExtraLibs ${ nativeExtraLibs } iconv )
endif ( )
2014-05-30 15:22:11 +00:00
2015-05-27 06:35:09 +00:00
set_source_files_properties ( ios/AppDelegate.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2014-05-30 15:22:11 +00:00
set_source_files_properties ( ios/ViewController.mm PROPERTIES COMPILE_FLAGS -fobjc-arc )
2018-01-01 03:36:47 +00: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 13:57:09 +00: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 )
2014-05-17 05:53:40 +00:00
2013-02-24 03:23:04 +00:00
set ( TargetBin PPSSPP )
2012-12-16 11:17:13 +00:00
elseif ( USING_QT_UI )
2018-10-28 18:33:25 +00:00
set ( CMAKE_AUTOMOC ON )
2020-01-25 08:06:00 +00:00
find_package ( Qt5 COMPONENTS OpenGL Gui Core Multimedia )
2018-10-28 18:33:25 +00: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 / Q t H o s t . c p p
Q t / Q t H o s t . 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 ( )
2020-10-05 08:19:04 +00:00
include_directories ( Qt )
include_directories ( ${ CMAKE_CURRENT_BINARY_DIR } )
2020-01-25 08:06:00 +00:00
set ( nativeExtraLibs ${ nativeExtraLibs } Qt5::OpenGL Qt5::Gui Qt5::Core Qt5::Multimedia )
2012-12-16 11:17:13 +00:00
set ( TargetBin PPSSPPQt )
2017-02-01 06:14:04 +00:00
2020-10-05 08:19:04 +00:00
# Enable SDL joystick if SDL is found
2018-10-28 18:33:25 +00: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 06:14:04 +00:00
2016-12-05 15:51:28 +00: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 ( )
2018-03-23 02:18:13 +00:00
elseif ( TARGET SDL2::SDL2 )
2018-10-28 18:33:25 +00:00
set ( TargetBin PPSSPPSDL )
# 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
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
)
set ( nativeExtraLibs ${ nativeExtraLibs } SDL2::SDL2 )
if ( APPLE )
2020-01-19 09:34:21 +00:00
set ( nativeExtra ${ nativeExtra } SDL/SDLMain.h SDL/SDLMain.mm SDL/SDLCocoaMetalLayer.h SDL/SDLCocoaMetalLayer.mm )
set ( nativeExtraLibs ${ nativeExtraLibs } ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } )
2018-10-28 18:33:25 +00:00
elseif ( USING_EGL )
set ( nativeExtraLibs ${ nativeExtraLibs } pthread )
endif ( )
2019-07-30 06:35:45 +00:00
elseif ( NOT LIBRETRO )
2014-09-01 09:37:44 +00:00
message ( FATAL_ERROR "Could not find SDL2. Failing." )
2012-11-18 16:00:27 +00:00
endif ( )
2020-10-05 08:19:04 +00: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 ( )
2021-01-17 10:34:27 +00:00
if ( TARGET SDL2::SDL2 AND NOT IOS )
2020-10-05 08:19:04 +00:00
target_link_libraries ( Common SDL2::SDL2 )
endif ( )
2016-10-12 18:58:50 +00:00
list ( APPEND NativeAppSource
2014-08-23 12:24:24 +00: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-12 22:25:08 +00: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-27 16:49:50 +00:00
U I / N a t i v e A p p . c p p
U I / B a c k g r o u n d A u d i o . c p p
2016-10-25 10:42:51 +00:00
U I / C h a t S c r e e n . c p p
2014-06-27 16:49:50 +00:00
U I / D e v S c r e e n s . c p p
2015-10-24 12:40:29 +00:00
U I / D i s p l a y L a y o u t E d i t o r . c p p
U I / D i s p l a y L a y o u t S c r e e n . c p p
2014-06-27 16:49:50 +00:00
U I / E m u S c r e e n . c p p
U I / G a m e I n f o C a c h e . c p p
U I / M a i n S c r e e n . c p p
U I / M i s c S c r e e n s . c p p
2014-12-22 09:48:17 +00:00
U I / P a u s e S c r e e n . c p p
2014-06-27 16:49:50 +00:00
U I / G a m e S c r e e n . c p p
U I / G a m e S e t t i n g s S c r e e n . c p p
2018-12-19 13:01:19 +00: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
2014-06-27 16:49:50 +00: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
U I / T i l t E v e n t P r o c e s s o r . c p p
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
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
U I / G a m e p a d E m u . c p p
U I / O n S c r e e n D i s p l a y . c p p
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
2016-07-03 17:24:33 +00:00
U I / R e m o t e I S O S c r e e n . c p p
2014-02-10 09:24:40 +00:00
U I / R e p o r t S c r e e n . c p p
2015-06-11 18:22:16 +00:00
U I / S a v e d a t a S c r e e n . c p p
2014-06-27 16:49:50 +00:00
U I / S t o r e . c p p
U I / C w C h e a t S c r e e n . c p p
U I / I n s t a l l Z i p S c r e e n . c p p
2015-10-14 15:45:21 +00:00
U I / P r o f i l e r D r a w . c p p
2016-12-27 21:46:24 +00:00
U I / T e x t u r e U t i l . c p p
2018-10-28 18:33:25 +00:00
U I / C o m b o K e y M a p p i n g S c r e e n . c p p
)
2016-12-05 15:51:28 +00:00
2014-06-27 16:49:50 +00:00
if ( ANDROID )
2018-10-28 18:33:25 +00:00
if ( ARM )
2014-06-27 16:49:50 +00:00
set ( NativeAppSource ${ NativeAppSource } android/jni/ArmEmitterTest.cpp )
2018-10-28 18:33:25 +00:00
elseif ( ARM64 )
2016-12-05 15:51:28 +00:00
set ( NativeAppSource ${ NativeAppSource } android/jni/Arm64EmitterTest.cpp )
2014-06-27 16:49:50 +00:00
endif ( )
2020-02-05 17:00:08 +00:00
if ( NOT LIBRETRO )
set ( nativeExtra ${ nativeExtra } ${ NativeAppSource } )
endif ( )
2014-06-27 16:49:50 +00:00
endif ( )
2012-11-18 16:00:27 +00:00
add_library ( native STATIC
2012-11-26 02:41:57 +00:00
$ { n a t i v e E x t r a }
2020-10-05 08:19:04 +00: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 21:59:05 +00: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 18:33:25 +00:00
)
2013-12-19 10:10:46 +00:00
2018-10-28 18:33:25 +00:00
if ( LINUX AND NOT ANDROID )
set ( RT_LIB rt )
2013-12-19 10:10:46 +00:00
endif ( )
2018-10-28 18:33:25 +00:00
set ( ATOMIC_LIB )
2016-12-05 15:51:28 +00:00
if ( ANDROID )
2018-10-28 18:33:25 +00:00
set ( ATOMIC_LIB atomic )
2016-12-05 15:51:28 +00:00
endif ( )
2020-10-01 11:05:04 +00:00
target_link_libraries ( native ${ LIBZIP_LIBRARY } ${ PNG_LIBRARIES } ${ ZLIB_LIBRARY } gason udis86 ${ RT_LIB } ${ nativeExtraLibs } ${ ATOMIC_LIB } Common )
2017-01-10 00:19:58 +00:00
if ( TARGET Ext::GLEW )
2018-10-28 18:33:25 +00:00
target_link_libraries ( native Ext::GLEW )
2016-10-12 15:30:18 +00:00
endif ( )
2013-10-27 14:28:18 +00:00
2012-11-18 16:00:27 +00:00
if ( ANDROID )
2016-12-05 15:51:28 +00:00
target_link_libraries ( native log EGL OpenSLES )
2013-10-27 14:28:18 +00:00
elseif ( WIN32 )
2012-11-26 02:41:57 +00: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 16:00:27 +00:00
endif ( )
add_library ( kirk STATIC
2012-11-26 02:41:57 +00: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-24 14:45:10 +00: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 02:41:57 +00: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 18:33:25 +00:00
e x t / l i b k i r k / k i r k _ e n g i n e . h
)
2012-11-18 16:00:27 +00:00
include_directories ( ext/libkirk )
2015-02-15 05:22:20 +00: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
)
include_directories ( ext/sfmt19937 )
2013-04-30 16:44:20 +00: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
)
include_directories ( ext/xbrz )
2013-08-17 05:58:38 +00: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
)
include_directories ( ext/xxhash )
2012-11-18 16:00:27 +00:00
set ( CoreExtra )
2017-03-13 18:28:56 +00:00
set ( CoreExtraLibs )
2016-05-08 19:56:52 +00:00
set ( CoreExtra ${ CoreExtra }
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 18:05:06 +00: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 19:56:52 +00: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
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 18:33:25 +00:00
)
2016-05-08 19:56:52 +00:00
2016-10-12 15:32:52 +00: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
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 18:33:25 +00:00
C o r e / U t i l / D i s A r m 6 4 . c p p
)
2016-10-12 15:32:52 +00: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
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
2017-05-11 00:31:34 +00: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 15:32:52 +00: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
)
2018-10-28 18:33:25 +00:00
if ( NOT MOBILE_DEVICE )
2016-09-02 00:09:56 +00:00
set ( CoreExtra ${ CoreExtra }
C o r e / A V I D u m p . c p p
2016-09-03 22:26:01 +00: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 18:33:25 +00:00
C o r e / W a v e F i l e . h
)
2016-09-02 00:09:56 +00:00
endif ( )
2016-12-05 15:51:28 +00:00
set ( GPU_GLES
2017-01-21 21:16:30 +00:00
G P U / G L E S / D e p a l e t t i z e S h a d e r G L E S . c p p
G P U / G L E S / D e p a l e t t i z e S h a d e r G L E S . h
2018-12-16 22:48:33 +00:00
G P U / G L E S / D e p t h B u f f e r G L E S . c p p
2016-12-05 15:51:28 +00: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 21:16:30 +00: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 06:28:44 +00: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 21:16:30 +00: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 / S t e n c i l B u f f e r 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 . 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
G P U / G L E S / T e x t u r e S c a l e r G L E S . c p p
G P U / G L E S / T e x t u r e S c a l e r G L E S . h
2016-12-05 15:51:28 +00: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-10-28 18:33:25 +00:00
G P U / V u l k a n / D e p a l e t t i z e S h a d e r V u l k a n . c p p
2016-12-05 15:51:28 +00:00
G P U / V u l k a n / D e p a l e t t i z e S h a d e r V u l k a n . h
2018-01-17 12:59:32 +00: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 15:51:28 +00: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 21:22:11 +00: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 15:51:28 +00: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
2017-11-01 13:18:39 +00:00
G P U / V u l k a n / S t e n c i l B u f f e r V u l k a n . c p p
2016-12-05 15:51:28 +00:00
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 / T e x t u r e S c a l e r 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 S c a l e r 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
2018-10-28 18:33:25 +00:00
G P U / D i r e c t x 9 / D e p a l e t t i z e S h a d e r D X 9 . c p p
2016-12-05 15:51:28 +00:00
G P U / D i r e c t x 9 / D e p a l e t t i z e S h a d e r D X 9 . h
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 21:24:50 +00: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 15:51:28 +00: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 / S t e n c i l B u f f e r 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 . 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
G P U / D i r e c t x 9 / T e x t u r e S c a l e r D X 9 . c p p
G P U / D i r e c t x 9 / T e x t u r e S c a l e r D X 9 . h
)
2017-02-08 16:47:07 +00:00
set ( GPU_D3D11
2018-10-28 18:33:25 +00:00
G P U / D 3 D 1 1 / D e p a l e t t i z e S h a d e r D 3 D 1 1 . c p p
2017-02-08 16:47:07 +00:00
G P U / D 3 D 1 1 / D e p a l e t t i z e S h a d e r D 3 D 1 1 . h
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 16:06:03 +00: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 16:47:07 +00: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
2017-02-16 16:06:03 +00:00
G P U / D 3 D 1 1 / S t e n c i l B u f f e r D 3 D 1 1 . c p p
2017-02-08 16:47:07 +00:00
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
G P U / D 3 D 1 1 / T e x t u r e S c a l e r D 3 D 1 1 . c p p
G P U / D 3 D 1 1 / T e x t u r e S c a l e r D 3 D 1 1 . h
)
2016-12-05 15:51:28 +00:00
2018-01-29 23:24:27 +00:00
# We build Vulkan even on Apple to avoid annoying build differences.
set ( GPU_IMPLS ${ GPU_GLES } ${ GPU_VULKAN } )
2016-12-05 15:51:28 +00:00
if ( WIN32 )
2017-02-08 16:47:07 +00:00
list ( APPEND GPU_IMPLS ${ GPU_D3D9 } ${ GPU_D3D11 } )
2016-12-05 15:51:28 +00:00
endif ( )
if ( ARMV7 OR ARM64 )
2016-10-12 14:46:29 +00:00
set ( GPU_NEON GPU/Common/TextureDecoderNEON.cpp )
endif ( )
set ( GPU_SOURCES
2016-12-05 15:51:28 +00:00
$ { G P U _ I M P L S }
$ { G P U _ N E O N }
2016-10-12 14:46:29 +00: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 17:56:44 +00: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 12:02:53 +00: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
2020-08-03 21:17:22 +00: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 14:46:29 +00: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-10 05:06:22 +00: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 15:12:45 +00: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 14:46:29 +00: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 16:06:03 +00: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 15:51:36 +00: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 14:46:29 +00: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 13:49:50 +00: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 14:46:29 +00: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
G P U / C o m m o n / S p l i n e C o m m o n . h
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 15:32:03 +00: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
2019-06-24 01:48:40 +00: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-03 04:53:20 +00: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-24 01:48:40 +00: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 14:46:29 +00: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 12:45:14 +00: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 14:46:29 +00: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
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
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
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 08:33:30 +00: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
2017-05-10 02:48:05 +00: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 14:46:29 +00: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 18:33:25 +00:00
G P U / g e _ c o n s t a n t s . h
)
2016-10-12 14:46:29 +00:00
2012-11-18 16:00:27 +00:00
# 'ppsspp_jni' on ANDROID, 'Core' everywhere else
# SHARED on ANDROID, STATIC everywhere else
add_library ( ${ CoreLibName } ${ CoreLinkType }
2012-11-26 02:41:57 +00:00
$ { C o r e E x t r a }
C o r e / C o n f i g . c p p
C o r e / C o n f i g . h
2018-06-17 01:42:31 +00:00
C o r e / C o n f i g V a l u e s . h
2012-11-26 02:41:57 +00:00
C o r e / C o r e . c p p
C o r e / C o r e . h
2015-09-26 14:01:16 +00: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 02:41:57 +00: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-31 05:42:27 +00: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
2013-06-23 04:25:55 +00: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 09:38:39 +00: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-03 22:25:21 +00: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
2013-08-10 16:08:31 +00:00
C o r e / T h r e a d E v e n t Q u e u e . h
2018-04-21 20:51:18 +00: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 02:41:57 +00: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 08:08:05 +00: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 02:41:57 +00: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-29 23:23:04 +00: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-13 05:11:11 +00: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 13:20:20 +00: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 15:50:25 +00: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-23 03:35:24 +00: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 15:54:04 +00: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-22 01:26:36 +00: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
2018-06-16 22:07:25 +00: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 17:58:28 +00: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
2018-05-09 00:23:14 +00: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-19 01:51:35 +00: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-19 00:58:34 +00: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 15:54:04 +00: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-05 03:23:51 +00: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-25 22:18:16 +00: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
2018-04-14 15:54:04 +00: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-30 05:02:04 +00: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 15:50:25 +00: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 12:08:54 +00: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-13 23:50:22 +00: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 15:19:53 +00: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 12:08:54 +00: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 02:32:56 +00: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
2012-12-15 23:31:43 +00: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 12:08:54 +00: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 13:54:52 +00: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 12:08:54 +00: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 02:41:57 +00: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 19:46:41 +00: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 02:41:57 +00: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 20:49:59 +00: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-08 18:29:23 +00: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 19:47:38 +00: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 02:41:57 +00: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 22:28:31 +00: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 02:41:57 +00: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-28 06:46:26 +00: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 16:13:01 +00: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 02:41:57 +00: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 19:57:44 +00: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-23 06:38:21 +00: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 02:41:57 +00: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-03 00:59:47 +00: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 12:55:25 +00: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-26 02:54:51 +00: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 20:03:15 +00: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 02:41:57 +00: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 01:35:00 +00: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 02:41:57 +00: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 09:17:17 +00: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 04:50:06 +00: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 02:41:57 +00:00
C o r e / H L E / s c e A u d i o . h
2013-06-30 12:21:56 +00: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-28 23:11:02 +00: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 02:41:57 +00: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 17:14:12 +00: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 02:41:57 +00: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 05:27:40 +00: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 13:28:26 +00: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 02:41:57 +00: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 08:34:00 +00: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 02:41:57 +00: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 11:49:34 +00: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 02:41:57 +00: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 15:13:47 +00: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 02:41:57 +00: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-06 22:55:42 +00: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 13:15:58 +00: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-06 18:44:29 +00: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 14:45:00 +00: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 04:19:48 +00: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 11:49:34 +00: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 00:27:48 +00: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 13:09:40 +00: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-06 18:44:29 +00: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 02:41:57 +00: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 05:22:20 +00: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 07:24:39 +00: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-06 18:44:29 +00: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 02:41:57 +00: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 20:45:32 +00: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 16:35:07 +00: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 18:03:06 +00: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-12 16:11:26 +00: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 15:33:43 +00: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 02:41:57 +00: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-06 18:44:29 +00: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 17:27:37 +00: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 03:40:09 +00: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
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 18:45:08 +00: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 18:40:41 +00: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-10 04:20:42 +00: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 13:57:09 +00: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
2013-01-05 15:23:21 +00: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 21:37:51 +00: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 02:41:57 +00: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 19:40:49 +00: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 11:34:54 +00: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 14:13:43 +00: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 02:41:57 +00:00
C o r e / H o s t . c p p
C o r e / H o s t . h
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 17:58:44 +00: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-28 01:32:21 +00: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 17:58:44 +00: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 23:23:25 +00: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 17:58:44 +00: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 02:41:57 +00:00
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
2013-04-26 21:58:20 +00:00
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
2015-04-12 18:41:26 +00:00
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
2012-11-26 02:41:57 +00: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 08:54:14 +00: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 02:41:57 +00: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
2013-07-28 12:50:25 +00: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 10:10:33 +00: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 02:41:57 +00: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-06 01:03:50 +00:00
C o r e / M e m M a p H e l p e r s . h
2012-11-26 02:41:57 +00: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 16:58:05 +00: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-18 06:30:04 +00: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 18:34:22 +00: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-21 07:14:46 +00: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 02:41:57 +00: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
2016-04-30 22:07:56 +00:00
C o r e / T e x t u r e R e p l a c e r . c p p
C o r e / T e x t u r e R e p l a c e r . h
2020-10-05 18:58:33 +00: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 21:50:52 +00: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
2018-09-04 01:41:52 +00:00
C o r e / U t i l / A u d i o F o r m a t N E O N . c p p
C o r e / U t i l / A u d i o F o r m a t N E O N . h
2013-11-20 13:42:48 +00: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-17 19:32:09 +00: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 02:41:57 +00: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
2015-01-11 21:50:52 +00:00
$ { C O R E _ N E O N }
2016-10-12 14:46:29 +00:00
$ { G P U _ S O U R C E S }
2016-10-12 15:30:18 +00:00
e x t / d i s a r m . c p p
2018-10-28 18:33:25 +00:00
g i t - v e r s i o n . c p p
)
2016-12-05 15:51:28 +00:00
if ( ANDROID )
2018-10-28 18:33:25 +00:00
set ( CoreExtraLibs ${ CoreExtraLibs } android )
if ( X86_64 )
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic" )
endif ( )
2017-11-18 16:16:44 +00:00
endif ( )
2021-04-11 05:19:56 +00:00
set ( CoreExtraLibs ${ CoreExtraLibs } armips libzstd_static )
include_directories ( ext/zstd/lib )
2016-12-05 15:51:28 +00:00
2017-12-15 15:03:48 +00: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 16:06:03 +00:00
2018-03-23 02:18:13 +00:00
if ( WIN32 )
2018-10-28 18:33:25 +00:00
set ( GlslangLibs ${ GlslangLibs } spirv-cross-hlsl )
2018-03-23 02:18:13 +00:00
endif ( )
2017-02-16 16:06:03 +00:00
target_link_libraries ( ${ CoreLibName } Common native kirk cityhash sfmt19937 xbrz xxhash ${ GlslangLibs }
2017-12-21 13:13:55 +00: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 } )
2016-12-05 09:37:51 +00:00
if ( FFmpeg_FOUND )
2018-10-28 18:33:25 +00:00
target_compile_definitions ( ${ CoreLibName } PRIVATE USE_FFMPEG=1 )
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 09:37:51 +00:00
endif ( )
2018-08-18 08:11:15 +00:00
# Discord integration
2020-03-17 19:32:07 +00:00
if ( USE_DISCORD AND NOT IOS AND NOT LIBRETRO )
2018-11-10 15:39:27 +00:00
add_definitions ( -DUSE_DISCORD=1 )
2018-10-28 18:33:25 +00:00
target_link_libraries ( ${ CoreLibName } discord-rpc )
2018-08-26 21:10:37 +00:00
endif ( )
2018-08-18 08:11:15 +00:00
2020-01-17 19:32:09 +00: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 )
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 ( )
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 )
add_definitions ( -DWIN32 -DMINIUPNP_EXPORTS )
else ( )
add_definitions ( -fPIC )
endif ( )
2021-03-19 12:48:23 +00:00
add_definitions ( -DWITH_UPNP -DMINIUPNP_STATICLIB )
2020-01-17 19:32:09 +00:00
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)
2021-04-17 22:34:18 +00:00
$ { 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
2020-01-17 19:32:09 +00:00
$ { 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" )
2021-02-14 17:26:48 +00:00
set ( LDLIBS ws2_32 iphlpapi ${ LDLIBS } )
2020-01-17 19:32:09 +00:00
#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 )
2020-08-12 18:15:32 +00:00
if ( MSVC )
# Suppress noise warnings
target_compile_definitions ( miniupnpc PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS )
endif ( )
2020-01-17 19:32:09 +00:00
endif ( )
endif ( )
2012-11-18 16:00:27 +00:00
setup_target_project ( ${ CoreLibName } Core )
2020-08-12 18:15:32 +00: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 19:01:08 +00: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 }
2020-08-12 18:15:32 +00: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 19:01:08 +00:00
2013-03-02 20:31:11 +00:00
set_source_files_properties ( ${ CMAKE_CURRENT_SOURCE_DIR } /git-version.cpp
2018-06-03 15:37:09 +00: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 19:01:08 +00:00
add_dependencies ( ${ CoreLibName } GitVersion )
2016-12-05 15:51:28 +00: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 09:46:10 +00: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 15:51:28 +00:00
W i n d o w s / D e b u g g e r / C P U R e g s I n t e r f a c e . h
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 _ S y m b o l M a p . 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
W i n d o w s / D e b u g g e r / S i m p l e E L F . h
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 07:06:02 +00: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 15:51:28 +00: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 16:06:03 +00: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 15:51:28 +00: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
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 / P r o p e r t y S h e e t . c p p
W i n d o w s / W 3 2 U t i l / P r o p e r t y S h e e t . 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
W i n d o w s / W 3 2 U t i l / P r o p e r t y S h e e t . c p p
W i n d o w s / W 3 2 U t i l / P r o p e r t y S h e e t . h
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 P T h e m e . 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 18:33:25 +00:00
W i n d o w s / s t d a f x . h
)
2016-12-05 15:51:28 +00:00
list ( APPEND LinkCommon ${ CoreLibName } ${ CMAKE_THREAD_LIBS_INIT } )
2012-11-18 16:00:27 +00:00
if ( WIN32 )
2020-01-13 07:06:02 +00:00
list ( APPEND LinkCommon kernel32 user32 gdi32 shell32 comctl32 dsound xinput d3d9 winmm dinput8 ole32 winspool ksuser mf mfplat mfreadwrite mfuuid shlwapi )
2016-12-05 15:51:28 +00:00
#setup_target_project(${TargetBin} Windows)
list ( APPEND NativeAppSource ${ WindowsFiles } )
2012-11-18 16:00:27 +00:00
endif ( )
2012-12-16 15:47:39 +00:00
set ( NativeAssets
2012-12-02 04:48:00 +00:00
a n d r o i d / a s s e t s / u i _ a t l a s . z i m
2020-02-29 20:51:14 +00:00
a n d r o i d / a s s e t s / u i _ a t l a s . m e t a
2016-10-14 20:46:01 +00:00
a s s e t s / l a n g
2013-10-17 16:09:44 +00:00
a s s e t s / s h a d e r s
2017-06-07 06:25:42 +00: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 09:50:23 +00:00
a s s e t s / c o m p a t . i n i
2016-09-20 21:04:01 +00: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-07 06:25:42 +00: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 20:51:14 +00:00
a s s e t s / p p g e _ a t l a s . m e t a
2017-06-07 06:25:42 +00: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 18:33:25 +00:00
a s s e t s / z i p . p n g
2020-08-04 21:36:35 +00: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 10:12:55 +00: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 18:33:25 +00:00
)
2012-12-02 04:48:00 +00:00
2013-12-06 10:33:51 +00:00
2013-10-20 00:35:46 +00:00
if ( HEADLESS )
2021-02-12 15:38:52 +00:00
set ( HeadlessSource
2013-10-20 00:35:46 +00:00
h e a d l e s s / H e a d l e s s . c p p
2017-09-20 15:58:42 +00:00
h e a d l e s s / S t u b H o s t . c p p
2013-10-20 00:35:46 +00:00
h e a d l e s s / S t u b H o s t . h
h e a d l e s s / C o m p a r e . c p p
2017-06-18 19:15:59 +00: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 18:33:25 +00: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 15:38:52 +00: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 } )
2020-01-19 09:34:21 +00:00
target_link_libraries ( PPSSPPHeadless ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ LinkCommon } )
2013-10-20 00:35:46 +00:00
setup_target_project ( PPSSPPHeadless headless )
endif ( )
2014-01-09 11:09:07 +00:00
if ( UNITTEST )
add_executable ( unitTest
u n i t t e s t / U n i t T e s t . c p p
2021-02-18 03:31:48 +00: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 21:50:51 +00: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
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 22:25:40 +00: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
2015-04-03 21:50:51 +00: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 11:09:07 +00:00
)
2020-01-19 09:34:21 +00:00
target_link_libraries ( unitTest ${ COCOA_LIBRARY } ${ QUARTZ_CORE_LIBRARY } ${ LinkCommon } Common )
2014-01-09 11:09:07 +00:00
setup_target_project ( unitTest unittest )
2021-02-17 05:42:31 +00:00
add_test ( arm64_emitter unitTest Arm64Emitter )
add_test ( arm_emitter unitTest ArmEmitter )
add_test ( x64_emitter unitTest X64Emitter )
add_test ( vertex_jit unitTest VertexJit )
add_test ( asin unitTest Asin )
add_test ( sincos unitTest SinCos )
add_test ( vfpu_sincos unitTest VFPUSinCos )
add_test ( math_util unitTest MathUtil )
add_test ( parsers unitTest Parsers )
add_test ( jit unitTest Jit )
add_test ( matrix_transpose unitTest MatrixTranspose )
add_test ( parse_lbn unitTest ParseLBN )
add_test ( quick_texhash unitTest QuickTexHash )
add_test ( clz unitTest CLZ )
add_test ( shadergen unitTest ShaderGenerators )
2014-01-09 11:09:07 +00:00
endif ( )
2018-03-24 11:44:53 +00:00
if ( LIBRETRO )
add_subdirectory ( libretro )
endif ( )
2018-10-28 18:33:25 +00:00
if ( TargetBin )
2020-12-08 05:46:14 +00:00
if ( APPLE )
if ( NOT IOS )
2018-10-28 18:33:25 +00:00
set ( ICON_PATH_ABS ${ CMAKE_CURRENT_SOURCE_DIR } /icons/ppsspp.icns )
set ( MACOSX_BUNDLE_ICON_FILE ppsspp.icns )
set_source_files_properties ( ${ ICON_PATH_ABS } PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" )
2015-05-27 07:37:49 +00:00
endif ( )
2014-07-23 06:12:18 +00:00
# TODO: there must a native way to copy these.
# Now this is very prone to errors when changes occur.
2015-05-27 07:37:49 +00:00
# Also better to have assets under Resources dir for OS X.
2017-03-31 21:50:17 +00:00
file ( GLOB_RECURSE FLASH0_FILES assets/flash0/* )
2016-10-14 20:33:45 +00:00
file ( GLOB_RECURSE LANG_FILES assets/lang/* )
2014-07-23 06:12:18 +00:00
file ( GLOB_RECURSE SHADER_FILES assets/shaders/* )
2015-05-27 07:37:49 +00:00
2020-12-08 05:46:14 +00:00
if ( NOT IOS )
2018-10-28 18:33:25 +00:00
set_source_files_properties ( ${ NativeAssets } PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS/assets" )
set_source_files_properties ( ${ FLASH0_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS/assets/flash0/font" )
set_source_files_properties ( ${ LANG_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS/assets/lang" )
set_source_files_properties ( ${ SHADER_FILES } PROPERTIES MACOSX_PACKAGE_LOCATION "MacOS/assets/shaders" )
2015-05-27 07:37:49 +00:00
endif ( )
2015-02-02 08:17:03 +00:00
2018-10-28 18:33:25 +00:00
if ( IOS )
2020-12-08 05:46:14 +00:00
add_executable ( ${ TargetBin } MACOSX_BUNDLE ${ ICON_PATH_ABS } ${ NativeAssets } ${ SHADER_FILES } ${ FLASH0_FILES } ${ LANG_FILES } ${ NativeAppSource } "ios/Settings.bundle" "ios/Launch Screen.storyboard" "MoltenVK/iOS/Frameworks" )
2018-01-04 17:56:49 +00:00
else ( )
2018-10-28 18:33:25 +00:00
add_executable ( ${ TargetBin } MACOSX_BUNDLE ${ ICON_PATH_ABS } ${ NativeAssets } ${ SHADER_FILES } ${ FLASH0_FILES } ${ LANG_FILES } ${ NativeAppSource } )
2020-12-08 05:46:14 +00:00
file ( INSTALL "${CMAKE_SOURCE_DIR}/MoltenVK/macOS/Frameworks/libMoltenVK.dylib" DESTINATION "${CMAKE_BINARY_DIR}/PPSSPPSDL.app/Contents/Frameworks/" )
2019-09-15 19:35:26 +00:00
if ( TARGET SDL2::SDL2 AND NOT USING_QT_UI )
2019-02-23 11:15:17 +00:00
add_custom_command ( TARGET ${ TargetBin } POST_BUILD COMMAND /bin/bash "${CMAKE_SOURCE_DIR}/SDL/macbundle.sh" "${CMAKE_BINARY_DIR}/PPSSPPSDL.app" )
2020-02-04 03:55:54 +00:00
elseif ( USING_QT_UI )
add_custom_command ( TARGET ${ TargetBin } POST_BUILD COMMAND /bin/bash "${CMAKE_SOURCE_DIR}/Qt/macbundle.sh" "${CMAKE_BINARY_DIR}/PPSSPPQt.app" )
2019-02-23 11:15:17 +00:00
endif ( )
2018-01-04 17:56:49 +00:00
endif ( )
2016-12-05 16:34:26 +00:00
elseif ( WIN32 )
2017-02-16 16:06:03 +00:00
add_executable ( ${ TargetBin } WIN32 ${ NativeAppSource } )
2018-03-23 02:18:13 +00: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 16:34:26 +00:00
set_property ( DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT ${ TargetBin } )
2013-02-24 03:23:04 +00:00
else ( )
add_executable ( ${ TargetBin } ${ NativeAppSource } )
endif ( )
2015-04-03 21:50:51 +00:00
target_link_libraries ( ${ TargetBin } ${ LinkCommon } Common )
2012-11-18 16:00:27 +00:00
endif ( )
2013-02-24 03:23:04 +00:00
# installs
2017-03-13 22:45:25 +00:00
if ( NOT ANDROID )
2018-10-28 18:33:25 +00:00
file ( INSTALL ${ NativeAssets } DESTINATION assets )
file ( INSTALL assets/flash0 DESTINATION assets )
2017-03-13 22:45:25 +00:00
endif ( )
2013-03-24 06:18:00 +00:00
# packaging and code signing
if ( IOS )
2018-01-04 17:56:49 +00:00
set ( DEPLOYMENT_TARGET 8.0 )
2013-03-15 08:29:33 +00:00
file ( GLOB IOSAssets ios/assets/*.png )
2015-10-08 04:43:33 +00: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 01:27:54 +00:00
file ( INSTALL ${ IOSAssets } DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } /assets )
2015-10-08 04:43:33 +00:00
file ( GLOB IOSAssets ios/assets/Default-568h@*.png )
2016-10-11 01:27:54 +00:00
file ( INSTALL ${ IOSAssets } DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } )
2018-10-28 18:33:25 +00:00
if ( IOS_DEBUG )
2016-10-11 01:27:54 +00:00
file ( INSTALL pspautotests DESTINATION ${ CMAKE_CURRENT_BINARY_DIR } /assets )
2013-03-16 06:50:31 +00:00
endif ( )
2013-02-24 03:23:04 +00:00
set ( RSRC_XIB_FILES assets/Icon@2x.png )
2018-01-04 17:56:49 +00:00
set ( RSRC_XIB_FILES "Launch Screen.storyboard" )
2013-03-16 06:50:31 +00: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 10:34:27 +00: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 18:33:25 +00:00
set ( APP_DIR_NAME "$<TARGET_FILE_DIR:PPSSPP>" )
2021-01-17 10:34:27 +00:00
#endif()
2013-02-24 03:23:04 +00:00
add_custom_command ( TARGET PPSSPP POST_BUILD
2017-12-31 04:16:00 +00: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 17:06:03 +00: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 08:04:38 +00:00
)
2018-01-04 17:56:49 +00:00
set ( MACOSX_DEPLOYMENT_TARGET ${ DEPLOYMENT_TARGET } )
2013-03-15 08:29:33 +00:00
set_target_properties ( ${ TargetBin } PROPERTIES
2016-10-12 11:24:53 +00: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 17:56:49 +00: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 09:47:14 +00: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-08 05:46:14 +00:00
R E S O U R C E " M o l t e n V K / i O S / F r a m e w o r k s "
2018-01-04 17:56:49 +00: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 17:12:28 +00: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 18:33:25 +00: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 08:29:33 +00:00
)
2013-02-17 14:04:44 +00:00
endif ( )
2020-12-06 01:49:21 +00:00
2020-12-10 15:15:53 +00:00
if ( UNIX AND NOT ANDROID AND NOT APPLE )
2020-12-07 08:12:55 +00: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
)
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 "
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 } / p i x m a p s "
R E N A M E p p s s p p . s v g
)
endif ( )