1--- android/CMakeLists.txt
2+++ android/CMakeLists.txt
3@@ -47,17 +47,17 @@
4         "${PROJECT_SOURCE_DIR}/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp"
5         "${PROJECT_SOURCE_DIR}/cpp/rnskia-android/SkiaOpenGLRenderer.cpp"
6
7-        "${PROJECT_SOURCE_DIR}/cpp/jsi/JsiHostObject.cpp"
8-        "${PROJECT_SOURCE_DIR}/cpp/jsi/JsiValue.cpp"
9+        "${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiHostObject.cpp"
10+        "${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiValue.cpp"
11
12-        "${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkManager.cpp"
13-        "${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkJsView.cpp"
14-        "${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkDomView.cpp"
15-        "${PROJECT_SOURCE_DIR}/cpp/rnskia/RNSkDispatchQueue.cpp"
16+        "${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkManager.cpp"
17+        "${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkJsView.cpp"
18+        "${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDomView.cpp"
19+        "${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDispatchQueue.cpp"
20
21-        "${PROJECT_SOURCE_DIR}/cpp/rnskia/dom/base/DrawingContext.cpp"
22+        "${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/base/DrawingContext.cpp"
23
24-        "${PROJECT_SOURCE_DIR}/cpp/api/third_party/CSSColorParser.cpp"
25+        "${PROJECT_SOURCE_DIR}/../cpp/api/third_party/CSSColorParser.cpp"
26
27 )
28
29@@ -71,33 +71,33 @@
30         "${NODE_MODULES_DIR}/react-native/ReactCommon/react/nativemodule/core"
31         "${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni"
32
33-        cpp/skia/include/config/
34-        cpp/skia/include/core/
35-        cpp/skia/include/effects/
36-        cpp/skia/include/utils/
37-        cpp/skia/include/pathops/
38-        cpp/skia/modules/
39+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/config/
40+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/core/
41+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/effects/
42+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/utils/
43+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/pathops/
44+        ${PROJECT_SOURCE_DIR}/../cpp/skia/modules/
45         #cpp/skia/modules/skparagraph/include/
46-        cpp/skia/include/
47-        cpp/skia
48+        ${PROJECT_SOURCE_DIR}/../cpp/skia/include/
49+        ${PROJECT_SOURCE_DIR}/../cpp/skia
50
51-        cpp/api
52-        cpp/jsi
53-        cpp/jni/include
54-        cpp/rnskia-android
55-        cpp/rnskia
56-        cpp/rnskia/values
57-        cpp/rnskia/dom
58-        cpp/rnskia/dom/base
59-        cpp/rnskia/dom/nodes
60-        cpp/rnskia/dom/props
61-        cpp/utils
62+        ${PROJECT_SOURCE_DIR}/../cpp/api
63+        ${PROJECT_SOURCE_DIR}/../cpp/jsi
64+        ${PROJECT_SOURCE_DIR}/cpp/jni/include
65+        ${PROJECT_SOURCE_DIR}/cpp/rnskia-android
66+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia
67+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia/values
68+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom
69+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/base
70+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/nodes
71+        ${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/props
72+        ${PROJECT_SOURCE_DIR}/../cpp/utils
73
74         ${libfbjni_include_DIRS}
75 )
76
77 # Import prebuilt SKIA libraries
78-set (SKIA_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../libs/android/${ANDROID_ABI}")
79+set (SKIA_LIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../common/libs/${ANDROID_ABI}")
80
81 add_library(skia STATIC IMPORTED)
82 set_property(TARGET skia PROPERTY IMPORTED_LOCATION "${SKIA_LIBS_PATH}/libskia.a")
83@@ -204,4 +204,4 @@
84         -lGLESv2
85         -lEGL
86         -landroid
87-    )
88\ No newline at end of file
89+    )
90--- android/build.gradle
91+++ android/build.gradle
92@@ -43,7 +43,7 @@
93   throw new GradleException("React-Native-Skia: Failed to find node_modules/ path!")
94 }
95
96-def nodeModules = findNodeModules(projectDir)
97+def nodeModules = Paths.get(projectDir.getPath(), '../../../../../..', 'react-native-lab/react-native/packages').toString()
98 logger.warn("react-native-skia: node_modules/ found at: ${nodeModules}")
99
100 def sourceBuild = false
101@@ -51,9 +51,9 @@ def defaultDir
102
103 if (rootProject.ext.has('reactNativeAndroidRoot')) {
104   defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
105-} else if (findProject(':ReactAndroid') != null) {
106+} else if (findProject(':packages:react-native:ReactAndroid') != null) {
107     sourceBuild = true
108-    defaultDir = project(':ReactAndroid').projectDir
109+    defaultDir = project(':packages:react-native:ReactAndroid').projectDir
110 } else {
111   defaultDir = file("$nodeModules/react-native")
112 }
113@@ -76,6 +76,11 @@
114     buildType = "debug"
115 }
116
117+def reactNativeArchitectures() {
118+    def value = project.getProperties().get("reactNativeArchitectures")
119+    return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
120+}
121+
122 def reactProperties = new Properties()
123 file("$nodeModules/react-native/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) }
124 def FULL_RN_VERSION =  (System.getenv("REACT_NATIVE_OVERRIDE_VERSION") ?: reactProperties.getProperty("VERSION_NAME"))
125@@ -117,7 +122,7 @@
126         externalNativeBuild {
127             cmake {
128                 cppFlags "-fexceptions", "-frtti", "-std=c++1y", "-DONANDROID"
129-                abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
130+                abiFilters (*reactNativeArchitectures())
131                 arguments '-DANDROID_STL=c++_shared',
132                           "-DREACT_NATIVE_VERSION=${REACT_NATIVE_VERSION}",
133                           "-DNODE_MODULES_DIR=${nodeModules}",
134@@ -267,4 +272,4 @@
135 afterEvaluate {
136   nativeBuildDependsOn(extractAARHeaders, null)
137   nativeBuildDependsOn(extractJNIFiles, null)
138-}
139\ No newline at end of file
140+}
141