Add cc_preprocess_no_configuration modules

This is intended to replace the cc_object modules in external/cronet,
which are only used for the c preprocessor. However, they have java
modules that consume their result, so they have a dependency from the
common arch to the first arch. This only worked because of the 1-variant
fallback, which we're trying to remove, so add an archless module that
runs clang that they can use.

Bug: 372091092
Test: go test
Change-Id: I4fff3eabb7e31d2888b6e70c39310113acf5590e
diff --git a/cc/cc_preprocess_no_configuration_test.go b/cc/cc_preprocess_no_configuration_test.go
new file mode 100644
index 0000000..43e726d
--- /dev/null
+++ b/cc/cc_preprocess_no_configuration_test.go
@@ -0,0 +1,40 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package cc
+
+import (
+	"android/soong/android"
+	"testing"
+)
+
+func TestCcPreprocessNoConfiguration(t *testing.T) {
+	fixture := android.GroupFixturePreparers(
+		android.PrepareForIntegrationTestWithAndroid,
+		android.FixtureRegisterWithContext(RegisterCCPreprocessNoConfiguration),
+	)
+
+	result := fixture.RunTestWithBp(t, `
+cc_preprocess_no_configuration {
+	name: "foo",
+	srcs: ["main.cc"],
+	cflags: ["-E", "-DANDROID"],
+}
+`)
+
+	foo := result.ModuleForTests("foo", "")
+	actual := foo.Rule("cc").Args["cFlags"]
+	expected := "-E -DANDROID"
+	android.AssertStringEquals(t, "cflags should be correct", expected, actual)
+}