Added CMake option to enable/disable scripting support
This commit is contained in:
parent
6b538a49ac
commit
fce7afb8dc
5 changed files with 122 additions and 95 deletions
|
@ -22,6 +22,8 @@ option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
|||
|
||||
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
||||
|
||||
option(ENABLE_SCRIPTING ON)
|
||||
|
||||
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit)
|
||||
message(STATUS "Copying pre-commit hook")
|
||||
file(COPY hooks/pre-commit
|
||||
|
@ -258,6 +260,10 @@ if (CITRA_ENABLE_COMPATIBILITY_REPORTING)
|
|||
add_definitions(-DCITRA_ENABLE_COMPATIBILITY_REPORTING)
|
||||
endif()
|
||||
|
||||
if (ENABLE_SCRIPTING)
|
||||
add_definitions(-DENABLE_SCRIPTING)
|
||||
endif()
|
||||
|
||||
# Platform-specific library requirements
|
||||
# ======================================
|
||||
|
||||
|
|
2
externals/CMakeLists.txt
vendored
2
externals/CMakeLists.txt
vendored
|
@ -94,6 +94,7 @@ if (ENABLE_WEB_SERVICE)
|
|||
target_include_directories(json-headers INTERFACE ./json)
|
||||
endif()
|
||||
|
||||
if (ENABLE_SCRIPTING)
|
||||
# ZeroMQ
|
||||
# libzmq includes its own clang-format target, which conflicts with the
|
||||
# clang-format in Citra if libzmq is added as a subdirectory. An external
|
||||
|
@ -186,3 +187,4 @@ target_include_directories(libzmq-headers INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/
|
|||
add_library(cppzmq-headers INTERFACE)
|
||||
target_include_directories(cppzmq-headers INTERFACE ./cppzmq)
|
||||
add_dependencies(cppzmq-headers libzmq)
|
||||
endif()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
add_library(core STATIC
|
||||
set(core_sources
|
||||
3ds.h
|
||||
announce_multiplayer_session.cpp
|
||||
announce_multiplayer_session.h
|
||||
|
@ -410,14 +410,6 @@ add_library(core STATIC
|
|||
movie.h
|
||||
perf_stats.cpp
|
||||
perf_stats.h
|
||||
rpc/packet.cpp
|
||||
rpc/packet.h
|
||||
rpc/rpc_server.cpp
|
||||
rpc/rpc_server.h
|
||||
rpc/server.cpp
|
||||
rpc/server.h
|
||||
rpc/zmq_server.cpp
|
||||
rpc/zmq_server.h
|
||||
settings.cpp
|
||||
settings.h
|
||||
telemetry_session.cpp
|
||||
|
@ -426,6 +418,19 @@ add_library(core STATIC
|
|||
tracer/recorder.cpp
|
||||
tracer/recorder.h
|
||||
)
|
||||
if (ENABLE_SCRIPTING)
|
||||
list(APPEND core_sources
|
||||
rpc/packet.cpp
|
||||
rpc/packet.h
|
||||
rpc/rpc_server.cpp
|
||||
rpc/rpc_server.h
|
||||
rpc/server.cpp
|
||||
rpc/server.h
|
||||
rpc/zmq_server.cpp
|
||||
rpc/zmq_server.h
|
||||
)
|
||||
endif()
|
||||
add_library(core STATIC ${core_sources})
|
||||
|
||||
create_target_directory_groups(core)
|
||||
|
||||
|
@ -445,4 +450,6 @@ if (ARCHITECTURE_x86_64)
|
|||
target_link_libraries(core PRIVATE dynarmic)
|
||||
endif()
|
||||
|
||||
if (ENABLE_SCRIPTING)
|
||||
target_link_libraries(core PUBLIC libzmq-headers cppzmq-headers libzmq)
|
||||
endif()
|
||||
|
|
|
@ -25,7 +25,9 @@
|
|||
#include "core/loader/loader.h"
|
||||
#include "core/memory_setup.h"
|
||||
#include "core/movie.h"
|
||||
#ifdef ENABLE_SCRIPTING
|
||||
#include "core/rpc/rpc_server.h"
|
||||
#endif
|
||||
#include "core/settings.h"
|
||||
#include "network/network.h"
|
||||
#include "video_core/video_core.h"
|
||||
|
@ -182,7 +184,11 @@ System::ResultStatus System::Init(EmuWindow& emu_window, u32 system_mode) {
|
|||
dsp_core->EnableStretching(Settings::values.enable_audio_stretching);
|
||||
|
||||
telemetry_session = std::make_unique<Core::TelemetrySession>();
|
||||
|
||||
#ifdef ENABLE_SCRIPTING
|
||||
rpc_server = std::make_unique<RPC::RPCServer>();
|
||||
#endif
|
||||
|
||||
service_manager = std::make_shared<Service::SM::ServiceManager>();
|
||||
shared_page_handler = std::make_shared<SharedPage::Handler>();
|
||||
|
||||
|
@ -234,7 +240,9 @@ void System::Shutdown() {
|
|||
Kernel::Shutdown();
|
||||
HW::Shutdown();
|
||||
telemetry_session.reset();
|
||||
#ifdef ENABLE_SCRIPTING
|
||||
rpc_server.reset();
|
||||
#endif
|
||||
service_manager.reset();
|
||||
dsp_core.reset();
|
||||
cpu_core.reset();
|
||||
|
|
|
@ -21,9 +21,11 @@ namespace AudioCore {
|
|||
class DspInterface;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_SCRIPTING
|
||||
namespace RPC {
|
||||
class RPCServer;
|
||||
}
|
||||
#endif
|
||||
|
||||
namespace Service {
|
||||
namespace SM {
|
||||
|
@ -220,8 +222,10 @@ private:
|
|||
/// Frontend applets
|
||||
std::shared_ptr<Frontend::SoftwareKeyboard> registered_swkbd;
|
||||
|
||||
#ifdef ENABLE_SCRIPTING
|
||||
/// RPC Server for scripting support
|
||||
std::unique_ptr<RPC::RPCServer> rpc_server;
|
||||
#endif
|
||||
|
||||
/// Shared Page
|
||||
std::shared_ptr<SharedPage::Handler> shared_page_handler;
|
||||
|
|
Loading…
Reference in a new issue