2021-01-22 06:02:01 +03:00
cmake_minimum_required ( VERSION 3.16 )
2021-10-31 00:43:41 +03:00
project ( Skyline LANGUAGES C CXX ASM VERSION 0.3 )
2019-06-29 16:35:24 +03:00
2021-01-22 06:02:01 +03:00
set ( BUILD_TESTS OFF CACHE BOOL "Build Tests" FORCE )
set ( BUILD_TESTING OFF CACHE BOOL "Build Testing" FORCE )
2020-03-29 22:07:11 +03:00
set ( BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE )
2021-01-22 06:02:01 +03:00
set ( CMAKE_CXX_STANDARD 20 )
2019-07-24 23:19:43 +03:00
set ( CMAKE_CXX_STANDARD_REQUIRED TRUE )
2020-03-29 22:07:11 +03:00
Framebuffer and NativeActivity
What was added:
* Framebuffer
* NativeActivity
* NV Services
* IOCTL Handler
* NV Devices:
* * /dev/nvmap - 0xC0080101, 0xC0080103, 0xC0200104, 0xC0180105, 0xC00C0109, 0xC008010E
* * /dev/nvhost-as-gpu
* * /dev/nvhost-channel - 0x40044801, 0xC0104809, 0xC010480B, 0xC018480C, 0x4004480D, 0xC020481A, 0x40084714
* * /dev/nvhost-ctrl
* * /dev/nvhost-ctrl-gpu - 0x80044701, 0x80284702, 0xC0184706, 0xC0B04705, 0x80084714
* SVCs:
* * SetMemoryAttribute
* * CreateTransferMemory
* * ResetSignal
* * GetSystemTick
* Addition of Compact Logger
What was fixed:
* SVCs:
* * SetHeapSize
* * SetMemoryAttribute
* * QueryMemory
* A release build would not set CMAKE_BUILD_TYPE to "RELEASE"
* The logger code was simplified
2019-11-13 23:09:31 +03:00
set ( source_DIR ${ CMAKE_SOURCE_DIR } /src/main/cpp )
2021-10-31 00:43:41 +03:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -Wno-unused-command-line-argument" )
set ( CMAKE_CXX_FLAGS_RELEASE "-Ofast -flto=full -fno-stack-protector -DNDEBUG" )
2021-10-31 00:46:21 +03:00
# Build all libraries with -Ofast but with default debug data (-g) for debug builds
set ( CMAKE_CXX_FLAGS_DEBUG "-Ofast" )
2021-10-31 00:43:41 +03:00
# libcxx
set ( ANDROID_STL "none" )
set ( LIBCXX_INCLUDE_TESTS OFF )
set ( LIBCXX_INCLUDE_BENCHMARKS OFF )
set ( LIBCXX_INCLUDE_DOCS OFF )
set ( LIBCXX_ENABLE_SHARED FALSE )
set ( LIBCXX_ENABLE_ASSERTIONS FALSE )
set ( LIBCXX_STANDALONE_BUILD FALSE )
add_subdirectory ( "libraries/llvm/libcxx" )
link_libraries ( cxx_static )
get_target_property ( LIBCXX_INCLUDE_COMPILE_OPTION cxx-headers INTERFACE_COMPILE_OPTIONS )
string ( REGEX REPLACE "-I" "" LIBCXX_INCLUDE_DIRECTORY_LIST "${LIBCXX_INCLUDE_COMPILE_OPTION}" )
list ( GET LIBCXX_INCLUDE_DIRECTORY_LIST 1 LIBCXX_TARGET_INCLUDE_DIRECTORY ) # We just want the target include directory
set_target_properties ( cxx-headers PROPERTIES INTERFACE_COMPILE_OPTIONS -isystem ${ LIBCXX_TARGET_INCLUDE_DIRECTORY } )
# libcxxabi
set ( LIBCXXABI_INCLUDE_TESTS OFF )
set ( LIBCXXABI_ENABLE_SHARED FALSE )
set ( LIBCXXABI_STANDALONE_BUILD FALSE )
set ( LIBCXXABI_LIBCXX_INCLUDES "${LIBCXX_TARGET_INCLUDE_DIRECTORY}" CACHE STRING "" FORCE )
add_subdirectory ( "libraries/llvm/libcxxabi" )
link_libraries ( cxxabi_static )
Framebuffer and NativeActivity
What was added:
* Framebuffer
* NativeActivity
* NV Services
* IOCTL Handler
* NV Devices:
* * /dev/nvmap - 0xC0080101, 0xC0080103, 0xC0200104, 0xC0180105, 0xC00C0109, 0xC008010E
* * /dev/nvhost-as-gpu
* * /dev/nvhost-channel - 0x40044801, 0xC0104809, 0xC010480B, 0xC018480C, 0x4004480D, 0xC020481A, 0x40084714
* * /dev/nvhost-ctrl
* * /dev/nvhost-ctrl-gpu - 0x80044701, 0x80284702, 0xC0184706, 0xC0B04705, 0x80084714
* SVCs:
* * SetMemoryAttribute
* * CreateTransferMemory
* * ResetSignal
* * GetSystemTick
* Addition of Compact Logger
What was fixed:
* SVCs:
* * SetHeapSize
* * SetMemoryAttribute
* * QueryMemory
* A release build would not set CMAKE_BUILD_TYPE to "RELEASE"
* The logger code was simplified
2019-11-13 23:09:31 +03:00
2021-05-22 19:31:22 +03:00
# {fmt}
2019-07-24 23:19:43 +03:00
add_subdirectory ( "libraries/fmt" )
2021-03-21 18:04:59 +03:00
2021-05-22 19:31:22 +03:00
# TzCode
2021-03-03 23:40:16 +03:00
add_subdirectory ( "libraries/tzcode" )
2021-03-21 18:04:59 +03:00
target_compile_options ( tzcode PRIVATE -Wno-everything )
2021-01-22 06:02:01 +03:00
2021-05-22 19:31:22 +03:00
# Oboe
2020-01-02 23:19:34 +03:00
add_subdirectory ( "libraries/oboe" )
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/oboe/include" )
2021-01-22 06:02:01 +03:00
2021-05-22 19:31:22 +03:00
# LZ4
2021-01-22 06:02:01 +03:00
set ( LZ4_BUILD_CLI OFF CACHE BOOL "Build LZ4 CLI" FORCE )
2021-03-26 21:12:19 +03:00
set ( LZ4_BUILD_LEGACY_LZ4C OFF CACHE BOOL "Build lz4c progam with legacy argument support" FORCE )
2021-01-22 06:02:01 +03:00
add_subdirectory ( "libraries/lz4/build/cmake" )
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/lz4/lib" )
2021-01-22 06:02:01 +03:00
2021-04-03 23:58:49 +03:00
# Vulkan + Vulkan-Hpp
2021-03-28 17:35:13 +03:00
add_compile_definitions ( VK_USE_PLATFORM_ANDROID_KHR ) # We want all the Android-specific structures to be defined
2021-03-26 21:12:19 +03:00
add_compile_definitions ( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) # libcxx doesn't implement operator<=> for std::array which breaks this
add_compile_definitions ( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) # We want to use designated initializers in Vulkan-Hpp
2021-03-28 00:17:35 +03:00
add_compile_definitions ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1 ) # We use the dynamic loader rather than the static one to avoid an additional level of indirection
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/vkhpp" )
include_directories ( SYSTEM "libraries/vkhpp/Vulkan-Headers/include" ) # We use base Vulkan headers from this to ensure version parity with Vulkan-Hpp
2021-03-26 21:12:19 +03:00
2021-05-22 19:31:22 +03:00
# Vulkan Memory Allocator
include_directories ( "libraries/vkma/include" )
add_library ( vkma STATIC libraries/vkma.cpp )
target_compile_options ( vkma PRIVATE -Wno-everything )
# PugiXML (Header-only mode)
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/pugixml/src" )
2021-05-22 19:31:22 +03:00
# Frozen
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/frozen/include" )
2019-07-24 23:19:43 +03:00
2021-05-22 19:31:22 +03:00
# MbedTLS
2021-07-11 21:17:59 +03:00
set ( ENABLE_TESTING OFF CACHE BOOL "Build mbed TLS tests." FORCE )
set ( ENABLE_PROGRAMS OFF CACHE BOOL "Build mbed TLS programs." FORCE )
set ( UNSAFE_BUILD ON CACHE BOOL "Allow unsafe builds. These builds ARE NOT SECURE." FORCE )
add_subdirectory ( "libraries/mbedtls" )
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/mbedtls/include" )
2021-10-31 01:03:27 +03:00
target_compile_options ( mbedcrypto PRIVATE -Wno-everything )
2020-09-14 16:53:40 +03:00
2021-07-14 17:28:02 +03:00
# Opus
2021-10-31 00:43:41 +03:00
set ( OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF CACHE BOOL "Install Opus CMake package config module" FORCE )
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/opus/include" )
2021-07-14 17:28:02 +03:00
add_subdirectory ( "libraries/opus" )
2021-10-31 00:43:41 +03:00
target_compile_definitions ( opus PRIVATE OPUS_WILL_BE_SLOW=1 ) # libopus will warn when built without optimizations
2021-07-14 17:28:02 +03:00
2021-03-20 19:52:08 +03:00
# Perfetto SDK
2021-10-26 16:35:16 +03:00
include_directories ( SYSTEM "libraries/perfetto/sdk" )
2021-03-11 21:41:12 +03:00
add_library ( perfetto STATIC libraries/perfetto/sdk/perfetto.cc )
2021-03-20 19:52:08 +03:00
target_compile_options ( perfetto PRIVATE -Wno-everything )
2021-03-11 21:41:12 +03:00
2021-08-20 22:57:22 +03:00
# Boost
set ( Boost_USE_STATIC_LIBS ON )
set ( Boost_USE_MULTITHREADED ON )
add_subdirectory ( "libraries/boost" )
2019-06-29 19:13:36 +03:00
2021-10-31 00:46:21 +03:00
# Build Skyline with full debugging data and -Og for debug builds
set ( CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -glldb -gdwarf-5" )
2021-08-20 22:57:22 +03:00
# Skyline
2019-09-24 23:54:27 +03:00
add_library ( skyline SHARED
2020-06-19 23:18:33 +03:00
$ { s o u r c e _ D I R } / e m u _ j n i . c p p
$ { s o u r c e _ D I R } / l o a d e r _ j n i . c p p
2019-09-24 23:54:27 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / c o m m o n . c p p
2020-11-03 12:44:09 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / c o m m o n / s e t t i n g s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / c o m m o n / s i g n a l . c p p
2021-02-13 15:53:17 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / c o m m o n / u u i d . c p p
2021-03-20 19:52:08 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / c o m m o n / t r a c e . c p p
2020-01-07 05:36:08 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / n c e / g u e s t . S
2019-09-24 23:54:27 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / n c e . c p p
2019-12-05 18:35:34 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / j v m . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / o s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / m e m o r y . c p p
2020-12-05 20:41:52 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / s c h e d u l e r . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / i p c . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / s v c . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / t y p e s / K P r o c e s s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / t y p e s / K T h r e a d . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / t y p e s / K S h a r e d M e m o r y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / t y p e s / K P r i v a t e M e m o r y . c p p
2021-01-11 22:17:06 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / k e r n e l / t y p e s / K S y n c O b j e c t . c p p
2020-04-18 00:23:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / a u d i o . c p p
$ { s o u r c e _ D I R } / s k y l i n e / a u d i o / t r a c k . c p p
$ { s o u r c e _ D I R } / s k y l i n e / a u d i o / r e s a m p l e r . c p p
2020-07-07 17:35:34 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / a u d i o / a d p c m _ d e c o d e r . c p p
2021-03-28 00:17:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u . c p p
2021-05-22 19:31:22 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / m e m o r y _ m a n a g e r . c p p
2021-08-20 23:17:13 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / t e x t u r e _ m a n a g e r . c p p
2021-05-22 19:31:22 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / c o m m a n d _ s c h e d u l e r . c p p
2021-05-22 20:46:28 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / t e x t u r e / t e x t u r e . c p p
2020-10-28 19:00:39 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / p r e s e n t a t i o n _ e n g i n e . c p p
2021-09-14 19:00:12 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / i n t e r c o n n e c t / c o m m a n d _ e x e c u t o r . c p p
2021-10-22 12:59:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / g p u / i n t e r c o n n e c t / c o m m a n d _ n o d e s . c p p
2021-10-26 00:54:03 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / s m m u . c p p
2021-03-24 23:09:21 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / h o s t 1 x / s y n c p o i n t . c p p
2021-10-30 20:57:53 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / h o s t 1 x / c o m m a n d _ f i f o . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s o c / h o s t 1 x / c l a s s e s / h o s t 1 x . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s o c / h o s t 1 x / c l a s s e s / v i c . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s o c / h o s t 1 x / c l a s s e s / n v d e c . c p p
2021-10-08 22:25:21 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / c h a n n e l . c p p
2021-03-24 23:09:21 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / g p f i f o . c p p
2021-10-08 22:25:21 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / g m m u . c p p
2021-10-11 22:08:42 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / e n g i n e s / g p f i f o . c p p
2021-03-24 23:09:21 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / e n g i n e s / m a x w e l l _ 3 d . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s o c / g m 2 0 b / e n g i n e s / m a x w e l l / m a c r o _ i n t e r p r e t e r . c p p
2020-04-26 02:34:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / i n p u t / n p a d . c p p
2020-05-01 00:53:45 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / i n p u t / n p a d _ d e v i c e . c p p
2020-09-07 19:39:05 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / i n p u t / t o u c h . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / c r y p t o / a e s _ c i p h e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / c r y p t o / k e y _ s t o r e . c p p
2020-06-25 18:29:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / l o a d e r . c p p
2019-09-24 23:54:27 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / n r o . c p p
2020-06-25 18:51:05 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / n s o . c p p
2020-06-29 21:23:33 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / n c a . c p p
2021-02-28 01:11:09 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / x c i . c p p
2020-06-29 23:19:32 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / l o a d e r / n s p . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / p a r t i t i o n _ f i l e s y s t e m . c p p
$ { s o u r c e _ D I R } / s k y l i n e / v f s / c t r _ e n c r y p t e d _ b a c k i n g . c p p
$ { s o u r c e _ D I R } / s k y l i n e / v f s / r o m _ f i l e s y s t e m . c p p
2021-03-03 23:35:24 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / o s _ f i l e s y s t e m . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / o s _ b a c k i n g . c p p
2021-03-03 23:35:24 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / a n d r o i d _ a s s e t _ f i l e s y s t e m . c p p
$ { s o u r c e _ D I R } / s k y l i n e / v f s / a n d r o i d _ a s s e t _ b a c k i n g . c p p
2020-10-21 20:09:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / n a c p . c p p
$ { s o u r c e _ D I R } / s k y l i n e / v f s / n p d m . c p p
$ { s o u r c e _ D I R } / s k y l i n e / v f s / n c a . c p p
2021-02-23 14:33:42 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / v f s / t i c k e t . c p p
Framebuffer and NativeActivity
What was added:
* Framebuffer
* NativeActivity
* NV Services
* IOCTL Handler
* NV Devices:
* * /dev/nvmap - 0xC0080101, 0xC0080103, 0xC0200104, 0xC0180105, 0xC00C0109, 0xC008010E
* * /dev/nvhost-as-gpu
* * /dev/nvhost-channel - 0x40044801, 0xC0104809, 0xC010480B, 0xC018480C, 0x4004480D, 0xC020481A, 0x40084714
* * /dev/nvhost-ctrl
* * /dev/nvhost-ctrl-gpu - 0x80044701, 0x80284702, 0xC0184706, 0xC0B04705, 0x80084714
* SVCs:
* * SetMemoryAttribute
* * CreateTransferMemory
* * ResetSignal
* * GetSystemTick
* Addition of Compact Logger
What was fixed:
* SVCs:
* * SetHeapSize
* * SetMemoryAttribute
* * QueryMemory
* A release build would not set CMAKE_BUILD_TYPE to "RELEASE"
* The logger code was simplified
2019-11-13 23:09:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s e r v i c e m a n . c p p
2020-09-21 13:04:26 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / b a s e _ s e r v i c e . c p p
2020-02-16 22:11:43 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s m / I U s e r I n t e r f a c e . c p p
2020-02-17 17:50:53 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f a t a l s r v / I S e r v i c e . c p p
2020-02-17 22:11:59 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o O u t M a n a g e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o O u t . c p p
2020-07-09 16:48:14 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o D e v i c e . c p p
2020-02-17 22:11:59 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o R e n d e r e r M a n a g e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o R e n d e r e r / I A u d i o R e n d e r e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o R e n d e r e r / v o i c e . c p p
2020-03-26 17:20:08 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a u d i o / I A u d i o R e n d e r e r / m e m o r y _ p o o l . c p p
2020-07-04 23:22:35 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s e t t i n g s / I S e t t i n g s S e r v e r . c p p
2020-02-16 22:25:18 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s e t t i n g s / I S y s t e m S e t t i n g s S e r v e r . c p p
2020-02-18 14:41:22 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a p m / I M a n a g e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a p m / I S e s s i o n . c p p
2020-02-19 23:35:54 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / I A l l S y s t e m A p p l e t P r o x i e s S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / I A p p l i c a t i o n P r o x y S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / p r o x y / b a s e _ p r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / p r o x y / I A p p l i c a t i o n P r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / p r o x y / I L i b r a r y A p p l e t P r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / p r o x y / I O v e r l a y A p p l e t P r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / p r o x y / I S y s t e m A p p l e t P r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I A p p l e t C o m m o n F u n c t i o n s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I A p p l i c a t i o n F u n c t i o n s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I A u d i o C o n t r o l l e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I C o m m o n S t a t e G e t t e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I D e b u g F u n c t i o n s . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I D i s p l a y C o n t r o l l e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I L i b r a r y A p p l e t C r e a t o r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I S e l f C o n t r o l l e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / c o n t r o l l e r / I W i n d o w C o n t r o l l e r . c p p
2020-07-04 22:15:33 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / s t o r a g e / I S t o r a g e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / s t o r a g e / I S t o r a g e A c c e s s o r . c p p
2020-07-07 17:58:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a m / a p p l e t / I L i b r a r y A p p l e t A c c e s s o r . c p p
2021-07-14 17:39:17 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / c o d e c / I H a r d w a r e O p u s D e c o d e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / c o d e c / I H a r d w a r e O p u s D e c o d e r M a n a g e r . c p p
2020-02-16 22:42:32 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h i d / I H i d S e r v e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h i d / I A p p l e t R e s o u r c e . c p p
2020-09-05 02:06:07 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h i d / I A c t i v e V i b r a t i o n D e v i c e L i s t . c p p
2021-02-20 17:27:50 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / c o m m o n . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / c o r e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / t i m e _ s h a r e d _ m e m o r y . c p p
2021-03-03 23:42:51 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / t i m e z o n e _ m a n a g e r . c p p
2021-02-20 17:27:50 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / t i m e _ m a n a g e r _ s e r v e r . c p p
2020-02-16 21:42:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / I S t a t i c S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / I S y s t e m C l o c k . c p p
2020-07-09 21:36:28 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / I S t e a d y C l o c k . c p p
2020-02-16 21:42:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / t i m e s r v / I T i m e Z o n e S e r v i c e . c p p
2021-02-20 17:27:50 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / g l u e / I S t a t i c S e r v i c e . c p p
2021-03-03 23:42:51 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / g l u e / I T i m e Z o n e S e r v i c e . c p p
2020-02-16 23:05:22 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f s s r v / I F i l e S y s t e m P r o x y . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f s s r v / I F i l e S y s t e m . c p p
2020-08-08 22:38:51 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f s s r v / I F i l e . c p p
2020-06-23 21:49:06 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f s s r v / I S t o r a g e . c p p
2020-11-03 12:40:42 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f s s r v / I D i r e c t o r y . c p p
2020-03-24 23:17:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / I N v D r v S e r v i c e s . c p p
2020-09-14 17:13:36 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d r i v e r . c p p
2021-07-17 19:48:59 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / c o r e / n v m a p . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / c o r e / s y n c p o i n t _ m a n a g e r . c p p
2020-09-17 23:38:23 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v d e v i c e . c p p
2020-03-24 23:17:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v m a p . c p p
2021-07-17 19:48:59 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v h o s t / a s _ g p u . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v h o s t / c t r l . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v h o s t / c t r l _ g p u . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v h o s t / g p u _ c h a n n e l . c p p
2021-10-24 18:16:23 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n v d r v / d e v i c e s / n v h o s t / h o s t 1 x _ c h a n n e l . c p p
2021-07-04 02:51:19 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h o s b i n d e r / p a r c e l . c p p
2020-03-24 23:17:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h o s b i n d e r / I H O S B i n d e r D r i v e r . c p p
2020-09-14 17:13:36 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / h o s b i n d e r / G r a p h i c B u f f e r P r o d u c e r . c p p
2020-03-24 23:17:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / v i s r v / I D i s p l a y S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / v i s r v / I A p p l i c a t i o n D i s p l a y S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / v i s r v / I M a n a g e r D i s p l a y S e r v i c e . c p p
2021-07-04 02:51:19 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / v i s r v / I R o o t S e r v i c e . c p p
2020-03-24 23:17:31 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / v i s r v / I S y s t e m D i s p l a y S e r v i c e . c p p
2020-07-04 23:52:07 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / p l / I P l a t f o r m S e r v i c e M a n a g e r . c p p
2020-07-04 22:58:16 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a o c s r v / I A d d O n C o n t e n t M a n a g e r . c p p
2020-07-04 23:06:58 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / p c t l / I P a r e n t a l C o n t r o l S e r v i c e F a c t o r y . c p p
2020-07-08 13:59:02 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / p c t l / I P a r e n t a l C o n t r o l S e r v i c e . c p p
2020-07-04 21:56:33 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / l m / I L o g S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / l m / I L o g g e r . c p p
2020-07-04 22:35:07 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a c c o u n t / I A c c o u n t S e r v i c e F o r A p p l i c a t i o n . c p p
2020-07-09 16:16:51 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a c c o u n t / I M a n a g e r F o r A p p l i c a t i o n . c p p
2020-07-19 23:35:50 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / a c c o u n t / I P r o f i l e . c p p
2020-07-09 16:22:49 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f r i e n d s / I S e r v i c e C r e a t o r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f r i e n d s / I F r i e n d S e r v i c e . c p p
2020-08-09 17:02:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / f r i e n d s / I N o t i f i c a t i o n S e r v i c e . c p p
2020-07-09 16:28:26 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n f p / I U s e r M a n a g e r . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n f p / I U s e r . c p p
2020-07-09 16:31:04 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n i f m / I S t a t i c S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n i f m / I G e n e r a l S e r v i c e . c p p
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / n i f m / I R e q u e s t . c p p
2020-07-09 16:35:51 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s o c k e t / b s d / I C l i e n t . c p p
2021-08-16 11:10:07 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s p l / I R a n d o m I n t e r f a c e . c p p
2020-07-09 16:38:18 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s s l / I S s l S e r v i c e . c p p
2020-08-09 17:02:38 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / s s l / I S s l C o n t e x t . c p p
2020-07-09 16:41:30 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / p r e p o / I P r e p o S e r v i c e . c p p
2021-05-30 20:08:18 +03:00
$ { s o u r c e _ D I R } / s k y l i n e / s e r v i c e s / m m n v / I R e q u e s t . c p p
2019-07-24 23:19:43 +03:00
)
2021-08-20 22:57:22 +03:00
target_include_directories ( skyline PRIVATE ${ source_DIR } /skyline )
2021-02-08 07:17:17 +03:00
# target_precompile_headers(skyline PRIVATE ${source_DIR}/skyline/common.h) # PCH will currently break Intellisense
2021-10-24 22:45:29 +03:00
target_compile_options ( skyline PRIVATE -Wall -Wno-unknown-attributes -Wno-c++20-extensions -Wno-c++17-extensions -Wno-c99-designator -Wno-reorder -Wno-missing-braces -Wno-unused-variable -Wno-unused-private-field -Wno-dangling-else -Wconversion )
2021-10-26 16:35:16 +03:00
# Include headers from libraries as system headers to silence warnings from them
function ( target_link_libraries_system target )
set ( libraries ${ ARGN } )
foreach ( library ${ libraries } )
if ( TARGET ${ library } )
get_target_property ( library_include_directories ${ library } INTERFACE_INCLUDE_DIRECTORIES )
if ( NOT "${library_include_directories}" STREQUAL "library_include_directories-NOTFOUND" )
target_include_directories ( ${ target } SYSTEM PRIVATE ${ library_include_directories } )
endif ( )
endif ( )
target_link_libraries ( ${ target } ${ library } )
endforeach ( library )
endfunction ( target_link_libraries_system )
target_link_libraries_system ( skyline android perfetto fmt lz4_static tzcode oboe vkma mbedcrypto opus Boost::container )