Adding New Experimental Op Files for Densify

Adding Densify operation .cpp and .h for converting sparse
tensor metadata into a dense operand. Adding
ANEURALNETWORKS_DENSIFY operation code. Creating
NeuralNetworksExperimentalFeatures.h for experimental
operation code. Modifying files to allow experimental
features.

Bug: 152069780
Test: mma
Change-Id: I18f46e6af904eca6848a3295def115374dd4caf1
diff --git a/common/Android.bp b/common/Android.bp
index b28f1fb..b02e500 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -36,6 +36,7 @@
         "operations/Comparisons.cpp",
         "operations/Concatenation.cpp",
         "operations/Conv2D.cpp",
+        "operations/Densify.cpp",
         "operations/DepthwiseConv2D.cpp",
         "operations/Dequantize.cpp",
         "operations/Elementwise.cpp",
@@ -154,8 +155,8 @@
     ],
 }
 
-cc_library_static {
-    name: "libneuralnetworks_common",
+cc_defaults {
+    name: "libneuralnetworks_common_defaults",
     defaults: [
         "neuralnetworks_defaults",
         "neuralnetworks_operations",
@@ -283,6 +284,17 @@
     ],
 }
 
+cc_library_static {
+    name: "libneuralnetworks_common",
+    defaults: ["libneuralnetworks_common_defaults"],
+}
+
+cc_library_static {
+    name: "libneuralnetworks_common_experimental",
+    defaults: ["libneuralnetworks_common_defaults"],
+    cflags: ["-DNN_EXPERIMENTAL_FEATURE"],
+}
+
 cc_defaults {
     name: "neuralnetworks_cl_defaults",
     host_supported: false,