Init using create-nitro-module

This commit is contained in:
2026-04-06 12:53:56 +02:00
commit b5a15a41e9
97 changed files with 6648 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
///
/// OmniOnLoad.cpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///
#ifndef BUILDING_OMNI_WITH_GENERATED_CMAKE_PROJECT
#error OmniOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
#endif
#include "OmniOnLoad.hpp"
#include <jni.h>
#include <fbjni/fbjni.h>
#include <NitroModules/HybridObjectRegistry.hpp>
#include "JHybridOmniSpec.hpp"
#include "views/JHybridOmniStateUpdater.hpp"
#include <NitroModules/DefaultConstructableObject.hpp>
namespace margelo::nitro::omni {
int initialize(JavaVM* vm) {
return facebook::jni::initialize(vm, []() {
::margelo::nitro::omni::registerAllNatives();
});
}
struct JHybridOmniSpecImpl: public jni::JavaClass<JHybridOmniSpecImpl, JHybridOmniSpec::JavaPart> {
static constexpr auto kJavaDescriptor = "Lcom/omni/HybridOmni;";
static std::shared_ptr<JHybridOmniSpec> create() {
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridOmniSpecImpl::javaobject()>();
jni::local_ref<JHybridOmniSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
return javaPart->getJHybridOmniSpec();
}
};
void registerAllNatives() {
using namespace margelo::nitro;
using namespace margelo::nitro::omni;
// Register native JNI methods
margelo::nitro::omni::JHybridOmniSpec::CxxPart::registerNatives();
margelo::nitro::omni::views::JHybridOmniStateUpdater::registerNatives();
// Register Nitro Hybrid Objects
HybridObjectRegistry::registerHybridObjectConstructor(
"Omni",
[]() -> std::shared_ptr<HybridObject> {
return JHybridOmniSpecImpl::create();
}
);
}
} // namespace margelo::nitro::omni