mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-28 09:05:29 +03:00
00cdc1fd6f
This commit does a major refactor of the memory implementation, it forms a memory map which is far cleaner than trying to access it through a handle table lookup. In addition, it creates a common interface for all memory kernel objects: KMemory from which all other kernel memory objects inherit. This allows doing resizing, permission change, etc without casting to the base memory type.
64 lines
2.6 KiB
CMake
64 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
project(Skyline VERSION 0.3)
|
|
|
|
set(BUILD_TESTS OFF)
|
|
set(BUILD_TESTING OFF)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
|
set(source_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -flto=full -Wno-unused-command-line-argument")
|
|
enable_language(ASM)
|
|
if (uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
|
|
add_compile_definitions(NDEBUG)
|
|
endif()
|
|
|
|
set(CMAKE_POLICY_DEFAULT_CMP0048 OLD)
|
|
add_subdirectory("libraries/tinyxml2")
|
|
add_subdirectory("libraries/fmt")
|
|
set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
|
|
|
|
include_directories(${source_DIR}/skyline)
|
|
|
|
add_library(skyline SHARED
|
|
${source_DIR}/main.cpp
|
|
${source_DIR}/skyline/common.cpp
|
|
${source_DIR}/skyline/nce/guest.S
|
|
${source_DIR}/skyline/nce/guest.cpp
|
|
${source_DIR}/skyline/nce.cpp
|
|
${source_DIR}/skyline/jvm.cpp
|
|
${source_DIR}/skyline/gpu.cpp
|
|
${source_DIR}/skyline/gpu/display.cpp
|
|
${source_DIR}/skyline/gpu/parcel.cpp
|
|
${source_DIR}/skyline/gpu/devices/nvhost_ctrl.cpp
|
|
${source_DIR}/skyline/gpu/devices/nvhost_ctrl_gpu.cpp
|
|
${source_DIR}/skyline/gpu/devices/nvhost_channel.cpp
|
|
${source_DIR}/skyline/gpu/devices/nvmap.cpp
|
|
${source_DIR}/skyline/gpu/devices/nvhost_as_gpu.cpp
|
|
${source_DIR}/skyline/os.cpp
|
|
${source_DIR}/skyline/loader/nro.cpp
|
|
${source_DIR}/skyline/kernel/memory.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/KSharedMemory.cpp
|
|
${source_DIR}/skyline/kernel/types/KTransferMemory.cpp
|
|
${source_DIR}/skyline/kernel/types/KPrivateMemory.cpp
|
|
${source_DIR}/skyline/services/serviceman.cpp
|
|
${source_DIR}/skyline/services/sm/sm.cpp
|
|
${source_DIR}/skyline/services/fatal/fatal.cpp
|
|
${source_DIR}/skyline/services/set/sys.cpp
|
|
${source_DIR}/skyline/services/apm/apm.cpp
|
|
${source_DIR}/skyline/services/am/applet.cpp
|
|
${source_DIR}/skyline/services/am/appletController.cpp
|
|
${source_DIR}/skyline/services/hid/hid.cpp
|
|
${source_DIR}/skyline/services/time/time.cpp
|
|
${source_DIR}/skyline/services/fs/fs.cpp
|
|
${source_DIR}/skyline/services/nvdrv/nvdrv.cpp
|
|
${source_DIR}/skyline/services/nvnflinger/dispdrv.cpp
|
|
${source_DIR}/skyline/services/vi/vi_m.cpp
|
|
)
|
|
|
|
target_link_libraries(skyline vulkan android fmt tinyxml2)
|
|
target_compile_options(skyline PRIVATE -Wno-c++17-extensions)
|