Enable CPU execution in sample SL driver

Before this change, the driver reports supporting all operations but
fails to execute any.

Fix: 183005173
Test: DRIVER=neuralnetworks_sample_sl_driver
      TEST=NeuralNetworksSupportLibraryTest
      mma $TEST $DRIVER && \
      adb push {$OUT,}/data/nativetest/$TEST/$TEST && \
      adb push {$OUT/system/lib,/data/nativetest/$TEST}/$DRIVER.so && \
      adb shell /data/nativetest/$TEST/{$TEST,$DRIVER.so}
Change-Id: I15d3514308543757459e29e8076dd8af5a102fc6
Merged-In: I15d3514308543757459e29e8076dd8af5a102fc6
(cherry picked from commit dc22752961ead2748e9338143f8874fd64ca0446)
diff --git a/common/Android.bp b/common/Android.bp
index fe0de1f..44180e3 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -270,8 +270,8 @@
     ],
 }
 
-cc_library_static {
-    name: "libneuralnetworks_common_cl",
+cc_defaults {
+    name: "libneuralnetworks_common_cl_defaults",
     defaults: [
         "neuralnetworks_cl_defaults",
         "neuralnetworks_defaults",
@@ -324,6 +324,72 @@
     ],
 }
 
+cc_library_static {
+    name: "libneuralnetworks_common_cl",
+    defaults: ["libneuralnetworks_common_cl_defaults"],
+}
+
+cc_library_static {
+    name: "libneuralnetworks_common_cl_cpu",
+    defaults: ["libneuralnetworks_common_cl_defaults"],
+    sdk_version: "", // Override neuralnetworks_cl_defaults
+    min_sdk_version: "",
+    header_libs: [
+        "gemmlowp_headers",
+        "libeigen",
+        "libruy_headers",
+        "libtextclassifier_hash_headers",
+        "philox_random_headers",
+        "tensorflow_headers",
+    ],
+    whole_static_libs: [
+        "libarect",
+        "libtflite_kernel_utils",
+        "neuralnetworks_types_cl",
+        "philox_random",
+    ],
+    static_libs: [
+        "libcrypto_static",
+        "libtextclassifier_hash_static",
+    ],
+    srcs: [
+        "QuantUtils.cpp",
+        "operations/ArgMinMax.cpp",
+        "operations/BidirectionalSequenceLSTM.cpp",
+        "operations/Cast.cpp",
+        "operations/EmbeddingLookup.cpp",
+        "operations/ExpandDims.cpp",
+        "operations/GroupedConv2D.cpp",
+        "operations/HashtableLookup.cpp",
+        "operations/LSHProjection.cpp",
+        "operations/LSTM.cpp",
+        "operations/MaximumMinimum.cpp",
+        "operations/Multinomial.cpp",
+        "operations/Pow.cpp",
+        "operations/QuantizedLSTM.cpp",
+        "operations/RNN.cpp",
+        "operations/Reshape.cpp",
+        "operations/SVDF.cpp",
+        "operations/SimpleMath.cpp",
+        "operations/Split.cpp",
+        "operations/Tile.cpp",
+    ],
+    cflags: [
+        "-DNAMESPACE_FOR_HASH_FUNCTIONS=farmhash",
+        "-DNN_COMPATIBILITY_LIBRARY_BUILD",
+        "-DNN_INCLUDE_CPU_IMPLEMENTATION",
+        "-DTF_LITE_DISABLE_X86_NEON",
+        "-Wno-array-bounds",
+        "-Wno-extern-c-compat",
+        "-Wno-invalid-partial-specialization",
+        "-Wno-sign-compare",
+        "-Wno-unused-local-typedef",
+        "-Wno-unused-parameter",
+        "-Wno-unused-private-field",
+        "-Wno-unused-variable",
+    ],
+}
+
 cc_defaults {
     name: "neuralnetworks_utils_defaults",
     // b/146324523, NNAPI host build capability