Do not .lowerCase the library name when codegenerating TurboModule Specs

Summary:
The Codegen is generating a broken output if using the default library name: `Packages<GradleModuleName>Spec`.
This diff is fixing the codegenerator to don't call the `.lowerCase` on the library name when generating the Makefile.

Changelog:
[Android] [Fixed] - Do not .lowerCase the library name when codegenerating TurboModule Specs

Reviewed By: ShikaSD

Differential Revision: D32597578

fbshipit-source-id: dee729a44134d7b3878074507191bb2a1c200608
This commit is contained in:
Nicola Corti 2021-11-24 11:56:33 -08:00 коммит произвёл Facebook GitHub Bot
Родитель a5469f9d7f
Коммит 28aeb7b865
9 изменённых файлов: 399 добавлений и 104 удалений

Просмотреть файл

@ -121,7 +121,7 @@ module.exports = {
[
'jni/Android.mk',
AndroidMkTemplate({
libraryName: `${libraryName.toLowerCase()}`,
libraryName: libraryName,
}),
],
]);

Просмотреть файл

@ -1459,11 +1459,25 @@ const REAL_MODULE_EXAMPLE: SchemaType = {
},
};
module.exports = {
COMPLEX_OBJECTS,
TWO_MODULES_DIFFERENT_FILES,
EMPTY_NATIVE_MODULES,
SIMPLE_NATIVE_MODULES,
NATIVE_MODULES_WITH_TYPE_ALIASES,
REAL_MODULE_EXAMPLE,
const SAMPLE_WITH_UPPERCASE_NAME: SchemaType = {
modules: {
NativeSampleTurboModule: {
type: 'NativeModule',
aliases: {},
spec: {
properties: [],
},
moduleNames: ['SampleTurboModule'],
},
},
};
module.exports = {
complex_objects: COMPLEX_OBJECTS,
two_modules_different_files: TWO_MODULES_DIFFERENT_FILES,
empty_native_modules: EMPTY_NATIVE_MODULES,
simple_native_modules: SIMPLE_NATIVE_MODULES,
native_modules_with_type_aliases: NATIVE_MODULES_WITH_TYPE_ALIASES,
real_module_example: REAL_MODULE_EXAMPLE,
SampleWithUppercaseName: SAMPLE_WITH_UPPERCASE_NAME,
};

Просмотреть файл

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleCpp can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleCpp can generate fixture SampleWithUppercaseName 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -11,7 +11,37 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/COMPLEX_OBJECTS/NativeModules.h>
#include <react/modules/SampleWithUppercaseName/NativeModules.h>
namespace facebook {
namespace react {
NativeSampleTurboModuleCxxSpecJSI::NativeSampleTurboModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
: TurboModule(\\"SampleTurboModule\\", jsInvoker) {
}
} // namespace react
} // namespace facebook
",
}
`;
exports[`GenerateModuleCpp can generate fixture complex_objects 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/complex_objects/NativeModules.h>
namespace facebook {
namespace react {
@ -47,7 +77,7 @@ NativeSampleTurboModuleCxxSpecJSI::NativeSampleTurboModuleCxxSpecJSI(std::shared
}
`;
exports[`GenerateModuleCpp can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleCpp can generate fixture empty_native_modules 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -58,7 +88,7 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/EMPTY_NATIVE_MODULES/NativeModules.h>
#include <react/modules/empty_native_modules/NativeModules.h>
namespace facebook {
namespace react {
@ -77,7 +107,7 @@ NativeSampleTurboModuleCxxSpecJSI::NativeSampleTurboModuleCxxSpecJSI(std::shared
}
`;
exports[`GenerateModuleCpp can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleCpp can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -88,7 +118,7 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/NATIVE_MODULES_WITH_TYPE_ALIASES/NativeModules.h>
#include <react/modules/native_modules_with_type_aliases/NativeModules.h>
namespace facebook {
namespace react {
@ -114,7 +144,7 @@ AliasTurboModuleCxxSpecJSI::AliasTurboModuleCxxSpecJSI(std::shared_ptr<CallInvok
}
`;
exports[`GenerateModuleCpp can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleCpp can generate fixture real_module_example 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -125,7 +155,7 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/REAL_MODULE_EXAMPLE/NativeModules.h>
#include <react/modules/real_module_example/NativeModules.h>
namespace facebook {
namespace react {
@ -196,7 +226,7 @@ NativeExceptionsManagerCxxSpecJSI::NativeExceptionsManagerCxxSpecJSI(std::shared
}
`;
exports[`GenerateModuleCpp can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleCpp can generate fixture simple_native_modules 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -207,7 +237,7 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/SIMPLE_NATIVE_MODULES/NativeModules.h>
#include <react/modules/simple_native_modules/NativeModules.h>
namespace facebook {
namespace react {
@ -270,7 +300,7 @@ NativeSampleTurboModuleCxxSpecJSI::NativeSampleTurboModuleCxxSpecJSI(std::shared
}
`;
exports[`GenerateModuleCpp can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleCpp can generate fixture two_modules_different_files 1`] = `
Map {
"NativeModules.cpp" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -281,7 +311,7 @@ Map {
* @generated by codegen project: GenerateModuleH.js
*/
#include <react/modules/TWO_MODULES_DIFFERENT_FILES/NativeModules.h>
#include <react/modules/two_modules_different_files/NativeModules.h>
namespace facebook {
namespace react {

Просмотреть файл

@ -1,6 +1,38 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleH can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleH can generate fixture SampleWithUppercaseName 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleH.js
*/
#pragma once
#include <ReactCommon/TurboModule.h>
namespace facebook {
namespace react {
class JSI_EXPORT NativeSampleTurboModuleCxxSpecJSI : public TurboModule {
protected:
NativeSampleTurboModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
public:
};
} // namespace react
} // namespace facebook
",
}
`;
exports[`GenerateModuleH can generate fixture complex_objects 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -35,7 +67,7 @@ virtual void getArrays(jsi::Runtime &rt, const jsi::Object &options) = 0;
}
`;
exports[`GenerateModuleH can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleH can generate fixture empty_native_modules 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -67,7 +99,7 @@ public:
}
`;
exports[`GenerateModuleH can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleH can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -100,7 +132,7 @@ virtual void cropImage(jsi::Runtime &rt, const jsi::Object &cropData) = 0;
}
`;
exports[`GenerateModuleH can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleH can generate fixture real_module_example 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -155,7 +187,7 @@ virtual void dismissRedbox(jsi::Runtime &rt) = 0;
}
`;
exports[`GenerateModuleH can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleH can generate fixture simple_native_modules 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
@ -197,7 +229,7 @@ virtual jsi::Value getValueWithPromise(jsi::Runtime &rt, bool error) = 0;
}
`;
exports[`GenerateModuleH can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleH can generate fixture two_modules_different_files 1`] = `
Map {
"NativeModules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.

Просмотреть файл

@ -1,8 +1,59 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleHObjCpp can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture SampleWithUppercaseName 1`] = `
Map {
"COMPLEX_OBJECTS.h" => "/**
"SampleWithUppercaseName.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleObjCpp
*
* We create an umbrella header (and corresponding implementation) here since
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
* must have a single output. More files => more genrule()s => slower builds.
*/
#ifndef __cplusplus
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
#endif
#import <Foundation/Foundation.h>
#import <RCTRequired/RCTRequired.h>
#import <RCTTypeSafety/RCTConvertHelpers.h>
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTCxxConvert.h>
#import <React/RCTManagedPointer.h>
#import <ReactCommon/RCTTurboModule.h>
#import <folly/Optional.h>
#import <vector>
@protocol NativeSampleTurboModuleSpec <RCTBridgeModule, RCTTurboModule>
@end
namespace facebook {
namespace react {
/**
* ObjC++ class for module 'NativeSampleTurboModule'
*/
class JSI_EXPORT NativeSampleTurboModuleSpecJSI : public ObjCTurboModule {
public:
NativeSampleTurboModuleSpecJSI(const ObjCTurboModule::InitParams &params);
};
} // namespace react
} // namespace facebook
",
}
`;
exports[`GenerateModuleHObjCpp can generate fixture complex_objects 1`] = `
Map {
"complex_objects.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -258,9 +309,9 @@ inline facebook::react::LazyVector<JS::NativeSampleTurboModule::SpecGetArraysOpt
}
`;
exports[`GenerateModuleHObjCpp can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture empty_native_modules 1`] = `
Map {
"EMPTY_NATIVE_MODULES.h" => "/**
"empty_native_modules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -309,9 +360,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleHObjCpp can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"NATIVE_MODULES_WITH_TYPE_ALIASES.h" => "/**
"native_modules_with_type_aliases.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -480,9 +531,9 @@ inline folly::Optional<bool> JS::AliasTurboModule::Options::allowExternalStorage
}
`;
exports[`GenerateModuleHObjCpp can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture real_module_example 1`] = `
Map {
"REAL_MODULE_EXAMPLE.h" => "/**
"real_module_example.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -770,9 +821,9 @@ inline bool JS::NativeImagePickerIOS::SpecOpenCameraDialogConfig::videoMode() co
}
`;
exports[`GenerateModuleHObjCpp can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture simple_native_modules 1`] = `
Map {
"SIMPLE_NATIVE_MODULES.h" => "/**
"simple_native_modules.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -876,9 +927,9 @@ inline JS::NativeSampleTurboModule::Constants::Builder::Builder(Constants i) : _
}
`;
exports[`GenerateModuleHObjCpp can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleHObjCpp can generate fixture two_modules_different_files 1`] = `
Map {
"TWO_MODULES_DIFFERENT_FILES.h" => "/**
"two_modules_different_files.h" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the

Просмотреть файл

@ -1,6 +1,40 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleJavaSpec can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture SampleWithUppercaseName 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeSampleTurboModuleSpec.java" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE file in the root
* directory of this source tree.
*
* @generated by codegen project: GenerateModuleJavaSpec.js
*
* @nolint
*/
package com.facebook.fbreact.specs;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReactModuleWithSpec;
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
public NativeSampleTurboModuleSpec(ReactApplicationContext reactContext) {
super(reactContext);
}
}
",
}
`;
exports[`GenerateModuleJavaSpec can generate fixture complex_objects 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeSampleTurboModuleSpec.java" => "
/**
@ -52,7 +86,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
}
`;
exports[`GenerateModuleJavaSpec can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture empty_native_modules 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeSampleTurboModuleSpec.java" => "
/**
@ -86,7 +120,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
}
`;
exports[`GenerateModuleJavaSpec can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"java/com/facebook/fbreact/specs/AliasTurboModuleSpec.java" => "
/**
@ -123,7 +157,7 @@ public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule im
}
`;
exports[`GenerateModuleJavaSpec can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture real_module_example 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeCameraRollManagerSpec.java" => "
/**
@ -219,7 +253,7 @@ public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaMo
}
`;
exports[`GenerateModuleJavaSpec can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture simple_native_modules 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeSampleTurboModuleSpec.java" => "
/**
@ -331,7 +365,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
}
`;
exports[`GenerateModuleJavaSpec can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleJavaSpec can generate fixture two_modules_different_files 1`] = `
Map {
"java/com/facebook/fbreact/specs/NativeSampleTurboModuleSpec.java" => "
/**

Просмотреть файл

@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleJniCpp can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleJniCpp can generate fixture SampleWithUppercaseName 1`] = `
Map {
"jni/COMPLEX_OBJECTS-generated.cpp" => "
"jni/SampleWithUppercaseName-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -12,7 +12,44 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"COMPLEX_OBJECTS.h\\"
#include \\"SampleWithUppercaseName.h\\"
namespace facebook {
namespace react {
NativeSampleTurboModuleSpecJSI::NativeSampleTurboModuleSpecJSI(const JavaTurboModule::InitParams &params)
: JavaTurboModule(params) {
}
std::shared_ptr<TurboModule> SampleWithUppercaseName_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"SampleTurboModule\\") {
return std::make_shared<NativeSampleTurboModuleSpecJSI>(params);
}
return nullptr;
}
} // namespace react
} // namespace facebook
",
}
`;
exports[`GenerateModuleJniCpp can generate fixture complex_objects 1`] = `
Map {
"jni/complex_objects-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"complex_objects.h\\"
namespace facebook {
namespace react {
@ -41,7 +78,7 @@ NativeSampleTurboModuleSpecJSI::NativeSampleTurboModuleSpecJSI(const JavaTurboMo
methodMap_[\\"getArrays\\"] = MethodMetadata {1, __hostFunction_NativeSampleTurboModuleSpecJSI_getArrays};
}
std::shared_ptr<TurboModule> COMPLEX_OBJECTS_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> complex_objects_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"SampleTurboModule\\") {
return std::make_shared<NativeSampleTurboModuleSpecJSI>(params);
}
@ -54,9 +91,9 @@ std::shared_ptr<TurboModule> COMPLEX_OBJECTS_ModuleProvider(const std::string mo
}
`;
exports[`GenerateModuleJniCpp can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJniCpp can generate fixture empty_native_modules 1`] = `
Map {
"jni/EMPTY_NATIVE_MODULES-generated.cpp" => "
"jni/empty_native_modules-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -66,7 +103,7 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"EMPTY_NATIVE_MODULES.h\\"
#include \\"empty_native_modules.h\\"
namespace facebook {
namespace react {
@ -78,7 +115,7 @@ NativeSampleTurboModuleSpecJSI::NativeSampleTurboModuleSpecJSI(const JavaTurboMo
}
std::shared_ptr<TurboModule> EMPTY_NATIVE_MODULES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> empty_native_modules_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"SampleTurboModule\\") {
return std::make_shared<NativeSampleTurboModuleSpecJSI>(params);
}
@ -91,9 +128,9 @@ std::shared_ptr<TurboModule> EMPTY_NATIVE_MODULES_ModuleProvider(const std::stri
}
`;
exports[`GenerateModuleJniCpp can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleJniCpp can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"jni/NATIVE_MODULES_WITH_TYPE_ALIASES-generated.cpp" => "
"jni/native_modules_with_type_aliases-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -103,7 +140,7 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"NATIVE_MODULES_WITH_TYPE_ALIASES.h\\"
#include \\"native_modules_with_type_aliases.h\\"
namespace facebook {
namespace react {
@ -119,7 +156,7 @@ AliasTurboModuleSpecJSI::AliasTurboModuleSpecJSI(const JavaTurboModule::InitPara
methodMap_[\\"cropImage\\"] = MethodMetadata {1, __hostFunction_AliasTurboModuleSpecJSI_cropImage};
}
std::shared_ptr<TurboModule> NATIVE_MODULES_WITH_TYPE_ALIASES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> native_modules_with_type_aliases_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"AliasTurboModule\\") {
return std::make_shared<AliasTurboModuleSpecJSI>(params);
}
@ -132,9 +169,9 @@ std::shared_ptr<TurboModule> NATIVE_MODULES_WITH_TYPE_ALIASES_ModuleProvider(con
}
`;
exports[`GenerateModuleJniCpp can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleJniCpp can generate fixture real_module_example 1`] = `
Map {
"jni/REAL_MODULE_EXAMPLE-generated.cpp" => "
"jni/real_module_example-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -144,7 +181,7 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"REAL_MODULE_EXAMPLE.h\\"
#include \\"real_module_example.h\\"
namespace facebook {
namespace react {
@ -198,7 +235,7 @@ NativeExceptionsManagerSpecJSI::NativeExceptionsManagerSpecJSI(const JavaTurboMo
methodMap_[\\"dismissRedbox\\"] = MethodMetadata {0, __hostFunction_NativeExceptionsManagerSpecJSI_dismissRedbox};
}
std::shared_ptr<TurboModule> REAL_MODULE_EXAMPLE_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> real_module_example_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"CameraRollManager\\") {
return std::make_shared<NativeCameraRollManagerSpecJSI>(params);
}
@ -214,9 +251,9 @@ std::shared_ptr<TurboModule> REAL_MODULE_EXAMPLE_ModuleProvider(const std::strin
}
`;
exports[`GenerateModuleJniCpp can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJniCpp can generate fixture simple_native_modules 1`] = `
Map {
"jni/SIMPLE_NATIVE_MODULES-generated.cpp" => "
"jni/simple_native_modules-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -226,7 +263,7 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"SIMPLE_NATIVE_MODULES.h\\"
#include \\"simple_native_modules.h\\"
namespace facebook {
namespace react {
@ -290,7 +327,7 @@ NativeSampleTurboModuleSpecJSI::NativeSampleTurboModuleSpecJSI(const JavaTurboMo
methodMap_[\\"getValueWithPromise\\"] = MethodMetadata {1, __hostFunction_NativeSampleTurboModuleSpecJSI_getValueWithPromise};
}
std::shared_ptr<TurboModule> SIMPLE_NATIVE_MODULES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> simple_native_modules_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"SampleTurboModule\\") {
return std::make_shared<NativeSampleTurboModuleSpecJSI>(params);
}
@ -303,9 +340,9 @@ std::shared_ptr<TurboModule> SIMPLE_NATIVE_MODULES_ModuleProvider(const std::str
}
`;
exports[`GenerateModuleJniCpp can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleJniCpp can generate fixture two_modules_different_files 1`] = `
Map {
"jni/TWO_MODULES_DIFFERENT_FILES-generated.cpp" => "
"jni/two_modules_different_files-generated.cpp" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -315,7 +352,7 @@ Map {
* @generated by codegen project: GenerateModuleJniCpp.js
*/
#include \\"TWO_MODULES_DIFFERENT_FILES.h\\"
#include \\"two_modules_different_files.h\\"
namespace facebook {
namespace react {
@ -339,7 +376,7 @@ NativeSampleTurboModule2SpecJSI::NativeSampleTurboModule2SpecJSI(const JavaTurbo
methodMap_[\\"voidFunc\\"] = MethodMetadata {0, __hostFunction_NativeSampleTurboModule2SpecJSI_voidFunc};
}
std::shared_ptr<TurboModule> TWO_MODULES_DIFFERENT_FILES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
std::shared_ptr<TurboModule> two_modules_different_files_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params) {
if (moduleName == \\"SampleTurboModule\\") {
return std::make_shared<NativeSampleTurboModuleSpecJSI>(params);
}

Просмотреть файл

@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleJniH can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleJniH can generate fixture complex_objects 1`] = `
Map {
"jni/COMPLEX_OBJECTS.h" => "
"jni/complex_objects.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -30,7 +30,7 @@ public:
};
std::shared_ptr<TurboModule> COMPLEX_OBJECTS_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> complex_objects_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -64,9 +64,9 @@ include $(BUILD_SHARED_LIBRARY)
}
`;
exports[`GenerateModuleJniH can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJniH can generate fixture empty_native_modules 1`] = `
Map {
"jni/EMPTY_NATIVE_MODULES.h" => "
"jni/empty_native_modules.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -94,7 +94,7 @@ public:
};
std::shared_ptr<TurboModule> EMPTY_NATIVE_MODULES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> empty_native_modules_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -128,9 +128,9 @@ include $(BUILD_SHARED_LIBRARY)
}
`;
exports[`GenerateModuleJniH can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleJniH can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"jni/NATIVE_MODULES_WITH_TYPE_ALIASES.h" => "
"jni/native_modules_with_type_aliases.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -158,7 +158,7 @@ public:
};
std::shared_ptr<TurboModule> NATIVE_MODULES_WITH_TYPE_ALIASES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> native_modules_with_type_aliases_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -192,9 +192,9 @@ include $(BUILD_SHARED_LIBRARY)
}
`;
exports[`GenerateModuleJniH can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleJniH can generate fixture real_module_example 1`] = `
Map {
"jni/REAL_MODULE_EXAMPLE.h" => "
"jni/real_module_example.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -230,7 +230,7 @@ public:
};
std::shared_ptr<TurboModule> REAL_MODULE_EXAMPLE_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> real_module_example_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -264,9 +264,9 @@ include $(BUILD_SHARED_LIBRARY)
}
`;
exports[`GenerateModuleJniH can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleJniH can generate fixture simple_native_modules 1`] = `
Map {
"jni/SIMPLE_NATIVE_MODULES.h" => "
"jni/simple_native_modules.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -294,7 +294,7 @@ public:
};
std::shared_ptr<TurboModule> SIMPLE_NATIVE_MODULES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> simple_native_modules_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -328,9 +328,9 @@ include $(BUILD_SHARED_LIBRARY)
}
`;
exports[`GenerateModuleJniH can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleJniH can generate fixture two_modules_different_files 1`] = `
Map {
"jni/TWO_MODULES_DIFFERENT_FILES.h" => "
"jni/two_modules_different_files.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -366,7 +366,7 @@ public:
};
std::shared_ptr<TurboModule> TWO_MODULES_DIFFERENT_FILES_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
std::shared_ptr<TurboModule> two_modules_different_files_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
@ -399,3 +399,68 @@ include $(BUILD_SHARED_LIBRARY)
",
}
`;
exports[`GenerateModuleJniH can generate fixture SampleWithUppercaseName 1`] = `
Map {
"jni/SampleWithUppercaseName.h" => "
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleJniH.js
*/
#pragma once
#include <ReactCommon/JavaTurboModule.h>
#include <ReactCommon/TurboModule.h>
#include <jsi/jsi.h>
namespace facebook {
namespace react {
/**
* JNI C++ class for module 'NativeSampleTurboModule'
*/
class JSI_EXPORT NativeSampleTurboModuleSpecJSI : public JavaTurboModule {
public:
NativeSampleTurboModuleSpecJSI(const JavaTurboModule::InitParams &params);
};
std::shared_ptr<TurboModule> SampleWithUppercaseName_ModuleProvider(const std::string moduleName, const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook
",
"jni/Android.mk" => "# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := react_codegen_SampleWithUppercaseName
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/SampleWithUppercaseName/*.cpp)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/SampleWithUppercaseName
LOCAL_SHARED_LIBRARIES := libjsi libglog libfolly_json libyoga libreact_nativemodule_core librrc_view libreact_render_core libreact_render_graphics libfbjni libturbomodulejsijni libreact_codegen_rncore libreact_debug libreact_render_debug
LOCAL_CFLAGS := \\\\
-DLOG_TAG=\\\\\\"ReactNative\\\\\\"
LOCAL_CFLAGS += -fexceptions -frtti -std=c++17 -Wall
include $(BUILD_SHARED_LIBRARY)
",
}
`;

Просмотреть файл

@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`GenerateModuleMm can generate fixture COMPLEX_OBJECTS 1`] = `
exports[`GenerateModuleMm can generate fixture SampleWithUppercaseName 1`] = `
Map {
"COMPLEX_OBJECTS-generated.mm" => "/**
"SampleWithUppercaseName-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -15,7 +15,39 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"COMPLEX_OBJECTS.h\\"
#import \\"SampleWithUppercaseName.h\\"
namespace facebook {
namespace react {
NativeSampleTurboModuleSpecJSI::NativeSampleTurboModuleSpecJSI(const ObjCTurboModule::InitParams &params)
: ObjCTurboModule(params) {
}
} // namespace react
} // namespace facebook
",
}
`;
exports[`GenerateModuleMm can generate fixture complex_objects 1`] = `
Map {
"complex_objects-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GenerateModuleObjCpp
*
* We create an umbrella header (and corresponding implementation) here since
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"complex_objects.h\\"
@implementation RCTCxxConvert (NativeSampleTurboModule_SpecDifficultAE)
+ (RCTManagedPointer *)JS_NativeSampleTurboModule_SpecDifficultAE:(id)json
@ -93,9 +125,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleMm can generate fixture EMPTY_NATIVE_MODULES 1`] = `
exports[`GenerateModuleMm can generate fixture empty_native_modules 1`] = `
Map {
"EMPTY_NATIVE_MODULES-generated.mm" => "/**
"empty_native_modules-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -108,7 +140,7 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"EMPTY_NATIVE_MODULES.h\\"
#import \\"empty_native_modules.h\\"
namespace facebook {
@ -125,9 +157,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleMm can generate fixture NATIVE_MODULES_WITH_TYPE_ALIASES 1`] = `
exports[`GenerateModuleMm can generate fixture native_modules_with_type_aliases 1`] = `
Map {
"NATIVE_MODULES_WITH_TYPE_ALIASES-generated.mm" => "/**
"native_modules_with_type_aliases-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -140,7 +172,7 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"NATIVE_MODULES_WITH_TYPE_ALIASES.h\\"
#import \\"native_modules_with_type_aliases.h\\"
@implementation RCTCxxConvert (AliasTurboModule_OptionsOffset)
+ (RCTManagedPointer *)JS_AliasTurboModule_OptionsOffset:(id)json
@ -185,9 +217,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleMm can generate fixture REAL_MODULE_EXAMPLE 1`] = `
exports[`GenerateModuleMm can generate fixture real_module_example 1`] = `
Map {
"REAL_MODULE_EXAMPLE-generated.mm" => "/**
"real_module_example-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -200,7 +232,7 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"REAL_MODULE_EXAMPLE.h\\"
#import \\"real_module_example.h\\"
@implementation RCTCxxConvert (NativeCameraRollManager_GetPhotosParams)
+ (RCTManagedPointer *)JS_NativeCameraRollManager_GetPhotosParams:(id)json
@ -317,9 +349,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleMm can generate fixture SIMPLE_NATIVE_MODULES 1`] = `
exports[`GenerateModuleMm can generate fixture simple_native_modules 1`] = `
Map {
"SIMPLE_NATIVE_MODULES-generated.mm" => "/**
"simple_native_modules-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -332,7 +364,7 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"SIMPLE_NATIVE_MODULES.h\\"
#import \\"simple_native_modules.h\\"
namespace facebook {
@ -424,9 +456,9 @@ namespace facebook {
}
`;
exports[`GenerateModuleMm can generate fixture TWO_MODULES_DIFFERENT_FILES 1`] = `
exports[`GenerateModuleMm can generate fixture two_modules_different_files 1`] = `
Map {
"TWO_MODULES_DIFFERENT_FILES-generated.mm" => "/**
"two_modules_different_files-generated.mm" => "/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
@ -439,7 +471,7 @@ Map {
* must have a single output. More files => more genrule()s => slower builds.
*/
#import \\"TWO_MODULES_DIFFERENT_FILES.h\\"
#import \\"two_modules_different_files.h\\"
namespace facebook {