Skip to content

Commit 79aa951

Browse files
Zach DeanZach Dean
Zach Dean
authored and
Zach Dean
committed
Implement Pure Cpp on Android
1 parent e1240cf commit 79aa951

File tree

6 files changed

+49
-141
lines changed

6 files changed

+49
-141
lines changed

android/CMakeLists.txt

+20-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
1-
cmake_minimum_required(VERSION 3.13)
2-
1+
cmake_minimum_required(VERSION 3.4.1)
32
project(PureCppTurboModuleLibrary)
43

5-
add_library(pure-cpp-turbo-module-library SHARED ../cpp/PureCppImpl.cpp)
4+
set (CMAKE_VERBOSE_MAKEFILE ON)
5+
6+
add_library(
7+
pure-cpp-turbo-module-library
8+
STATIC
9+
../cpp/PureCppImpl.cpp
10+
)
611

7-
# Specifies paths to native header files.
8-
include_directories(
9-
../cpp
10-
generated/jni
12+
# Specifies a path to native header files.
13+
target_include_directories(
14+
pure-cpp-turbo-module-library
15+
PUBLIC
16+
../cpp
1117
)
18+
19+
target_link_libraries(
20+
pure-cpp-turbo-module-library
21+
jsi
22+
reactnative
23+
react_codegen_RNPureCppTurboModuleLibrarySpec
24+
)

android/build.gradle

+5-5
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ dependencies {
121121
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
122122
}
123123

124-
//react {
125-
// jsRootDir = file("../src/")
126-
// libraryName = "PureCppTurboModuleLibrary"
127-
// codegenJavaPackageName = "com.purecppturbomodulelibrary"
128-
//}
124+
react {
125+
jsRootDir = file("../src/")
126+
libraryName = "PureCppTurboModuleLibrary"
127+
codegenJavaPackageName = "com.purecppturbomodulelibrary"
128+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.purecppturbomodulelibrary
2+
3+
import com.facebook.react.BaseReactPackage
4+
import com.facebook.react.bridge.NativeModule
5+
import com.facebook.react.bridge.ReactApplicationContext
6+
import com.facebook.react.module.model.ReactModuleInfo
7+
import com.facebook.react.module.model.ReactModuleInfoProvider
8+
import java.util.HashMap
9+
10+
class PureCppTurboModuleLibraryPackage : BaseReactPackage() {
11+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
12+
return null
13+
}
14+
15+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
16+
return ReactModuleInfoProvider {
17+
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
18+
moduleInfos
19+
}
20+
}
21+
}

android/src/main/jni/OnLoad.cpp

-128
This file was deleted.

cpp/PureCppImpl.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ namespace facebook::react {
55
PureCppImpl::PureCppImpl(std::shared_ptr<CallInvoker> jsInvoker): NativePureCppTurboModuleLibraryCxxSpec(std::move(jsInvoker)) {}
66

77
double PureCppImpl::multiply(jsi::Runtime& rt, double a, double b) {
8-
printf("PureCppImpl | multiply");
98
return a * b;
109
}
1110

react-native.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ module.exports = {
66
platforms: {
77
android: {
88
cmakeListsPath: 'generated/jni/CMakeLists.txt',
9+
cxxModuleCMakeListsModuleName: 'pure-cpp-turbo-module-library',
10+
cxxModuleCMakeListsPath: 'CMakeLists.txt',
11+
cxxModuleHeaderName: 'PureCppImpl',
912
},
1013
},
1114
},

0 commit comments

Comments
 (0)