mirror of
https://github.com/Ishan09811/pine.git
synced 2025-05-24 10:39:33 +00:00
* Introduce Jit32 and JitCore32 objects * Initialize JIT when launching 32bit executables * Introduce kernel objects for 32bit processes This commit introduces two new kernel thread types, `KNceThread` and `Jit32Thread`. `KNceThread`s behave like the previous kernel thread object by setting up thread state and jumping into guest code. `KJit32Thread`s need to run guest code on a `JitCore32` object, so they perform the necessary state setup and then they also setup the jit core for executing guest code. A loop was introduced because jit execution might return when halted, either for an SVC or for preemption. In those cases the thread needs to wait to be scheduled before executing again. The process object has also been updated to be able to create 32bit threads when running 32bit processes. Additionally NCE's ThreadContext has been removed from DeviceState, since a thread is not an NCE thread only anymore, and IPC code has been changed to retrieve the tls region from the thread object. * Introduce a preemption handler for scheduling with JIT Scheduler initialization has been delayed until process information is available, as it needs to differentiate between 32bit and 64bit processes. * Support initializing VMM for 32bit address spaces * Implement GetThreadContext3 SVC for 32bit processes * Introduce a thread local pointer to the current guest thread This also gives easier access to the current guest process structure via the thread structure, just like any kernel does for their internal structures. * Add a signal handler for JIT threads * Implement coprocessor 15 accesses * Implement exclusive memory writes and exclusive monitor * Enable JIT fastmem * Enable more JIT optimizations and log exceptions * Fix incorrect logging call in QueryMemory * Translate guest virtual addresses on direct accesses from SVCs * Perform TLS page address translation for direct accesses This allows the IPC code to work without modifications since `KThread::tlsRegion` now stores a host address that can be accessed directly. * Add Dynarmic as a submodule * Revert "Perform TLS page address translation for direct accesses" This reverts commit 2e25b3f7e4f0687b038fa949648c74e3393da006. * Revert "Translate guest virtual addresses on direct accesses from SVCs" This reverts commit 7bec4e0902e6dbb6f06a2efac53a1e2127f44068. * add an option to change cpu backend * Fix --------- Co-authored-by: lynxnb <niccolo.betto@gmail.com>
411 lines
22 KiB
CMake
411 lines
22 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(Skyline LANGUAGES C CXX ASM VERSION 0.3)
|
|
|
|
set(BUILD_TESTS OFF CACHE BOOL "Build Tests" FORCE)
|
|
set(BUILD_TESTING OFF CACHE BOOL "Build Testing" FORCE)
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
|
|
|
set(source_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -Wno-unused-command-line-argument -fwrapv")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -flto=full -fno-stack-protector -DNDEBUG")
|
|
|
|
# Build all libraries with -Ofast but with default debug data (-g) for debug and reldebug builds
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-Ofast")
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Ofast")
|
|
|
|
# Skyline's Boost fork
|
|
set(Boost_USE_STATIC_LIBS ON)
|
|
set(Boost_USE_MULTITHREADED ON)
|
|
add_subdirectory("libraries/boost")
|
|
|
|
# {fmt}
|
|
add_subdirectory("libraries/fmt")
|
|
|
|
# TzCode
|
|
add_subdirectory("libraries/tzcode")
|
|
target_compile_options(tzcode PRIVATE -Wno-everything)
|
|
|
|
# LZ4
|
|
set(LZ4_BUILD_CLI OFF CACHE BOOL "Build LZ4 CLI" FORCE)
|
|
set(LZ4_BUILD_LEGACY_LZ4C OFF CACHE BOOL "Build lz4c progam with legacy argument support" FORCE)
|
|
add_subdirectory("libraries/lz4/build/cmake")
|
|
include_directories(SYSTEM "libraries/lz4/lib")
|
|
|
|
# Vulkan + Vulkan-Hpp
|
|
add_compile_definitions(VK_USE_PLATFORM_ANDROID_KHR) # We want all the Android-specific structures to be defined
|
|
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
|
|
add_compile_definitions(VULKAN_HPP_NO_SETTERS)
|
|
add_compile_definitions(VULKAN_HPP_NO_SMART_HANDLE)
|
|
|
|
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
|
|
add_compile_definitions(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL=0) # We disable the dynamic loader tool so we can supply our own getInstanceProcAddress function from a custom driver
|
|
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
|
|
|
|
# Vulkan Memory Allocator
|
|
include_directories("libraries/vkma/include")
|
|
add_library(vkma STATIC libraries/vkma.cpp)
|
|
target_compile_options(vkma PRIVATE -Wno-everything)
|
|
|
|
# Frozen
|
|
include_directories(SYSTEM "libraries/frozen/include")
|
|
|
|
# MbedTLS
|
|
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")
|
|
include_directories(SYSTEM "libraries/mbedtls/include")
|
|
target_compile_options(mbedcrypto PRIVATE -Wno-everything)
|
|
|
|
# Opus
|
|
set(OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF CACHE BOOL "Install Opus CMake package config module" FORCE)
|
|
include_directories(SYSTEM "libraries/opus/include")
|
|
add_subdirectory("libraries/opus")
|
|
target_compile_definitions(opus PRIVATE OPUS_WILL_BE_SLOW=1) # libopus will warn when built without optimizations
|
|
|
|
# Cubeb
|
|
set(USE_OPENSL ON)
|
|
set(USE_SANITIZERS OFF)
|
|
set(USE_LAZY_LOAD_LIBS OFF)
|
|
set(USE_AAUDIO OFF)
|
|
set(BUNDLE_SPEEX ON)
|
|
set(BUILD_TOOLS OFF)
|
|
add_subdirectory("libraries/cubeb")
|
|
include_directories(SYSTEM "libraries/cubeb/include")
|
|
|
|
# Perfetto SDK
|
|
include_directories(SYSTEM "libraries/perfetto/sdk")
|
|
add_library(perfetto STATIC libraries/perfetto/sdk/perfetto.cc)
|
|
target_compile_options(perfetto PRIVATE -Wno-everything)
|
|
|
|
# C++ Range v3
|
|
add_subdirectory("libraries/range")
|
|
|
|
# Sirit
|
|
add_subdirectory("libraries/sirit")
|
|
|
|
# libadrenotools
|
|
add_subdirectory("libraries/adrenotools")
|
|
|
|
# Tessil Robin Map
|
|
add_subdirectory("libraries/robin-map")
|
|
|
|
# Renderdoc in-app API
|
|
include_directories("libraries/renderdoc")
|
|
|
|
# Thread Pool
|
|
include_directories("libraries/thread-pool")
|
|
|
|
# Build Skyline with full debugging data and -Og for debug builds
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -glldb -gdwarf-5 -fno-omit-frame-pointer")
|
|
# Build Skyline with full debugging data and some optimizations for reldebug builds, build speed is prioritised
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O1 -g3 -glldb -gdwarf-5 -fno-omit-frame-pointer -fno-stack-protector")
|
|
|
|
# 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} PRIVATE ${library})
|
|
endforeach (library)
|
|
endfunction(target_link_libraries_system)
|
|
|
|
# yuzu Shader Compiler
|
|
add_subdirectory("libraries/shader-compiler")
|
|
target_include_directories(shader_recompiler PUBLIC "libraries/shader-compiler/include")
|
|
target_link_libraries_system(shader_recompiler Boost::intrusive Boost::container range-v3)
|
|
|
|
# yuzu Audio Core
|
|
add_subdirectory("libraries/audio-core")
|
|
include_directories(SYSTEM "libraries/audio-core/include")
|
|
target_link_libraries_system(audio_core Boost::intrusive Boost::container range-v3)
|
|
|
|
# Dynarmic
|
|
set(DYNARMIC_FRONTENDS "A32" CACHE STRING "Enabled Dynarmic frontends" FORCE)
|
|
set(DYNARMIC_INSTALL OFF CACHE BOOL "Skip Dynarmic installation" FORCE)
|
|
set(DYNARMIC_USE_PRECOMPILED_HEADERS OFF CACHE BOOL "Use precompiled headers for Dynarmic" FORCE)
|
|
add_subdirectory("libraries/dynarmic")
|
|
|
|
# Skyline
|
|
add_library(skyline SHARED
|
|
${source_DIR}/driver_jni.cpp
|
|
${source_DIR}/emu_jni.cpp
|
|
${source_DIR}/loader_jni.cpp
|
|
${source_DIR}/skyline/common.cpp
|
|
${source_DIR}/skyline/common/exception.cpp
|
|
${source_DIR}/skyline/common/signal.cpp
|
|
${source_DIR}/skyline/common/spin_lock.cpp
|
|
${source_DIR}/skyline/common/uuid.cpp
|
|
${source_DIR}/skyline/common/trace.cpp
|
|
${source_DIR}/skyline/common/trap_manager.cpp
|
|
${source_DIR}/skyline/logger/logger.cpp
|
|
${source_DIR}/skyline/jit/coproc_15.cpp
|
|
${source_DIR}/skyline/jit/jit_core_32.cpp
|
|
${source_DIR}/skyline/jit/jit32.cpp
|
|
${source_DIR}/skyline/nce/guest.S
|
|
${source_DIR}/skyline/nce.cpp
|
|
${source_DIR}/skyline/jvm.cpp
|
|
${source_DIR}/skyline/os.cpp
|
|
${source_DIR}/skyline/kernel/memory.cpp
|
|
${source_DIR}/skyline/kernel/scheduler.cpp
|
|
${source_DIR}/skyline/kernel/ipc.cpp
|
|
${source_DIR}/skyline/kernel/svc.cpp
|
|
${source_DIR}/skyline/kernel/types/KProcess.cpp
|
|
${source_DIR}/skyline/kernel/types/KThread.cpp
|
|
${source_DIR}/skyline/kernel/types/KTransferMemory.cpp
|
|
${source_DIR}/skyline/kernel/types/KSharedMemory.cpp
|
|
${source_DIR}/skyline/kernel/types/KMemory.cpp
|
|
${source_DIR}/skyline/kernel/types/KSyncObject.cpp
|
|
${source_DIR}/skyline/audio.cpp
|
|
${source_DIR}/skyline/gpu.cpp
|
|
${source_DIR}/skyline/gpu/trait_manager.cpp
|
|
${source_DIR}/skyline/gpu/memory_manager.cpp
|
|
${source_DIR}/skyline/gpu/texture_manager.cpp
|
|
${source_DIR}/skyline/gpu/buffer_manager.cpp
|
|
${source_DIR}/skyline/gpu/command_scheduler.cpp
|
|
${source_DIR}/skyline/gpu/descriptor_allocator.cpp
|
|
${source_DIR}/skyline/gpu/texture/bc_decoder.cpp
|
|
${source_DIR}/skyline/gpu/texture/texture.cpp
|
|
${source_DIR}/skyline/gpu/texture/layout.cpp
|
|
${source_DIR}/skyline/gpu/buffer.cpp
|
|
${source_DIR}/skyline/gpu/megabuffer.cpp
|
|
${source_DIR}/skyline/gpu/presentation_engine.cpp
|
|
${source_DIR}/skyline/gpu/shader_manager.cpp
|
|
${source_DIR}/skyline/gpu/pipeline_cache_manager.cpp
|
|
${source_DIR}/skyline/gpu/graphics_pipeline_assembler.cpp
|
|
${source_DIR}/skyline/gpu/cache/renderpass_cache.cpp
|
|
${source_DIR}/skyline/gpu/cache/framebuffer_cache.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/fermi_2d.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_dma.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/inline2memory.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/active_state.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/pipeline_state.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/graphics_pipeline_state_accessor.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/packed_pipeline_state.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/constant_buffers.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/queries.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/maxwell_3d/maxwell_3d.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/kepler_compute/pipeline_manager.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/kepler_compute/pipeline_state.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/kepler_compute/kepler_compute.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/kepler_compute/constant_buffers.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/command_executor.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/command_nodes.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/conversion/quads.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/common.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/samplers.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/textures.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/shader_cache.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/pipeline_state_bundle.cpp
|
|
${source_DIR}/skyline/gpu/interconnect/common/file_pipeline_state_accessor.cpp
|
|
${source_DIR}/skyline/gpu/shaders/helper_shaders.cpp
|
|
${source_DIR}/skyline/soc/smmu.cpp
|
|
${source_DIR}/skyline/soc/host1x/syncpoint.cpp
|
|
${source_DIR}/skyline/soc/host1x/command_fifo.cpp
|
|
${source_DIR}/skyline/soc/host1x/classes/host1x.cpp
|
|
${source_DIR}/skyline/soc/host1x/classes/vic.cpp
|
|
${source_DIR}/skyline/soc/host1x/classes/nvdec.cpp
|
|
${source_DIR}/skyline/soc/gm20b/channel.cpp
|
|
${source_DIR}/skyline/soc/gm20b/gpfifo.cpp
|
|
${source_DIR}/skyline/soc/gm20b/gmmu.cpp
|
|
${source_DIR}/skyline/soc/gm20b/macro/macro_state.cpp
|
|
${source_DIR}/skyline/soc/gm20b/macro/macro_interpreter.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/engine.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/gpfifo.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/maxwell_3d.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/inline2memory.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/kepler_compute.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/maxwell_dma.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/maxwell/initialization.cpp
|
|
${source_DIR}/skyline/soc/gm20b/engines/fermi_2d.cpp
|
|
${source_DIR}/skyline/input.cpp
|
|
${source_DIR}/skyline/input/npad.cpp
|
|
${source_DIR}/skyline/input/npad_device.cpp
|
|
${source_DIR}/skyline/input/touch.cpp
|
|
${source_DIR}/skyline/crypto/aes_cipher.cpp
|
|
${source_DIR}/skyline/crypto/key_store.cpp
|
|
${source_DIR}/skyline/loader/loader.cpp
|
|
${source_DIR}/skyline/loader/nro.cpp
|
|
${source_DIR}/skyline/loader/nso.cpp
|
|
${source_DIR}/skyline/loader/nca.cpp
|
|
${source_DIR}/skyline/loader/xci.cpp
|
|
${source_DIR}/skyline/loader/nsp.cpp
|
|
${source_DIR}/skyline/hle/symbol_hooks.cpp
|
|
${source_DIR}/skyline/vfs/partition_filesystem.cpp
|
|
${source_DIR}/skyline/vfs/ctr_encrypted_backing.cpp
|
|
${source_DIR}/skyline/vfs/rom_filesystem.cpp
|
|
${source_DIR}/skyline/vfs/os_filesystem.cpp
|
|
${source_DIR}/skyline/vfs/os_backing.cpp
|
|
${source_DIR}/skyline/vfs/android_asset_filesystem.cpp
|
|
${source_DIR}/skyline/vfs/android_asset_backing.cpp
|
|
${source_DIR}/skyline/vfs/nacp.cpp
|
|
${source_DIR}/skyline/vfs/npdm.cpp
|
|
${source_DIR}/skyline/vfs/nca.cpp
|
|
${source_DIR}/skyline/vfs/ticket.cpp
|
|
${source_DIR}/skyline/services/serviceman.cpp
|
|
${source_DIR}/skyline/services/base_service.cpp
|
|
${source_DIR}/skyline/services/sm/IUserInterface.cpp
|
|
${source_DIR}/skyline/services/fatalsrv/IService.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioInManager.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioOutManager.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioOut.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioDevice.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioRendererManager.cpp
|
|
${source_DIR}/skyline/services/audio/IAudioRenderer.cpp
|
|
${source_DIR}/skyline/services/settings/ISettingsServer.cpp
|
|
${source_DIR}/skyline/services/settings/ISystemSettingsServer.cpp
|
|
${source_DIR}/skyline/services/apm/IManager.cpp
|
|
${source_DIR}/skyline/services/apm/ISession.cpp
|
|
${source_DIR}/skyline/services/am/IAllSystemAppletProxiesService.cpp
|
|
${source_DIR}/skyline/services/am/IApplicationProxyService.cpp
|
|
${source_DIR}/skyline/services/am/proxy/base_proxy.cpp
|
|
${source_DIR}/skyline/services/am/proxy/IApplicationProxy.cpp
|
|
${source_DIR}/skyline/services/am/proxy/ILibraryAppletProxy.cpp
|
|
${source_DIR}/skyline/services/am/proxy/IOverlayAppletProxy.cpp
|
|
${source_DIR}/skyline/services/am/proxy/ISystemAppletProxy.cpp
|
|
${source_DIR}/skyline/services/am/controller/IAppletCommonFunctions.cpp
|
|
${source_DIR}/skyline/services/am/controller/IApplicationFunctions.cpp
|
|
${source_DIR}/skyline/services/am/controller/IAudioController.cpp
|
|
${source_DIR}/skyline/services/am/controller/ICommonStateGetter.cpp
|
|
${source_DIR}/skyline/services/am/controller/IDebugFunctions.cpp
|
|
${source_DIR}/skyline/services/am/controller/IDisplayController.cpp
|
|
${source_DIR}/skyline/services/am/controller/ILibraryAppletCreator.cpp
|
|
${source_DIR}/skyline/services/am/controller/ISelfController.cpp
|
|
${source_DIR}/skyline/services/am/controller/IWindowController.cpp
|
|
${source_DIR}/skyline/services/am/storage/IStorage.cpp
|
|
${source_DIR}/skyline/services/am/storage/VectorIStorage.cpp
|
|
${source_DIR}/skyline/services/am/storage/TransferMemoryIStorage.cpp
|
|
${source_DIR}/skyline/services/am/storage/IStorageAccessor.cpp
|
|
${source_DIR}/skyline/services/am/applet/ILibraryAppletAccessor.cpp
|
|
${source_DIR}/skyline/services/am/applet/IApplet.cpp
|
|
${source_DIR}/skyline/services/bcat/IBcatService.cpp
|
|
${source_DIR}/skyline/services/bcat/IDeliveryCacheStorageService.cpp
|
|
${source_DIR}/skyline/services/bcat/IDeliveryCacheFileService.cpp
|
|
${source_DIR}/skyline/services/bcat/IDeliveryCacheDirectoryService.cpp
|
|
${source_DIR}/skyline/services/bcat/IServiceCreator.cpp
|
|
${source_DIR}/skyline/services/bcat/IDeliveryCacheProgressService.cpp
|
|
${source_DIR}/skyline/services/bt/IBluetoothUser.cpp
|
|
${source_DIR}/skyline/services/btm/IBtmUser.cpp
|
|
${source_DIR}/skyline/services/btm/IBtmUserCore.cpp
|
|
${source_DIR}/skyline/services/capsrv/IAlbumAccessorService.cpp
|
|
${source_DIR}/skyline/services/capsrv/ICaptureControllerService.cpp
|
|
${source_DIR}/skyline/services/capsrv/IAlbumApplicationService.cpp
|
|
${source_DIR}/skyline/services/capsrv/IScreenShotApplicationService.cpp
|
|
${source_DIR}/skyline/services/ro/IRoInterface.cpp
|
|
${source_DIR}/skyline/applet/applet_creator.cpp
|
|
${source_DIR}/skyline/applet/controller_applet.cpp
|
|
${source_DIR}/skyline/applet/error_applet.cpp
|
|
${source_DIR}/skyline/applet/player_select_applet.cpp
|
|
${source_DIR}/skyline/applet/web_applet.cpp
|
|
${source_DIR}/skyline/applet/swkbd/software_keyboard_applet.cpp
|
|
${source_DIR}/skyline/applet/swkbd/software_keyboard_config.cpp
|
|
${source_DIR}/skyline/services/codec/IHardwareOpusDecoder.cpp
|
|
${source_DIR}/skyline/services/codec/IHardwareOpusDecoderManager.cpp
|
|
${source_DIR}/skyline/services/hid/IHidServer.cpp
|
|
${source_DIR}/skyline/services/hid/IAppletResource.cpp
|
|
${source_DIR}/skyline/services/hid/IActiveVibrationDeviceList.cpp
|
|
${source_DIR}/skyline/services/irs/IIrSensorServer.cpp
|
|
${source_DIR}/skyline/services/timesrv/common.cpp
|
|
${source_DIR}/skyline/services/timesrv/core.cpp
|
|
${source_DIR}/skyline/services/timesrv/time_shared_memory.cpp
|
|
${source_DIR}/skyline/services/timesrv/timezone_manager.cpp
|
|
${source_DIR}/skyline/services/timesrv/time_manager_server.cpp
|
|
${source_DIR}/skyline/services/timesrv/IStaticService.cpp
|
|
${source_DIR}/skyline/services/timesrv/ISystemClock.cpp
|
|
${source_DIR}/skyline/services/timesrv/ISteadyClock.cpp
|
|
${source_DIR}/skyline/services/timesrv/ITimeZoneService.cpp
|
|
${source_DIR}/skyline/services/glue/IStaticService.cpp
|
|
${source_DIR}/skyline/services/glue/ITimeZoneService.cpp
|
|
${source_DIR}/skyline/services/glue/IWriterForSystem.cpp
|
|
${source_DIR}/skyline/services/glue/INotificationServicesForApplication.cpp
|
|
${source_DIR}/skyline/services/fssrv/IFileSystemProxy.cpp
|
|
${source_DIR}/skyline/services/fssrv/IFileSystem.cpp
|
|
${source_DIR}/skyline/services/fssrv/IFile.cpp
|
|
${source_DIR}/skyline/services/fssrv/IStorage.cpp
|
|
${source_DIR}/skyline/services/fssrv/IDirectory.cpp
|
|
${source_DIR}/skyline/services/fssrv/IMultiCommitManager.cpp
|
|
${source_DIR}/skyline/services/fssrv/ISaveDataInfoReader.cpp
|
|
${source_DIR}/skyline/services/nvdrv/INvDrvServices.cpp
|
|
${source_DIR}/skyline/services/nvdrv/driver.cpp
|
|
${source_DIR}/skyline/services/nvdrv/core/nvmap.cpp
|
|
${source_DIR}/skyline/services/nvdrv/core/syncpoint_manager.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvdevice.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvmap.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvhost/as_gpu.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvhost/ctrl.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvhost/ctrl_gpu.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvhost/gpu_channel.cpp
|
|
${source_DIR}/skyline/services/nvdrv/devices/nvhost/host1x_channel.cpp
|
|
${source_DIR}/skyline/services/hosbinder/parcel.cpp
|
|
${source_DIR}/skyline/services/hosbinder/IHOSBinderDriver.cpp
|
|
${source_DIR}/skyline/services/hosbinder/GraphicBufferProducer.cpp
|
|
${source_DIR}/skyline/services/visrv/IDisplayService.cpp
|
|
${source_DIR}/skyline/services/visrv/IApplicationDisplayService.cpp
|
|
${source_DIR}/skyline/services/visrv/IManagerDisplayService.cpp
|
|
${source_DIR}/skyline/services/visrv/IRootService.cpp
|
|
${source_DIR}/skyline/services/visrv/ISystemDisplayService.cpp
|
|
${source_DIR}/skyline/services/pl/IPlatformServiceManager.cpp
|
|
${source_DIR}/skyline/services/aocsrv/IAddOnContentManager.cpp
|
|
${source_DIR}/skyline/services/aocsrv/IPurchaseEventManager.cpp
|
|
${source_DIR}/skyline/services/pctl/IParentalControlServiceFactory.cpp
|
|
${source_DIR}/skyline/services/pctl/IParentalControlService.cpp
|
|
${source_DIR}/skyline/services/lbl/ILblController.cpp
|
|
${source_DIR}/skyline/services/lm/ILogService.cpp
|
|
${source_DIR}/skyline/services/lm/ILogger.cpp
|
|
${source_DIR}/skyline/services/ldn/IUserServiceCreator.cpp
|
|
${source_DIR}/skyline/services/ldn/IUserLocalCommunicationService.cpp
|
|
${source_DIR}/skyline/services/account/IAccountServiceForApplication.cpp
|
|
${source_DIR}/skyline/services/account/IManagerForApplication.cpp
|
|
${source_DIR}/skyline/services/account/IProfile.cpp
|
|
${source_DIR}/skyline/services/account/IAsyncContext.cpp
|
|
${source_DIR}/skyline/services/account/IAuthorizationRequest.cpp
|
|
${source_DIR}/skyline/services/friends/IServiceCreator.cpp
|
|
${source_DIR}/skyline/services/friends/IFriendService.cpp
|
|
${source_DIR}/skyline/services/friends/INotificationService.cpp
|
|
${source_DIR}/skyline/services/nfp/IUserManager.cpp
|
|
${source_DIR}/skyline/services/nfp/IUser.cpp
|
|
${source_DIR}/skyline/services/nifm/IStaticService.cpp
|
|
${source_DIR}/skyline/services/nifm/IGeneralService.cpp
|
|
${source_DIR}/skyline/services/nifm/IScanRequest.cpp
|
|
${source_DIR}/skyline/services/nifm/IRequest.cpp
|
|
${source_DIR}/skyline/services/nim/IShopServiceAccessor.cpp
|
|
${source_DIR}/skyline/services/nim/IShopServiceAccessServer.cpp
|
|
${source_DIR}/skyline/services/nim/IShopServiceAccessServerInterface.cpp
|
|
${source_DIR}/skyline/services/nim/IShopServiceAsync.cpp
|
|
${source_DIR}/skyline/services/socket/bsd/IClient.cpp
|
|
${source_DIR}/skyline/services/socket/nsd/IManager.cpp
|
|
${source_DIR}/skyline/services/socket/sfdnsres/IResolver.cpp
|
|
${source_DIR}/skyline/services/spl/IRandomInterface.cpp
|
|
${source_DIR}/skyline/services/ssl/ISslService.cpp
|
|
${source_DIR}/skyline/services/ssl/ISslContext.cpp
|
|
${source_DIR}/skyline/services/prepo/IPrepoService.cpp
|
|
${source_DIR}/skyline/services/mmnv/IRequest.cpp
|
|
${source_DIR}/skyline/services/mii/IStaticService.cpp
|
|
${source_DIR}/skyline/services/mii/IDatabaseService.cpp
|
|
${source_DIR}/skyline/services/olsc/IOlscServiceForApplication.cpp
|
|
${source_DIR}/skyline/services/clkrst/IClkrstManager.cpp
|
|
${source_DIR}/skyline/services/clkrst/IClkrstSession.cpp
|
|
${source_DIR}/skyline/services/psm/IPsmServer.cpp
|
|
${source_DIR}/skyline/services/psm/IPsmSession.cpp
|
|
${source_DIR}/skyline/services/ts/IMeasurementServer.cpp
|
|
${source_DIR}/skyline/services/ts/ISession.cpp
|
|
${source_DIR}/skyline/services/ntc/IEnsureNetworkClockAvailabilityService.cpp
|
|
)
|
|
target_include_directories(skyline PRIVATE ${source_DIR}/skyline)
|
|
# target_precompile_headers(skyline PRIVATE ${source_DIR}/skyline/common.h) # PCH will currently break Intellisense
|
|
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 -fsigned-bitfields)
|
|
|
|
target_link_libraries(skyline PRIVATE shader_recompiler audio_core dynarmic)
|
|
target_link_libraries_system(skyline android perfetto fmt lz4_static tzcode vkma mbedcrypto opus Boost::intrusive Boost::container Boost::preprocessor Boost::regex range-v3 adrenotools tsl::robin_map)
|