77#include <scratchcpp/stage.h>
88#include <scratchcpp/textbubble.h>
99#include <scratchcpp/broadcast.h>
10+ #ifndef USE_LLVM
1011#include <scratchcpp/compiler.h>
12+ #endif
1113#include <scratchcpp/input.h>
1214#include <scratchcpp/inputvalue.h>
1315#include <scratchcpp/field.h>
@@ -105,6 +107,7 @@ void Engine::clear()
105107// Resolves ID references and sets pointers of entities.
106108void Engine::resolveIds()
107109{
110+ #ifndef USE_LLVM
108111 for (auto target : m_targets) {
109112 std::cout << "Processing target " << target->name() << "..." << std::endl;
110113 const auto &blocks = target->blocks();
@@ -256,10 +259,12 @@ void Engine::resolveIds()
256259 block->updateInputMap();
257260 block->updateFieldMap();
258261 }
262+ #endif // USE_LLVM
259263}
260264
261265void Engine::compile()
262266{
267+ #ifndef USE_LLVM
263268 // Resolve entities by ID
264269 resolveIds();
265270
@@ -317,6 +322,7 @@ void Engine::compile()
317322
318323 for (auto monitor : m_monitors)
319324 compileMonitor(monitor);
325+ #endif // USE_LLVM
320326}
321327
322328void Engine::start()
@@ -945,6 +951,7 @@ const std::vector<BlockFunc> &Engine::blockFunctions() const
945951 return m_functions;
946952}
947953
954+ #ifndef USE_LLVM
948955void Engine::addCompileFunction(IExtension *extension, const std::string &opcode, BlockComp f)
949956{
950957 if (m_compileFunctions.find(extension) == m_compileFunctions.cend())
@@ -960,6 +967,7 @@ void Engine::addHatPredicateCompileFunction(IExtension *extension, const std::st
960967
961968 m_hatPredicateCompileFunctions[extension][opcode] = f;
962969}
970+ #endif // USE_LLVM
963971
964972void Engine::addMonitorNameFunction(IExtension *extension, const std::string &opcode, MonitorNameFunc f)
965973{
@@ -979,10 +987,12 @@ void Engine::addMonitorChangeFunction(IExtension *extension, const std::string &
979987
980988void Engine::addHatBlock(IExtension *extension, const std::string &opcode)
981989{
990+ #ifndef USE_LLVM
982991 if (m_compileFunctions.find(extension) == m_compileFunctions.cend())
983992 m_compileFunctions[extension] = {};
984993
985994 m_compileFunctions[extension][opcode] = [](Compiler *compiler) {};
995+ #endif
986996}
987997
988998void Engine::addInput(IExtension *extension, const std::string &name, int id)
@@ -1362,6 +1372,7 @@ void Engine::setMonitors(const std::vector<std::shared_ptr<Monitor>> &newMonitor
13621372 }
13631373}
13641374
1375+ #ifndef USE_LLVM
13651376Monitor *Engine::createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName, int varFieldId, BlockComp compileFunction)
13661377{
13671378 if (var->monitor())
@@ -1398,6 +1409,7 @@ Monitor *Engine::createListMonitor(std::shared_ptr<List> list, const std::string
13981409 return monitor.get();
13991410 }
14001411}
1412+ #endif // USE_LLVM
14011413
14021414sigslot::signal<Monitor *> &Engine::monitorAdded()
14031415{
@@ -1722,8 +1734,10 @@ const std::unordered_set<std::string> &Engine::unsupportedBlocks() const
17221734
17231735void Engine::clearExtensionData()
17241736{
1737+ #ifndef USE_LLVM
17251738 m_compileFunctions.clear();
17261739 m_hatPredicateCompileFunctions.clear();
1740+ #endif
17271741 m_monitorNameFunctions.clear();
17281742 m_monitorChangeFunctions.clear();
17291743 m_inputs.clear();
@@ -1733,16 +1747,19 @@ void Engine::clearExtensionData()
17331747
17341748IExtension *Engine::blockExtension(const std::string &opcode) const
17351749{
1750+ #ifndef USE_LLVM
17361751 for (const auto &[ext, data] : m_compileFunctions) {
17371752 auto it = data.find(opcode);
17381753
17391754 if (it != data.cend())
17401755 return ext;
17411756 }
1757+ #endif // USE_LLVM
17421758
17431759 return nullptr;
17441760}
17451761
1762+ #ifndef USE_LLVM
17461763BlockComp Engine::resolveBlockCompileFunc(IExtension *extension, const std::string &opcode) const
17471764{
17481765 if (!extension)
@@ -1776,6 +1793,7 @@ HatPredicateCompileFunc Engine::resolveHatPredicateCompileFunc(IExtension *exten
17761793
17771794 return nullptr;
17781795}
1796+ #endif // USE_LLVM
17791797
17801798MonitorNameFunc Engine::resolveMonitorNameFunc(IExtension *extension, const std::string &opcode) const
17811799{
@@ -1864,6 +1882,7 @@ int Engine::resolveFieldValue(IExtension *extension, const std::string &value) c
18641882
18651883void Engine::compileMonitor(std::shared_ptr<Monitor> monitor)
18661884{
1885+ #ifndef USE_LLVM
18671886 Target *target = monitor->sprite() ? static_cast<Target *>(monitor->sprite()) : stage();
18681887 Compiler compiler(this, target);
18691888 auto block = monitor->block();
@@ -1909,6 +1928,7 @@ void Engine::compileMonitor(std::shared_ptr<Monitor> monitor)
19091928
19101929 for (const std::string &opcode : unsupportedBlocks)
19111930 m_unsupportedBlocks.insert(opcode);
1931+ #endif // USE_LLVM
19121932}
19131933
19141934void Engine::finalize()
0 commit comments