Merge "Fix ConntrackSocketTest#testIpv4ConntrackSocket flaky"
diff --git a/Cronet/tests/apitest/src/org/chromium/net/test/CronetApiTest.java b/Cronet/tests/apitest/src/org/chromium/net/test/CronetApiTest.java
deleted file mode 100644
index 6465006..0000000
--- a/Cronet/tests/apitest/src/org/chromium/net/test/CronetApiTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * 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 org.chromium.net.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.os.Handler;
-import android.os.Looper;
-
-import androidx.annotation.NonNull;
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.chromium.net.CronetEngine;
-import org.chromium.net.CronetException;
-import org.chromium.net.UrlRequest;
-import org.chromium.net.UrlResponseInfo;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.nio.ByteBuffer;
-import java.util.Random;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executor;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(AndroidJUnit4.class)
-public class CronetApiTest {
- private static final String TAG = CronetApiTest.class.getSimpleName();
- private static final String HTTPS_PREFIX = "https://";
- private static final int TIMEOUT_MS = 12_000;
-
- private final String[] mTestDomains = {"www.google.com", "www.android.com"};
- @NonNull private CronetEngine mCronetEngine;
- @NonNull private ConnectivityManager mCm;
- @NonNull private Executor mExecutor;
-
- @Before
- public void setUp() throws Exception {
- Context context = InstrumentationRegistry.getInstrumentation().getContext();
- mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- CronetEngine.Builder builder = new CronetEngine.Builder(context);
- builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024)
- .enableHttp2(true)
- // .enableBrotli(true)
- .enableQuic(true);
- mCronetEngine = builder.build();
- mExecutor = new Handler(Looper.getMainLooper())::post;
- }
-
- private static void assertGreaterThan(String msg, int first, int second) {
- assertTrue(msg + " Excepted " + first + " to be greater than " + second, first > second);
- }
-
- private void assertHasTestableNetworks() {
- assertNotNull("This test requires a working Internet connection", mCm.getActiveNetwork());
- }
-
- private String getRandomDomain() {
- int index = (new Random()).nextInt(mTestDomains.length);
- return mTestDomains[index];
- }
-
- private static class TestUrlRequestCallback extends UrlRequest.Callback {
- private final CountDownLatch mLatch = new CountDownLatch(1);
- private final String mUrl;
-
- TestUrlRequestCallback(@NonNull String url) {
- this.mUrl = url;
- }
-
- public boolean waitForAnswer() throws InterruptedException {
- return mLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS);
- }
-
- @Override
- public void onRedirectReceived(
- UrlRequest request, UrlResponseInfo info, String newLocationUrl) {
- request.followRedirect();
- }
-
- @Override
- public void onResponseStarted(UrlRequest request, UrlResponseInfo info) {
- request.read(ByteBuffer.allocateDirect(32 * 1024));
- }
-
- @Override
- public void onReadCompleted(
- UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer) {
- byteBuffer.clear();
- request.read(byteBuffer);
- }
-
- @Override
- public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
- assertEquals(
- "Unexpected http status code from " + mUrl + ".",
- 200,
- info.getHttpStatusCode());
- assertGreaterThan(
- "Received byte from " + mUrl + " is 0.", (int) info.getReceivedByteCount(), 0);
- mLatch.countDown();
- }
-
- @Override
- public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) {
- fail(mUrl + error.getMessage());
- }
- }
-
- @Test
- public void testUrlRequestGet_CompletesSuccessfully() throws Exception {
- assertHasTestableNetworks();
- String url = HTTPS_PREFIX + getRandomDomain();
- TestUrlRequestCallback callback = new TestUrlRequestCallback(url);
- UrlRequest.Builder builder = mCronetEngine.newUrlRequestBuilder(url, callback, mExecutor);
- builder.build().start();
- assertTrue(url + " but not complete after " + TIMEOUT_MS + "ms.", callback.waitForAnswer());
- }
-}
diff --git a/Cronet/tests/apitest/Android.bp b/Cronet/tests/cts/Android.bp
similarity index 100%
rename from Cronet/tests/apitest/Android.bp
rename to Cronet/tests/cts/Android.bp
diff --git a/Cronet/tests/apitest/AndroidManifest.xml b/Cronet/tests/cts/AndroidManifest.xml
similarity index 100%
rename from Cronet/tests/apitest/AndroidManifest.xml
rename to Cronet/tests/cts/AndroidManifest.xml
diff --git a/Cronet/tests/cts/src/org/chromium/net/test/CronetUrlRequestTest.java b/Cronet/tests/cts/src/org/chromium/net/test/CronetUrlRequestTest.java
new file mode 100644
index 0000000..7dd9a9a
--- /dev/null
+++ b/Cronet/tests/cts/src/org/chromium/net/test/CronetUrlRequestTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * 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 org.chromium.net.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+
+import androidx.annotation.NonNull;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.chromium.net.CronetEngine;
+import org.chromium.net.UrlRequest;
+import org.chromium.net.UrlResponseInfo;
+import org.chromium.net.test.util.TestUrlRequestCallback;
+import org.chromium.net.test.util.TestUrlRequestCallback.ResponseStep;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Random;
+
+@RunWith(AndroidJUnit4.class)
+public class CronetUrlRequestTest {
+ private static final String TAG = CronetUrlRequestTest.class.getSimpleName();
+ private static final String HTTPS_PREFIX = "https://";
+
+ private final String[] mTestDomains = {"www.google.com", "www.android.com"};
+ @NonNull private CronetEngine mCronetEngine;
+ @NonNull private ConnectivityManager mCm;
+
+ @Before
+ public void setUp() throws Exception {
+ Context context = InstrumentationRegistry.getInstrumentation().getContext();
+ mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ CronetEngine.Builder builder = new CronetEngine.Builder(context);
+ builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024)
+ .enableHttp2(true)
+ // .enableBrotli(true)
+ .enableQuic(true);
+ mCronetEngine = builder.build();
+ }
+
+ private static void assertGreaterThan(String msg, int first, int second) {
+ assertTrue(msg + " Excepted " + first + " to be greater than " + second, first > second);
+ }
+
+ private void assertHasTestableNetworks() {
+ assertNotNull("This test requires a working Internet connection", mCm.getActiveNetwork());
+ }
+
+ private String getRandomDomain() {
+ int index = (new Random()).nextInt(mTestDomains.length);
+ return mTestDomains[index];
+ }
+
+ @Test
+ public void testUrlRequestGet_CompletesSuccessfully() throws Exception {
+ assertHasTestableNetworks();
+ String url = HTTPS_PREFIX + getRandomDomain();
+ TestUrlRequestCallback callback = new TestUrlRequestCallback();
+ UrlRequest.Builder builder = mCronetEngine.newUrlRequestBuilder(url, callback,
+ callback.getExecutor());
+ builder.build().start();
+
+ callback.expectCallback(ResponseStep.ON_SUCCEEDED);
+
+ UrlResponseInfo info = callback.mResponseInfo;
+ assertEquals("Unexpected http status code from " + url + ".", 200,
+ info.getHttpStatusCode());
+ assertGreaterThan(
+ "Received byte from " + url + " is 0.", (int) info.getReceivedByteCount(), 0);
+ }
+}
diff --git a/Cronet/tests/cts/src/org/chromium/net/test/util/TestUrlRequestCallback.java b/Cronet/tests/cts/src/org/chromium/net/test/util/TestUrlRequestCallback.java
new file mode 100644
index 0000000..3c7c001
--- /dev/null
+++ b/Cronet/tests/cts/src/org/chromium/net/test/util/TestUrlRequestCallback.java
@@ -0,0 +1,459 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 org.chromium.net.test.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import android.os.ConditionVariable;
+import android.os.StrictMode;
+
+import org.chromium.net.CallbackException;
+import org.chromium.net.CronetException;
+import org.chromium.net.InlineExecutionProhibitedException;
+import org.chromium.net.UrlRequest;
+import org.chromium.net.UrlResponseInfo;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Callback that tracks information from different callbacks and has a
+ * method to block thread until the request completes on another thread.
+ * Allows us to cancel, block request or throw an exception from an arbitrary step.
+ */
+public class TestUrlRequestCallback extends UrlRequest.Callback {
+ private static final int TIMEOUT_MS = 12_000;
+ public ArrayList<UrlResponseInfo> mRedirectResponseInfoList = new ArrayList<>();
+ public ArrayList<String> mRedirectUrlList = new ArrayList<>();
+ public UrlResponseInfo mResponseInfo;
+ public CronetException mError;
+
+ public ResponseStep mResponseStep = ResponseStep.NOTHING;
+
+ public int mRedirectCount;
+ public boolean mOnErrorCalled;
+ public boolean mOnCanceledCalled;
+
+ public int mHttpResponseDataLength;
+ public String mResponseAsString = "";
+
+ public int mReadBufferSize = 32 * 1024;
+
+ // When false, the consumer is responsible for all calls into the request
+ // that advance it.
+ private boolean mAutoAdvance = true;
+ // Whether an exception is thrown by maybeThrowCancelOrPause().
+ private boolean mCallbackExceptionThrown;
+
+ // Whether to permit calls on the network thread.
+ private boolean mAllowDirectExecutor;
+
+ // Whether to stop the executor thread after reaching a terminal method.
+ // Terminal methods are (onSucceeded, onFailed or onCancelled)
+ private boolean mBlockOnTerminalState;
+
+ // Conditionally fail on certain steps.
+ private FailureType mFailureType = FailureType.NONE;
+ private ResponseStep mFailureStep = ResponseStep.NOTHING;
+
+ // Signals when request is done either successfully or not.
+ private final ConditionVariable mDone = new ConditionVariable();
+
+ // Hangs the calling thread until a terminal method has started executing.
+ private final ConditionVariable mWaitForTerminalToStart = new ConditionVariable();
+
+ // Signaled on each step when mAutoAdvance is false.
+ private final ConditionVariable mStepBlock = new ConditionVariable();
+
+ // Executor Service for Cronet callbacks.
+ private final ExecutorService mExecutorService;
+ private Thread mExecutorThread;
+
+ // position() of ByteBuffer prior to read() call.
+ private int mBufferPositionBeforeRead;
+
+ private static class ExecutorThreadFactory implements ThreadFactory {
+ @Override
+ public Thread newThread(final Runnable r) {
+ return new Thread(new Runnable() {
+ @Override
+ public void run() {
+ StrictMode.ThreadPolicy threadPolicy = StrictMode.getThreadPolicy();
+ try {
+ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
+ .detectNetwork()
+ .penaltyLog()
+ .penaltyDeath()
+ .build());
+ r.run();
+ } finally {
+ StrictMode.setThreadPolicy(threadPolicy);
+ }
+ }
+ });
+ }
+ }
+
+ public enum ResponseStep {
+ NOTHING,
+ ON_RECEIVED_REDIRECT,
+ ON_RESPONSE_STARTED,
+ ON_READ_COMPLETED,
+ ON_SUCCEEDED,
+ ON_FAILED,
+ ON_CANCELED,
+ }
+
+ public enum FailureType {
+ NONE,
+ CANCEL_SYNC,
+ CANCEL_ASYNC,
+ // Same as above, but continues to advance the request after posting
+ // the cancellation task.
+ CANCEL_ASYNC_WITHOUT_PAUSE,
+ THROW_SYNC
+ }
+
+ private static void assertContains(String expectedSubstring, String actualString) {
+ assertNotNull(actualString);
+ assertTrue("String [" + actualString + "] doesn't contain substring [" + expectedSubstring
+ + "]", actualString.contains(expectedSubstring));
+
+ }
+
+ /**
+ * Set {@code mExecutorThread}.
+ */
+ private void fillInExecutorThread() {
+ mExecutorService.execute(new Runnable() {
+ @Override
+ public void run() {
+ mExecutorThread = Thread.currentThread();
+ }
+ });
+ }
+
+ private boolean isTerminalCallback(ResponseStep step) {
+ switch (step) {
+ case ON_SUCCEEDED:
+ case ON_CANCELED:
+ case ON_FAILED:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Create a {@link TestUrlRequestCallback} with a new single-threaded executor.
+ */
+ public TestUrlRequestCallback() {
+ this(Executors.newSingleThreadExecutor(new ExecutorThreadFactory()));
+ }
+
+ /**
+ * Create a {@link TestUrlRequestCallback} using a custom single-threaded executor.
+ */
+ public TestUrlRequestCallback(ExecutorService executorService) {
+ mExecutorService = executorService;
+ fillInExecutorThread();
+ }
+
+ /**
+ * This blocks the callback executor thread once it has reached a final state callback.
+ * In order to continue execution, this method must be called again and providing {@code false}
+ * to continue execution.
+ *
+ * @param blockOnTerminalState the state to set for the executor thread
+ */
+ public void setBlockOnTerminalState(boolean blockOnTerminalState) {
+ mBlockOnTerminalState = blockOnTerminalState;
+ if (!blockOnTerminalState) {
+ mDone.open();
+ }
+ }
+
+ public void setAutoAdvance(boolean autoAdvance) {
+ mAutoAdvance = autoAdvance;
+ }
+
+ public void setAllowDirectExecutor(boolean allowed) {
+ mAllowDirectExecutor = allowed;
+ }
+
+ public void setFailure(FailureType failureType, ResponseStep failureStep) {
+ mFailureStep = failureStep;
+ mFailureType = failureType;
+ }
+
+ /**
+ * Blocks the calling thread till callback execution is done
+ *
+ * @return true if the condition was opened, false if the call returns because of the timeout.
+ */
+ public boolean blockForDone() {
+ return mDone.block(TIMEOUT_MS);
+ }
+
+ /**
+ * Waits for a terminal callback to complete execution before failing if the callback
+ * is not the expected one
+ *
+ * @param expectedStep the expected callback step
+ */
+ public void expectCallback(ResponseStep expectedStep) {
+ if (isTerminalCallback(expectedStep)) {
+ assertTrue("Did not receive terminal callback before timeout", blockForDone());
+ }
+ assertSame(expectedStep, mResponseStep);
+ }
+
+ /**
+ * Blocks the calling thread until one of the final states has been called.
+ * This is called before the callback has finished executed.
+ */
+ public void waitForTerminalToStart() {
+ mWaitForTerminalToStart.block();
+ }
+
+ public void waitForNextStep() {
+ mStepBlock.block();
+ mStepBlock.close();
+ }
+
+ public ExecutorService getExecutor() {
+ return mExecutorService;
+ }
+
+ public void shutdownExecutor() {
+ mExecutorService.shutdown();
+ }
+
+ /**
+ * Shuts down the ExecutorService and waits until it executes all posted
+ * tasks.
+ */
+ public void shutdownExecutorAndWait() {
+ mExecutorService.shutdown();
+ try {
+ // Termination shouldn't take long. Use 1 min which should be more than enough.
+ mExecutorService.awaitTermination(1, TimeUnit.MINUTES);
+ } catch (InterruptedException e) {
+ fail("ExecutorService is interrupted while waiting for termination");
+ }
+ assertTrue(mExecutorService.isTerminated());
+ }
+
+ @Override
+ public void onRedirectReceived(
+ UrlRequest request, UrlResponseInfo info, String newLocationUrl) {
+ checkExecutorThread();
+ assertFalse(request.isDone());
+ assertTrue(mResponseStep == ResponseStep.NOTHING
+ || mResponseStep == ResponseStep.ON_RECEIVED_REDIRECT);
+ assertNull(mError);
+
+ mResponseStep = ResponseStep.ON_RECEIVED_REDIRECT;
+ mRedirectUrlList.add(newLocationUrl);
+ mRedirectResponseInfoList.add(info);
+ ++mRedirectCount;
+ if (maybeThrowCancelOrPause(request)) {
+ return;
+ }
+ request.followRedirect();
+ }
+
+ @Override
+ public void onResponseStarted(UrlRequest request, UrlResponseInfo info) {
+ checkExecutorThread();
+ assertFalse(request.isDone());
+ assertTrue(mResponseStep == ResponseStep.NOTHING
+ || mResponseStep == ResponseStep.ON_RECEIVED_REDIRECT);
+ assertNull(mError);
+
+ mResponseStep = ResponseStep.ON_RESPONSE_STARTED;
+ mResponseInfo = info;
+ if (maybeThrowCancelOrPause(request)) {
+ return;
+ }
+ startNextRead(request);
+ }
+
+ @Override
+ public void onReadCompleted(UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer) {
+ checkExecutorThread();
+ assertFalse(request.isDone());
+ assertTrue(mResponseStep == ResponseStep.ON_RESPONSE_STARTED
+ || mResponseStep == ResponseStep.ON_READ_COMPLETED);
+ assertNull(mError);
+
+ mResponseStep = ResponseStep.ON_READ_COMPLETED;
+
+ final byte[] lastDataReceivedAsBytes;
+ final int bytesRead = byteBuffer.position() - mBufferPositionBeforeRead;
+ mHttpResponseDataLength += bytesRead;
+ lastDataReceivedAsBytes = new byte[bytesRead];
+ // Rewind |byteBuffer.position()| to pre-read() position.
+ byteBuffer.position(mBufferPositionBeforeRead);
+ // This restores |byteBuffer.position()| to its value on entrance to
+ // this function.
+ byteBuffer.get(lastDataReceivedAsBytes);
+ mResponseAsString += new String(lastDataReceivedAsBytes);
+
+ if (maybeThrowCancelOrPause(request)) {
+ return;
+ }
+ startNextRead(request);
+ }
+
+ @Override
+ public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
+ checkExecutorThread();
+ assertTrue(request.isDone());
+ assertTrue(mResponseStep == ResponseStep.ON_RESPONSE_STARTED
+ || mResponseStep == ResponseStep.ON_READ_COMPLETED);
+ assertFalse(mOnErrorCalled);
+ assertFalse(mOnCanceledCalled);
+ assertNull(mError);
+
+ mResponseStep = ResponseStep.ON_SUCCEEDED;
+ mResponseInfo = info;
+ mWaitForTerminalToStart.open();
+ if (mBlockOnTerminalState) mDone.block();
+ openDone();
+ maybeThrowCancelOrPause(request);
+ }
+
+ @Override
+ public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) {
+ // If the failure is because of prohibited direct execution, the test shouldn't fail
+ // since the request already did.
+ if (error.getCause() instanceof InlineExecutionProhibitedException) {
+ mAllowDirectExecutor = true;
+ }
+ checkExecutorThread();
+ assertTrue(request.isDone());
+ // Shouldn't happen after success.
+ assertTrue(mResponseStep != ResponseStep.ON_SUCCEEDED);
+ // Should happen at most once for a single request.
+ assertFalse(mOnErrorCalled);
+ assertFalse(mOnCanceledCalled);
+ assertNull(mError);
+ if (mCallbackExceptionThrown) {
+ assertTrue(error instanceof CallbackException);
+ assertContains("Exception received from UrlRequest.Callback", error.getMessage());
+ assertNotNull(error.getCause());
+ assertTrue(error.getCause() instanceof IllegalStateException);
+ assertContains("Listener Exception.", error.getCause().getMessage());
+ }
+
+ mResponseStep = ResponseStep.ON_FAILED;
+ mOnErrorCalled = true;
+ mError = error;
+ mWaitForTerminalToStart.open();
+ if (mBlockOnTerminalState) mDone.block();
+ openDone();
+ maybeThrowCancelOrPause(request);
+ }
+
+ @Override
+ public void onCanceled(UrlRequest request, UrlResponseInfo info) {
+ checkExecutorThread();
+ assertTrue(request.isDone());
+ // Should happen at most once for a single request.
+ assertFalse(mOnCanceledCalled);
+ assertFalse(mOnErrorCalled);
+ assertNull(mError);
+
+ mResponseStep = ResponseStep.ON_CANCELED;
+ mOnCanceledCalled = true;
+ mWaitForTerminalToStart.open();
+ if (mBlockOnTerminalState) mDone.block();
+ openDone();
+ maybeThrowCancelOrPause(request);
+ }
+
+ public void startNextRead(UrlRequest request) {
+ startNextRead(request, ByteBuffer.allocateDirect(mReadBufferSize));
+ }
+
+ public void startNextRead(UrlRequest request, ByteBuffer buffer) {
+ mBufferPositionBeforeRead = buffer.position();
+ request.read(buffer);
+ }
+
+ public boolean isDone() {
+ // It's not mentioned by the Android docs, but block(0) seems to block
+ // indefinitely, so have to block for one millisecond to get state
+ // without blocking.
+ return mDone.block(1);
+ }
+
+ protected void openDone() {
+ mDone.open();
+ }
+
+ private void checkExecutorThread() {
+ if (!mAllowDirectExecutor) {
+ assertEquals(mExecutorThread, Thread.currentThread());
+ }
+ }
+
+ /**
+ * Returns {@code false} if the listener should continue to advance the
+ * request.
+ */
+ private boolean maybeThrowCancelOrPause(final UrlRequest request) {
+ checkExecutorThread();
+ if (mResponseStep != mFailureStep || mFailureType == FailureType.NONE) {
+ if (!mAutoAdvance) {
+ mStepBlock.open();
+ return true;
+ }
+ return false;
+ }
+
+ if (mFailureType == FailureType.THROW_SYNC) {
+ assertFalse(mCallbackExceptionThrown);
+ mCallbackExceptionThrown = true;
+ throw new IllegalStateException("Listener Exception.");
+ }
+ Runnable task = new Runnable() {
+ @Override
+ public void run() {
+ request.cancel();
+ }
+ };
+ if (mFailureType == FailureType.CANCEL_ASYNC
+ || mFailureType == FailureType.CANCEL_ASYNC_WITHOUT_PAUSE) {
+ getExecutor().execute(task);
+ } else {
+ task.run();
+ }
+ return mFailureType != FailureType.CANCEL_ASYNC_WITHOUT_PAUSE;
+ }
+}
diff --git a/Tethering/Android.bp b/Tethering/Android.bp
index b1bee32..829e66a 100644
--- a/Tethering/Android.bp
+++ b/Tethering/Android.bp
@@ -75,7 +75,6 @@
libs: [
"framework-tethering.impl",
],
- plugins: ["java_api_finder"],
manifest: "AndroidManifestBase.xml",
lint: { strict_updatability_linting: true },
}
diff --git a/Tethering/src/android/net/ip/IpServer.java b/Tethering/src/android/net/ip/IpServer.java
index 0a34669..8cf13d3 100644
--- a/Tethering/src/android/net/ip/IpServer.java
+++ b/Tethering/src/android/net/ip/IpServer.java
@@ -378,6 +378,11 @@
return Collections.unmodifiableList(mDhcpLeases);
}
+ /** Enable this IpServer. IpServer state machine will be tethered or localHotspot state. */
+ public void enable(final int requestedState, final TetheringRequestParcel request) {
+ sendMessage(CMD_TETHER_REQUESTED, requestedState, 0, request);
+ }
+
/** Stop this IpServer. After this is called this IpServer should not be used any more. */
public void stop() {
sendMessage(CMD_INTERFACE_DOWN);
diff --git a/Tethering/src/com/android/networkstack/tethering/Tethering.java b/Tethering/src/com/android/networkstack/tethering/Tethering.java
index c2cf92c..f0dd030 100644
--- a/Tethering/src/com/android/networkstack/tethering/Tethering.java
+++ b/Tethering/src/com/android/networkstack/tethering/Tethering.java
@@ -1001,8 +1001,7 @@
if (request != null) {
mActiveTetheringRequests.delete(type);
}
- tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED, requestedState, 0,
- request);
+ tetherState.ipServer.enable(requestedState, request);
return TETHER_ERROR_NO_ERROR;
}
@@ -1026,7 +1025,7 @@
Log.e(TAG, "Tried to untether an inactive iface :" + iface + ", ignoring");
return TETHER_ERROR_UNAVAIL_IFACE;
}
- tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_UNREQUESTED);
+ tetherState.ipServer.unwanted();
return TETHER_ERROR_NO_ERROR;
}
@@ -1087,8 +1086,6 @@
final ArrayList<TetheringInterface> errored = new ArrayList<>();
final ArrayList<Integer> lastErrors = new ArrayList<>();
- final TetheringConfiguration cfg = mConfig;
-
int downstreamTypesMask = DOWNSTREAM_NONE;
for (int i = 0; i < mTetherStates.size(); i++) {
final TetherState tetherState = mTetherStates.valueAt(i);
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
index c2c9fc4..97a255f 100644
--- a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
+++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
@@ -16,27 +16,16 @@
package android.net;
-import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
import static android.Manifest.permission.DUMP;
-import static android.Manifest.permission.MANAGE_TEST_NETWORKS;
-import static android.Manifest.permission.NETWORK_SETTINGS;
-import static android.Manifest.permission.TETHER_PRIVILEGED;
-import static android.content.pm.PackageManager.FEATURE_WIFI;
import static android.net.InetAddresses.parseNumericAddress;
-import static android.net.TetheringManager.CONNECTIVITY_SCOPE_GLOBAL;
import static android.net.TetheringManager.CONNECTIVITY_SCOPE_LOCAL;
import static android.net.TetheringManager.TETHERING_ETHERNET;
import static android.net.TetheringTester.TestDnsPacket;
import static android.net.TetheringTester.isExpectedIcmpPacket;
-import static android.net.TetheringTester.isExpectedTcpPacket;
import static android.net.TetheringTester.isExpectedUdpDnsPacket;
-import static android.net.TetheringTester.isExpectedUdpPacket;
import static android.system.OsConstants.ICMP_ECHO;
import static android.system.OsConstants.ICMP_ECHOREPLY;
import static android.system.OsConstants.IPPROTO_ICMP;
-import static android.system.OsConstants.IPPROTO_IP;
-import static android.system.OsConstants.IPPROTO_IPV6;
-import static android.system.OsConstants.IPPROTO_TCP;
import static android.system.OsConstants.IPPROTO_UDP;
import static com.android.net.module.util.ConnectivityUtils.isIPv6ULA;
@@ -44,42 +33,27 @@
import static com.android.net.module.util.IpUtils.icmpChecksum;
import static com.android.net.module.util.IpUtils.ipChecksum;
import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV4;
-import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV6;
import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ECHO_REPLY_TYPE;
import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ECHO_REQUEST_TYPE;
-import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ROUTER_ADVERTISEMENT;
import static com.android.net.module.util.NetworkStackConstants.ICMP_CHECKSUM_OFFSET;
import static com.android.net.module.util.NetworkStackConstants.IPV4_CHECKSUM_OFFSET;
import static com.android.net.module.util.NetworkStackConstants.IPV4_HEADER_MIN_LEN;
import static com.android.net.module.util.NetworkStackConstants.IPV4_LENGTH_OFFSET;
-import static com.android.net.module.util.NetworkStackConstants.TCPHDR_ACK;
-import static com.android.net.module.util.NetworkStackConstants.TCPHDR_SYN;
import static com.android.testutils.DeviceInfoUtils.KVersion;
-import static com.android.testutils.TestNetworkTrackerKt.initTestNetwork;
import static com.android.testutils.TestPermissionUtil.runAsShell;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
-import android.app.UiAutomation;
import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.EthernetManager.TetheredInterfaceCallback;
-import android.net.EthernetManager.TetheredInterfaceRequest;
-import android.net.TetheringManager.StartTetheringCallback;
-import android.net.TetheringManager.TetheringEventCallback;
import android.net.TetheringManager.TetheringRequest;
import android.net.TetheringTester.TetheredDevice;
-import android.net.cts.util.CtsNetUtils;
import android.os.Build;
-import android.os.Handler;
-import android.os.HandlerThread;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.VintfRuntimeInfo;
@@ -88,14 +62,11 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
import androidx.test.runner.AndroidJUnit4;
-import com.android.modules.utils.build.SdkLevel;
import com.android.net.module.util.BpfDump;
import com.android.net.module.util.Ipv6Utils;
-import com.android.net.module.util.PacketBuilder;
import com.android.net.module.util.Struct;
import com.android.net.module.util.bpf.Tether4Key;
import com.android.net.module.util.bpf.Tether4Value;
@@ -110,12 +81,8 @@
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
import com.android.testutils.DeviceInfoUtils;
import com.android.testutils.DumpTestUtils;
-import com.android.testutils.HandlerUtils;
import com.android.testutils.TapPacketReader;
-import com.android.testutils.TestNetworkTracker;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -126,34 +93,25 @@
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
-import java.net.SocketException;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Random;
-import java.util.Set;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@RunWith(AndroidJUnit4.class)
@MediumTest
-public class EthernetTetheringTest {
+public class EthernetTetheringTest extends EthernetTetheringTestBase {
@Rule
public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule();
private static final String TAG = EthernetTetheringTest.class.getSimpleName();
- private static final int TIMEOUT_MS = 5000;
- // Used to check if any tethering interface is available. Choose 200ms to be request timeout
- // because the average interface requested time on cuttlefish@acloud is around 10ms.
- // See TetheredInterfaceRequester.getInterface, isInterfaceForTetheringAvailable.
- private static final int AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS = 200;
- private static final int TETHER_REACHABILITY_ATTEMPTS = 20;
+
private static final int DUMP_POLLING_MAX_RETRY = 100;
private static final int DUMP_POLLING_INTERVAL_MS = 50;
// Kernel treats a confirmed UDP connection which active after two seconds as stream mode.
@@ -168,35 +126,14 @@
// Per TX UDP packet size: ethhdr (14) + iphdr (20) + udphdr (8) + payload (2) = 44 bytes.
private static final int TX_UDP_PACKET_SIZE = 44;
private static final int TX_UDP_PACKET_COUNT = 123;
- private static final long WAIT_RA_TIMEOUT_MS = 2000;
-
- private static final MacAddress TEST_MAC = MacAddress.fromString("1:2:3:4:5:6");
- private static final LinkAddress TEST_IP4_ADDR = new LinkAddress("10.0.0.1/24");
- private static final LinkAddress TEST_IP6_ADDR = new LinkAddress("2001:db8:1::101/64");
- private static final InetAddress TEST_IP4_DNS = parseNumericAddress("8.8.8.8");
- private static final InetAddress TEST_IP6_DNS = parseNumericAddress("2001:db8:1::888");
- private static final IpPrefix TEST_NAT64PREFIX = new IpPrefix("64:ff9b::/96");
- private static final Inet6Address REMOTE_NAT64_ADDR =
- (Inet6Address) parseNumericAddress("64:ff9b::808:808");
- private static final Inet6Address REMOTE_IP6_ADDR =
- (Inet6Address) parseNumericAddress("2002:db8:1::515:ca");
- private static final ByteBuffer TEST_REACHABILITY_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x55, (byte) 0xaa });
- private static final ByteBuffer EMPTY_PAYLOAD = ByteBuffer.wrap(new byte[0]);
private static final short DNS_PORT = 53;
- private static final short WINDOW = (short) 0x2000;
- private static final short URGENT_POINTER = 0;
private static final String DUMPSYS_TETHERING_RAWMAP_ARG = "bpfRawMap";
private static final String DUMPSYS_RAWMAP_ARG_STATS = "--stats";
private static final String DUMPSYS_RAWMAP_ARG_UPSTREAM4 = "--upstream4";
private static final String LINE_DELIMITER = "\\n";
- // version=6, traffic class=0x0, flowlabel=0x0;
- private static final int VERSION_TRAFFICCLASS_FLOWLABEL = 0x60000000;
- private static final short HOP_LIMIT = 0x40;
-
private static final short ICMPECHO_CODE = 0x0;
private static final short ICMPECHO_ID = 0x0;
private static final short ICMPECHO_SEQ = 0x0;
@@ -261,148 +198,42 @@
(byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04 /* Address: 1.2.3.4 */
};
- private final Context mContext = InstrumentationRegistry.getContext();
- private final EthernetManager mEm = mContext.getSystemService(EthernetManager.class);
- private final TetheringManager mTm = mContext.getSystemService(TetheringManager.class);
- private final PackageManager mPackageManager = mContext.getPackageManager();
- private final CtsNetUtils mCtsNetUtils = new CtsNetUtils(mContext);
-
- private TestNetworkInterface mDownstreamIface;
- private HandlerThread mHandlerThread;
- private Handler mHandler;
- private TapPacketReader mDownstreamReader;
- private TapPacketReader mUpstreamReader;
-
- private TetheredInterfaceRequester mTetheredInterfaceRequester;
- private MyTetheringEventCallback mTetheringEventCallback;
-
- private UiAutomation mUiAutomation =
- InstrumentationRegistry.getInstrumentation().getUiAutomation();
- private boolean mRunTests;
-
- private TestNetworkTracker mUpstreamTracker;
-
- @Before
- public void setUp() throws Exception {
- mHandlerThread = new HandlerThread(getClass().getSimpleName());
- mHandlerThread.start();
- mHandler = new Handler(mHandlerThread.getLooper());
-
- mRunTests = runAsShell(NETWORK_SETTINGS, TETHER_PRIVILEGED, () ->
- mTm.isTetheringSupported());
- assumeTrue(mRunTests);
-
- mTetheredInterfaceRequester = new TetheredInterfaceRequester(mHandler, mEm);
- }
-
- private void cleanUp() throws Exception {
- setPreferTestNetworks(false);
-
- if (mUpstreamTracker != null) {
- runAsShell(MANAGE_TEST_NETWORKS, () -> {
- mUpstreamTracker.teardown();
- mUpstreamTracker = null;
- });
- }
- if (mUpstreamReader != null) {
- TapPacketReader reader = mUpstreamReader;
- mHandler.post(() -> reader.stop());
- mUpstreamReader = null;
- }
-
- if (mDownstreamReader != null) {
- TapPacketReader reader = mDownstreamReader;
- mHandler.post(() -> reader.stop());
- mDownstreamReader = null;
- }
-
- // To avoid flaky which caused by the next test started but the previous interface is not
- // untracked from EthernetTracker yet. Just delete the test interface without explicitly
- // calling TetheringManager#stopTethering could let EthernetTracker untrack the test
- // interface from server mode before tethering stopped. Thus, awaitInterfaceUntethered
- // could not only make sure tethering is stopped but also guarantee the test interface is
- // untracked from EthernetTracker.
- maybeDeleteTestInterface();
- if (mTetheringEventCallback != null) {
- mTetheringEventCallback.awaitInterfaceUntethered();
- mTetheringEventCallback.unregister();
- mTetheringEventCallback = null;
- }
- runAsShell(NETWORK_SETTINGS, () -> mTetheredInterfaceRequester.release());
- setIncludeTestInterfaces(false);
- }
-
- @After
- public void tearDown() throws Exception {
- try {
- if (mRunTests) cleanUp();
- } finally {
- mHandlerThread.quitSafely();
- mUiAutomation.dropShellPermissionIdentity();
- }
- }
-
- private boolean isInterfaceForTetheringAvailable() throws Exception {
- // Before T, all ethernet interfaces could be used for server mode. Instead of
- // waiting timeout, just checking whether the system currently has any
- // ethernet interface is more reliable.
- if (!SdkLevel.isAtLeastT()) {
- return runAsShell(CONNECTIVITY_USE_RESTRICTED_NETWORKS, () -> mEm.isAvailable());
- }
-
- // If previous test case doesn't release tethering interface successfully, the other tests
- // after that test may be skipped as unexcepted.
- // TODO: figure out a better way to check default tethering interface existenion.
- final TetheredInterfaceRequester requester = new TetheredInterfaceRequester(mHandler, mEm);
- try {
- // Use short timeout (200ms) for requesting an existing interface, if any, because
- // it should reurn faster than requesting a new tethering interface. Using default
- // timeout (5000ms, TIMEOUT_MS) may make that total testing time is over 1 minute
- // test module timeout on internal testing.
- // TODO: if this becomes flaky, consider using default timeout (5000ms) and moving
- // this check into #setUpOnce.
- return requester.getInterface(AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS) != null;
- } catch (TimeoutException e) {
- return false;
- } finally {
- runAsShell(NETWORK_SETTINGS, () -> {
- requester.release();
- });
- }
- }
-
- private void setIncludeTestInterfaces(boolean include) {
- runAsShell(NETWORK_SETTINGS, () -> {
- mEm.setIncludeTestInterfaces(include);
- });
- }
-
- private void setPreferTestNetworks(boolean prefer) {
- runAsShell(NETWORK_SETTINGS, () -> {
- mTm.setPreferTestNetworks(prefer);
- });
- }
-
@Test
public void testVirtualEthernetAlreadyExists() throws Exception {
// This test requires manipulating packets. Skip if there is a physical Ethernet connected.
assumeFalse(isInterfaceForTetheringAvailable());
- mDownstreamIface = createTestInterface();
- // This must be done now because as soon as setIncludeTestInterfaces(true) is called, the
- // interface will be placed in client mode, which will delete the link-local address.
- // At that point NetworkInterface.getByName() will cease to work on the interface, because
- // starting in R NetworkInterface can no longer see interfaces without IP addresses.
- int mtu = getMTU(mDownstreamIface);
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- Log.d(TAG, "Including test interfaces");
- setIncludeTestInterfaces(true);
+ try {
+ downstreamIface = createTestInterface();
+ // This must be done now because as soon as setIncludeTestInterfaces(true) is called,
+ // the interface will be placed in client mode, which will delete the link-local
+ // address. At that point NetworkInterface.getByName() will cease to work on the
+ // interface, because starting in R NetworkInterface can no longer see interfaces
+ // without IP addresses.
+ int mtu = getMTU(downstreamIface);
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ Log.d(TAG, "Including test interfaces");
+ setIncludeTestInterfaces(true);
- checkVirtualEthernet(mDownstreamIface, mtu);
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
+
+ // Check virtual ethernet.
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, mtu);
+ tetheringEventCallback = enableEthernetTethering(downstreamIface.getInterfaceName(),
+ null /* any upstream */);
+ checkTetheredClientCallbacks(downstreamReader, tetheringEventCallback);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
@Test
@@ -410,17 +241,32 @@
// This test requires manipulating packets. Skip if there is a physical Ethernet connected.
assumeFalse(isInterfaceForTetheringAvailable());
- CompletableFuture<String> futureIface = mTetheredInterfaceRequester.requestInterface();
+ CompletableFuture<String> futureIface = requestTetheredInterface();
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- final String iface = futureIface.get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ try {
+ downstreamIface = createTestInterface();
- checkVirtualEthernet(mDownstreamIface, getMTU(mDownstreamIface));
+ final String iface = futureIface.get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
+
+ // Check virtual ethernet.
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, getMTU(downstreamIface));
+ tetheringEventCallback = enableEthernetTethering(downstreamIface.getInterfaceName(),
+ null /* any upstream */);
+ checkTetheredClientCallbacks(downstreamReader, tetheringEventCallback);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
@Test
@@ -429,58 +275,51 @@
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
-
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
-
- assertInvalidStaticIpv4Request(iface, null, null);
- assertInvalidStaticIpv4Request(iface, "2001:db8::1/64", "2001:db8:2::/64");
- assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", "2001:db8:2::/28");
- assertInvalidStaticIpv4Request(iface, "2001:db8:2::/28", "192.0.2.2/28");
- assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", null);
- assertInvalidStaticIpv4Request(iface, null, "192.0.2.2/28");
- assertInvalidStaticIpv4Request(iface, "192.0.2.3/27", "192.0.2.2/28");
-
- final String localAddr = "192.0.2.3/28";
- final String clientAddr = "192.0.2.2/28";
- mTetheringEventCallback = enableEthernetTethering(iface,
- requestWithStaticIpv4(localAddr, clientAddr), null /* any upstream */);
-
- mTetheringEventCallback.awaitInterfaceTethered();
- assertInterfaceHasIpAddress(iface, localAddr);
-
- byte[] client1 = MacAddress.fromString("1:2:3:4:5:6").toByteArray();
- byte[] client2 = MacAddress.fromString("a:b:c:d:e:f").toByteArray();
-
- FileDescriptor fd = mDownstreamIface.getFileDescriptor().getFileDescriptor();
- mDownstreamReader = makePacketReader(fd, getMTU(mDownstreamIface));
- TetheringTester tester = new TetheringTester(mDownstreamReader);
- DhcpResults dhcpResults = tester.runDhcp(client1);
- assertEquals(new LinkAddress(clientAddr), dhcpResults.ipAddress);
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
try {
- tester.runDhcp(client2);
- fail("Only one client should get an IP address");
- } catch (TimeoutException expected) { }
+ downstreamIface = createTestInterface();
- }
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
- private static void waitForRouterAdvertisement(TapPacketReader reader, String iface,
- long timeoutMs) {
- final long deadline = SystemClock.uptimeMillis() + timeoutMs;
- do {
- byte[] pkt = reader.popPacket(timeoutMs);
- if (isExpectedIcmpPacket(pkt, true /* hasEth */, false /* isIpv4 */,
- ICMPV6_ROUTER_ADVERTISEMENT)) {
- return;
- }
+ assertInvalidStaticIpv4Request(iface, null, null);
+ assertInvalidStaticIpv4Request(iface, "2001:db8::1/64", "2001:db8:2::/64");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", "2001:db8:2::/28");
+ assertInvalidStaticIpv4Request(iface, "2001:db8:2::/28", "192.0.2.2/28");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", null);
+ assertInvalidStaticIpv4Request(iface, null, "192.0.2.2/28");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.3/27", "192.0.2.2/28");
- timeoutMs = deadline - SystemClock.uptimeMillis();
- } while (timeoutMs > 0);
- fail("Did not receive router advertisement on " + iface + " after "
- + timeoutMs + "ms idle");
+ final String localAddr = "192.0.2.3/28";
+ final String clientAddr = "192.0.2.2/28";
+ tetheringEventCallback = enableEthernetTethering(iface,
+ requestWithStaticIpv4(localAddr, clientAddr), null /* any upstream */);
+
+ tetheringEventCallback.awaitInterfaceTethered();
+ assertInterfaceHasIpAddress(iface, localAddr);
+
+ byte[] client1 = MacAddress.fromString("1:2:3:4:5:6").toByteArray();
+ byte[] client2 = MacAddress.fromString("a:b:c:d:e:f").toByteArray();
+
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, getMTU(downstreamIface));
+ TetheringTester tester = new TetheringTester(downstreamReader);
+ DhcpResults dhcpResults = tester.runDhcp(client1);
+ assertEquals(new LinkAddress(clientAddr), dhcpResults.ipAddress);
+
+ try {
+ tester.runDhcp(client2);
+ fail("Only one client should get an IP address");
+ } catch (TimeoutException expected) { }
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
private static void expectLocalOnlyAddresses(String iface) throws Exception {
@@ -510,26 +349,36 @@
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ try {
+ downstreamIface = createTestInterface();
- final TetheringRequest request = new TetheringRequest.Builder(TETHERING_ETHERNET)
- .setConnectivityScope(CONNECTIVITY_SCOPE_LOCAL).build();
- mTetheringEventCallback = enableEthernetTethering(iface, request,
- null /* any upstream */);
- mTetheringEventCallback.awaitInterfaceLocalOnly();
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
- // makePacketReader only works after tethering is started, because until then the interface
- // does not have an IP address, and unprivileged apps cannot see interfaces without IP
- // addresses. This shouldn't be flaky because the TAP interface will buffer all packets even
- // before the reader is started.
- mDownstreamReader = makePacketReader(mDownstreamIface);
+ final TetheringRequest request = new TetheringRequest.Builder(TETHERING_ETHERNET)
+ .setConnectivityScope(CONNECTIVITY_SCOPE_LOCAL).build();
+ tetheringEventCallback = enableEthernetTethering(iface, request,
+ null /* any upstream */);
+ tetheringEventCallback.awaitInterfaceLocalOnly();
- waitForRouterAdvertisement(mDownstreamReader, iface, WAIT_RA_TIMEOUT_MS);
- expectLocalOnlyAddresses(iface);
+ // makePacketReader only works after tethering is started, because until then the
+ // interface does not have an IP address, and unprivileged apps cannot see interfaces
+ // without IP addresses. This shouldn't be flaky because the TAP interface will buffer
+ // all packets even before the reader is started.
+ downstreamReader = makePacketReader(downstreamIface);
+
+ waitForRouterAdvertisement(downstreamReader, iface, WAIT_RA_TIMEOUT_MS);
+ expectLocalOnlyAddresses(iface);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
private boolean isAdbOverNetwork() {
@@ -546,279 +395,22 @@
// from client mode to server mode. See b/160389275.
assumeFalse(isAdbOverNetwork());
- // Get an interface to use.
- final String iface = mTetheredInterfaceRequester.getInterface();
+ MyTetheringEventCallback tetheringEventCallback = null;
+ try {
+ // Get an interface to use.
+ final String iface = getTetheredInterface();
- // Enable Ethernet tethering and check that it starts.
- mTetheringEventCallback = enableEthernetTethering(iface, null /* any upstream */);
-
+ // Enable Ethernet tethering and check that it starts.
+ tetheringEventCallback = enableEthernetTethering(iface, null /* any upstream */);
+ } finally {
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
// There is nothing more we can do on a physical interface without connecting an actual
// client, which is not possible in this test.
}
- private static final class MyTetheringEventCallback implements TetheringEventCallback {
- private final TetheringManager mTm;
- private final CountDownLatch mTetheringStartedLatch = new CountDownLatch(1);
- private final CountDownLatch mTetheringStoppedLatch = new CountDownLatch(1);
- private final CountDownLatch mLocalOnlyStartedLatch = new CountDownLatch(1);
- private final CountDownLatch mLocalOnlyStoppedLatch = new CountDownLatch(1);
- private final CountDownLatch mClientConnectedLatch = new CountDownLatch(1);
- private final CountDownLatch mUpstreamLatch = new CountDownLatch(1);
- private final CountDownLatch mCallbackRegisteredLatch = new CountDownLatch(1);
- private final TetheringInterface mIface;
- private final Network mExpectedUpstream;
-
- private boolean mAcceptAnyUpstream = false;
-
- private volatile boolean mInterfaceWasTethered = false;
- private volatile boolean mInterfaceWasLocalOnly = false;
- private volatile boolean mUnregistered = false;
- private volatile Collection<TetheredClient> mClients = null;
- private volatile Network mUpstream = null;
-
- MyTetheringEventCallback(TetheringManager tm, String iface) {
- this(tm, iface, null);
- mAcceptAnyUpstream = true;
- }
-
- MyTetheringEventCallback(TetheringManager tm, String iface, Network expectedUpstream) {
- mTm = tm;
- mIface = new TetheringInterface(TETHERING_ETHERNET, iface);
- mExpectedUpstream = expectedUpstream;
- }
-
- public void unregister() {
- mTm.unregisterTetheringEventCallback(this);
- mUnregistered = true;
- }
- @Override
- public void onTetheredInterfacesChanged(List<String> interfaces) {
- fail("Should only call callback that takes a Set<TetheringInterface>");
- }
-
- @Override
- public void onTetheredInterfacesChanged(Set<TetheringInterface> interfaces) {
- // Ignore stale callbacks registered by previous test cases.
- if (mUnregistered) return;
-
- if (!mInterfaceWasTethered && interfaces.contains(mIface)) {
- // This interface is being tethered for the first time.
- Log.d(TAG, "Tethering started: " + interfaces);
- mInterfaceWasTethered = true;
- mTetheringStartedLatch.countDown();
- } else if (mInterfaceWasTethered && !interfaces.contains(mIface)) {
- Log.d(TAG, "Tethering stopped: " + interfaces);
- mTetheringStoppedLatch.countDown();
- }
- }
-
- @Override
- public void onLocalOnlyInterfacesChanged(List<String> interfaces) {
- fail("Should only call callback that takes a Set<TetheringInterface>");
- }
-
- @Override
- public void onLocalOnlyInterfacesChanged(Set<TetheringInterface> interfaces) {
- // Ignore stale callbacks registered by previous test cases.
- if (mUnregistered) return;
-
- if (!mInterfaceWasLocalOnly && interfaces.contains(mIface)) {
- // This interface is being put into local-only mode for the first time.
- Log.d(TAG, "Local-only started: " + interfaces);
- mInterfaceWasLocalOnly = true;
- mLocalOnlyStartedLatch.countDown();
- } else if (mInterfaceWasLocalOnly && !interfaces.contains(mIface)) {
- Log.d(TAG, "Local-only stopped: " + interfaces);
- mLocalOnlyStoppedLatch.countDown();
- }
- }
-
- public void awaitInterfaceTethered() throws Exception {
- assertTrue("Ethernet not tethered after " + TIMEOUT_MS + "ms",
- mTetheringStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- }
-
- public void awaitInterfaceLocalOnly() throws Exception {
- assertTrue("Ethernet not local-only after " + TIMEOUT_MS + "ms",
- mLocalOnlyStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- }
-
- // Used to check if the callback has registered. When the callback is registered,
- // onSupportedTetheringTypes is celled in onCallbackStarted(). After
- // onSupportedTetheringTypes called, drop the permission for registering callback.
- // See MyTetheringEventCallback#register, TetheringManager#onCallbackStarted.
- @Override
- public void onSupportedTetheringTypes(Set<Integer> supportedTypes) {
- // Used to check callback registered.
- mCallbackRegisteredLatch.countDown();
- }
-
- public void awaitCallbackRegistered() throws Exception {
- if (!mCallbackRegisteredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
- fail("Did not receive callback registered signal after " + TIMEOUT_MS + "ms");
- }
- }
-
- public void awaitInterfaceUntethered() throws Exception {
- // Don't block teardown if the interface was never tethered.
- // This is racy because the interface might become tethered right after this check, but
- // that can only happen in tearDown if startTethering timed out, which likely means
- // the test has already failed.
- if (!mInterfaceWasTethered && !mInterfaceWasLocalOnly) return;
-
- if (mInterfaceWasTethered) {
- assertTrue(mIface + " not untethered after " + TIMEOUT_MS + "ms",
- mTetheringStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } else if (mInterfaceWasLocalOnly) {
- assertTrue(mIface + " not untethered after " + TIMEOUT_MS + "ms",
- mLocalOnlyStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } else {
- fail(mIface + " cannot be both tethered and local-only. Update this test class.");
- }
- }
-
- @Override
- public void onError(String ifName, int error) {
- // Ignore stale callbacks registered by previous test cases.
- if (mUnregistered) return;
-
- fail("TetheringEventCallback got error:" + error + " on iface " + ifName);
- }
-
- @Override
- public void onClientsChanged(Collection<TetheredClient> clients) {
- // Ignore stale callbacks registered by previous test cases.
- if (mUnregistered) return;
-
- Log.d(TAG, "Got clients changed: " + clients);
- mClients = clients;
- if (clients.size() > 0) {
- mClientConnectedLatch.countDown();
- }
- }
-
- public Collection<TetheredClient> awaitClientConnected() throws Exception {
- assertTrue("Did not receive client connected callback after " + TIMEOUT_MS + "ms",
- mClientConnectedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- return mClients;
- }
-
- @Override
- public void onUpstreamChanged(Network network) {
- // Ignore stale callbacks registered by previous test cases.
- if (mUnregistered) return;
-
- Log.d(TAG, "Got upstream changed: " + network);
- mUpstream = network;
- if (mAcceptAnyUpstream || Objects.equals(mUpstream, mExpectedUpstream)) {
- mUpstreamLatch.countDown();
- }
- }
-
- public Network awaitUpstreamChanged(boolean throwTimeoutException) throws Exception {
- if (!mUpstreamLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
- final String errorMessage = "Did not receive upstream "
- + (mAcceptAnyUpstream ? "any" : mExpectedUpstream)
- + " callback after " + TIMEOUT_MS + "ms";
-
- if (throwTimeoutException) {
- throw new TimeoutException(errorMessage);
- } else {
- fail(errorMessage);
- }
- }
- return mUpstream;
- }
- }
-
- private MyTetheringEventCallback enableEthernetTethering(String iface,
- TetheringRequest request, Network expectedUpstream) throws Exception {
- // Enable ethernet tethering with null expectedUpstream means the test accept any upstream
- // after etherent tethering started.
- final MyTetheringEventCallback callback;
- if (expectedUpstream != null) {
- callback = new MyTetheringEventCallback(mTm, iface, expectedUpstream);
- } else {
- callback = new MyTetheringEventCallback(mTm, iface);
- }
- runAsShell(NETWORK_SETTINGS, () -> {
- mTm.registerTetheringEventCallback(mHandler::post, callback);
- // Need to hold the shell permission until callback is registered. This helps to avoid
- // the test become flaky.
- callback.awaitCallbackRegistered();
- });
- final CountDownLatch tetheringStartedLatch = new CountDownLatch(1);
- StartTetheringCallback startTetheringCallback = new StartTetheringCallback() {
- @Override
- public void onTetheringStarted() {
- Log.d(TAG, "Ethernet tethering started");
- tetheringStartedLatch.countDown();
- }
-
- @Override
- public void onTetheringFailed(int resultCode) {
- fail("Unexpectedly got onTetheringFailed");
- }
- };
- Log.d(TAG, "Starting Ethernet tethering");
- runAsShell(TETHER_PRIVILEGED, () -> {
- mTm.startTethering(request, mHandler::post /* executor */, startTetheringCallback);
- // Binder call is an async call. Need to hold the shell permission until tethering
- // started. This helps to avoid the test become flaky.
- if (!tetheringStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
- fail("Did not receive tethering started callback after " + TIMEOUT_MS + "ms");
- }
- });
-
- final int connectivityType = request.getConnectivityScope();
- switch (connectivityType) {
- case CONNECTIVITY_SCOPE_GLOBAL:
- callback.awaitInterfaceTethered();
- break;
- case CONNECTIVITY_SCOPE_LOCAL:
- callback.awaitInterfaceLocalOnly();
- break;
- default:
- fail("Unexpected connectivity type requested: " + connectivityType);
- }
-
- return callback;
- }
-
- private MyTetheringEventCallback enableEthernetTethering(String iface, Network expectedUpstream)
- throws Exception {
- return enableEthernetTethering(iface,
- new TetheringRequest.Builder(TETHERING_ETHERNET)
- .setShouldShowEntitlementUi(false).build(), expectedUpstream);
- }
-
- private int getMTU(TestNetworkInterface iface) throws SocketException {
- NetworkInterface nif = NetworkInterface.getByName(iface.getInterfaceName());
- assertNotNull("Can't get NetworkInterface object for " + iface.getInterfaceName(), nif);
- return nif.getMTU();
- }
-
- private TapPacketReader makePacketReader(final TestNetworkInterface iface) throws Exception {
- FileDescriptor fd = iface.getFileDescriptor().getFileDescriptor();
- return makePacketReader(fd, getMTU(iface));
- }
-
- private TapPacketReader makePacketReader(FileDescriptor fd, int mtu) {
- final TapPacketReader reader = new TapPacketReader(mHandler, fd, mtu);
- mHandler.post(() -> reader.start());
- HandlerUtils.waitForIdle(mHandler, TIMEOUT_MS);
- return reader;
- }
-
- private void checkVirtualEthernet(TestNetworkInterface iface, int mtu) throws Exception {
- FileDescriptor fd = iface.getFileDescriptor().getFileDescriptor();
- mDownstreamReader = makePacketReader(fd, mtu);
- mTetheringEventCallback = enableEthernetTethering(iface.getInterfaceName(),
- null /* any upstream */);
- checkTetheredClientCallbacks(mDownstreamReader);
- }
-
- private void checkTetheredClientCallbacks(TapPacketReader packetReader) throws Exception {
+ private void checkTetheredClientCallbacks(final TapPacketReader packetReader,
+ final MyTetheringEventCallback tetheringEventCallback) throws Exception {
// Create a fake client.
byte[] clientMacAddr = new byte[6];
new Random().nextBytes(clientMacAddr);
@@ -826,7 +418,7 @@
TetheringTester tester = new TetheringTester(packetReader);
DhcpResults dhcpResults = tester.runDhcp(clientMacAddr);
- final Collection<TetheredClient> clients = mTetheringEventCallback.awaitClientConnected();
+ final Collection<TetheredClient> clients = tetheringEventCallback.awaitClientConnected();
assertEquals(1, clients.size());
final TetheredClient client = clients.iterator().next();
@@ -850,54 +442,6 @@
assertTrue(msg, Math.abs(dhcpResults.leaseDuration - actualLeaseDuration) < 10);
}
- private static final class TetheredInterfaceRequester implements TetheredInterfaceCallback {
- private final Handler mHandler;
- private final EthernetManager mEm;
-
- private TetheredInterfaceRequest mRequest;
- private final CompletableFuture<String> mFuture = new CompletableFuture<>();
-
- TetheredInterfaceRequester(Handler handler, EthernetManager em) {
- mHandler = handler;
- mEm = em;
- }
-
- @Override
- public void onAvailable(String iface) {
- Log.d(TAG, "Ethernet interface available: " + iface);
- mFuture.complete(iface);
- }
-
- @Override
- public void onUnavailable() {
- mFuture.completeExceptionally(new IllegalStateException("onUnavailable received"));
- }
-
- public CompletableFuture<String> requestInterface() {
- assertNull("BUG: more than one tethered interface request", mRequest);
- Log.d(TAG, "Requesting tethered interface");
- mRequest = runAsShell(NETWORK_SETTINGS, () ->
- mEm.requestTetheredInterface(mHandler::post, this));
- return mFuture;
- }
-
- public String getInterface(int timeout) throws Exception {
- return requestInterface().get(timeout, TimeUnit.MILLISECONDS);
- }
-
- public String getInterface() throws Exception {
- return getInterface(TIMEOUT_MS);
- }
-
- public void release() {
- if (mRequest != null) {
- mFuture.obtrudeException(new IllegalStateException("Request already released"));
- mRequest.release();
- mRequest = null;
- }
- }
- }
-
public void assertLinkAddressMatches(LinkAddress l1, LinkAddress l2) {
// Check all fields except the deprecation and expiry times.
String msg = String.format("LinkAddresses do not match. expected: %s actual: %s", l1, l2);
@@ -936,35 +480,6 @@
+ nif.getInterfaceAddresses());
}
- private TestNetworkInterface createTestInterface() throws Exception {
- TestNetworkManager tnm = runAsShell(MANAGE_TEST_NETWORKS, () ->
- mContext.getSystemService(TestNetworkManager.class));
- TestNetworkInterface iface = runAsShell(MANAGE_TEST_NETWORKS, () ->
- tnm.createTapInterface());
- Log.d(TAG, "Created test interface " + iface.getInterfaceName());
- return iface;
- }
-
- private void maybeDeleteTestInterface() throws Exception {
- if (mDownstreamIface != null) {
- mDownstreamIface.getFileDescriptor().close();
- Log.d(TAG, "Deleted test interface " + mDownstreamIface.getInterfaceName());
- mDownstreamIface = null;
- }
- }
-
- private TestNetworkTracker createTestUpstream(final List<LinkAddress> addresses,
- final List<InetAddress> dnses) throws Exception {
- setPreferTestNetworks(true);
-
- final LinkProperties lp = new LinkProperties();
- lp.setLinkAddresses(addresses);
- lp.setDnsServers(dnses);
- lp.setNat64Prefix(TEST_NAT64PREFIX);
-
- return runAsShell(MANAGE_TEST_NETWORKS, () -> initTestNetwork(mContext, lp, TIMEOUT_MS));
- }
-
@Test
public void testIcmpv6Echo() throws Exception {
runPing6Test(initTetheringTester(toList(TEST_IP4_ADDR, TEST_IP6_ADDR),
@@ -992,140 +507,6 @@
});
}
- // Test network topology:
- //
- // public network (rawip) private network
- // | UE |
- // +------------+ V +------------+------------+ V +------------+
- // | Sever +---------+ Upstream | Downstream +---------+ Client |
- // +------------+ +------------+------------+ +------------+
- // remote ip public ip private ip
- // 8.8.8.8:443 <Upstream ip>:9876 <TetheredDevice ip>:9876
- //
- private static final Inet4Address REMOTE_IP4_ADDR =
- (Inet4Address) parseNumericAddress("8.8.8.8");
- // Used by public port and private port. Assume port 9876 has not been used yet before the
- // testing that public port and private port are the same in the testing. Note that NAT port
- // forwarding could be different between private port and public port.
- // TODO: move to the start of test class.
- private static final short LOCAL_PORT = 9876;
- private static final short REMOTE_PORT = 433;
- private static final byte TYPE_OF_SERVICE = 0;
- private static final short ID = 27149;
- private static final short FLAGS_AND_FRAGMENT_OFFSET = (short) 0x4000; // flags=DF, offset=0
- private static final byte TIME_TO_LIVE = (byte) 0x40;
- private static final ByteBuffer RX_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x12, (byte) 0x34 });
- private static final ByteBuffer TX_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x56, (byte) 0x78 });
-
- private short getEthType(@NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp) {
- return isAddressIpv4(srcIp, dstIp) ? (short) ETHER_TYPE_IPV4 : (short) ETHER_TYPE_IPV6;
- }
-
- private int getIpProto(@NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp) {
- return isAddressIpv4(srcIp, dstIp) ? IPPROTO_IP : IPPROTO_IPV6;
- }
-
- @NonNull
- private ByteBuffer buildUdpPacket(
- @Nullable final MacAddress srcMac, @Nullable final MacAddress dstMac,
- @NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp,
- short srcPort, short dstPort, @Nullable final ByteBuffer payload)
- throws Exception {
- final int ipProto = getIpProto(srcIp, dstIp);
- final boolean hasEther = (srcMac != null && dstMac != null);
- final int payloadLen = (payload == null) ? 0 : payload.limit();
- final ByteBuffer buffer = PacketBuilder.allocate(hasEther, ipProto, IPPROTO_UDP,
- payloadLen);
- final PacketBuilder packetBuilder = new PacketBuilder(buffer);
-
- // [1] Ethernet header
- if (hasEther) {
- packetBuilder.writeL2Header(srcMac, dstMac, getEthType(srcIp, dstIp));
- }
-
- // [2] IP header
- if (ipProto == IPPROTO_IP) {
- packetBuilder.writeIpv4Header(TYPE_OF_SERVICE, ID, FLAGS_AND_FRAGMENT_OFFSET,
- TIME_TO_LIVE, (byte) IPPROTO_UDP, (Inet4Address) srcIp, (Inet4Address) dstIp);
- } else {
- packetBuilder.writeIpv6Header(VERSION_TRAFFICCLASS_FLOWLABEL, (byte) IPPROTO_UDP,
- HOP_LIMIT, (Inet6Address) srcIp, (Inet6Address) dstIp);
- }
-
- // [3] UDP header
- packetBuilder.writeUdpHeader(srcPort, dstPort);
-
- // [4] Payload
- if (payload != null) {
- buffer.put(payload);
- // in case data might be reused by caller, restore the position and
- // limit of bytebuffer.
- payload.clear();
- }
-
- return packetBuilder.finalizePacket();
- }
-
- @NonNull
- private ByteBuffer buildUdpPacket(@NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp, short srcPort, short dstPort,
- @Nullable final ByteBuffer payload) throws Exception {
- return buildUdpPacket(null /* srcMac */, null /* dstMac */, srcIp, dstIp, srcPort,
- dstPort, payload);
- }
-
- private boolean isAddressIpv4(@NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp) {
- if (srcIp instanceof Inet4Address && dstIp instanceof Inet4Address) return true;
- if (srcIp instanceof Inet6Address && dstIp instanceof Inet6Address) return false;
-
- fail("Unsupported conditions: srcIp " + srcIp + ", dstIp " + dstIp);
- return false; // unreachable
- }
-
- private void sendDownloadPacketUdp(@NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp, @NonNull final TetheringTester tester,
- boolean is6To4) throws Exception {
- if (is6To4) {
- assertFalse("CLAT download test must sends IPv6 packet", isAddressIpv4(srcIp, dstIp));
- }
-
- // Expected received UDP packet IP protocol. While testing CLAT (is6To4 = true), the packet
- // on downstream must be IPv4. Otherwise, the IP protocol of test packet is the same on
- // both downstream and upstream.
- final boolean isIpv4 = is6To4 ? true : isAddressIpv4(srcIp, dstIp);
-
- final ByteBuffer testPacket = buildUdpPacket(srcIp, dstIp, REMOTE_PORT /* srcPort */,
- LOCAL_PORT /* dstPort */, RX_PAYLOAD);
- tester.verifyDownload(testPacket, p -> {
- Log.d(TAG, "Packet in downstream: " + dumpHexString(p));
- return isExpectedUdpPacket(p, true /* hasEther */, isIpv4, RX_PAYLOAD);
- });
- }
-
- private void sendUploadPacketUdp(@NonNull final MacAddress srcMac,
- @NonNull final MacAddress dstMac, @NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp, @NonNull final TetheringTester tester,
- boolean is4To6) throws Exception {
- if (is4To6) {
- assertTrue("CLAT upload test must sends IPv4 packet", isAddressIpv4(srcIp, dstIp));
- }
-
- // Expected received UDP packet IP protocol. While testing CLAT (is4To6 = true), the packet
- // on upstream must be IPv6. Otherwise, the IP protocol of test packet is the same on
- // both downstream and upstream.
- final boolean isIpv4 = is4To6 ? false : isAddressIpv4(srcIp, dstIp);
-
- final ByteBuffer testPacket = buildUdpPacket(srcMac, dstMac, srcIp, dstIp,
- LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */, TX_PAYLOAD);
- tester.verifyUpload(testPacket, p -> {
- Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
- return isExpectedUdpPacket(p, false /* hasEther */, isIpv4, TX_PAYLOAD);
- });
- }
-
@Test
public void testTetherUdpV6() throws Exception {
final TetheringTester tester = initTetheringTester(toList(TEST_IP6_ADDR),
@@ -1138,37 +519,16 @@
// TODO: test BPF offload maps {rule, stats}.
}
- // TODO: remove ipv4 verification (is4To6 = false) once upstream connected notification race is
- // fixed. See #runUdp4Test.
+ // Test network topology:
//
- // This function sends a probe packet to downstream interface and exam the result from upstream
- // interface to make sure ipv4 tethering is ready. Return the entire packet which received from
- // upstream interface.
- @NonNull
- private byte[] probeV4TetheringConnectivity(TetheringTester tester, TetheredDevice tethered,
- boolean is4To6) throws Exception {
- final ByteBuffer probePacket = buildUdpPacket(tethered.macAddr,
- tethered.routerMacAddr, tethered.ipv4Addr /* srcIp */,
- REMOTE_IP4_ADDR /* dstIp */, LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */,
- TEST_REACHABILITY_PAYLOAD);
-
- // Send a UDP packet from client and check the packet can be found on upstream interface.
- for (int i = 0; i < TETHER_REACHABILITY_ATTEMPTS; i++) {
- byte[] expectedPacket = tester.testUpload(probePacket, p -> {
- Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
- // If is4To6 is true, the ipv4 probe packet would be translated to ipv6 by Clat and
- // would see this translated ipv6 packet in upstream interface.
- return isExpectedUdpPacket(p, false /* hasEther */, !is4To6 /* isIpv4 */,
- TEST_REACHABILITY_PAYLOAD);
- });
- if (expectedPacket != null) return expectedPacket;
- }
-
- fail("Can't verify " + (is4To6 ? "ipv4 to ipv6" : "ipv4") + " tethering connectivity after "
- + TETHER_REACHABILITY_ATTEMPTS + " attempts");
- return null;
- }
-
+ // public network (rawip) private network
+ // | UE |
+ // +------------+ V +------------+------------+ V +------------+
+ // | Sever +---------+ Upstream | Downstream +---------+ Client |
+ // +------------+ +------------+------------+ +------------+
+ // remote ip public ip private ip
+ // 8.8.8.8:443 <Upstream ip>:9876 <TetheredDevice ip>:9876
+ //
private void runUdp4Test(boolean verifyBpf) throws Exception {
final TetheringTester tester = initTetheringTester(toList(TEST_IP4_ADDR),
toList(TEST_IP4_DNS));
@@ -1266,96 +626,6 @@
}
}
- // TODO: remove triggering upstream reselection once test network can replace selected upstream
- // network in Tethering module.
- private void maybeRetryTestedUpstreamChanged(final Network expectedUpstream,
- final TimeoutException fallbackException) throws Exception {
- // Fall back original exception because no way to reselect if there is no WIFI feature.
- assertTrue(fallbackException.toString(), mPackageManager.hasSystemFeature(FEATURE_WIFI));
-
- // Try to toggle wifi network, if any, to reselect upstream network via default network
- // switching. Because test network has higher priority than internet network, this can
- // help selecting test network to be upstream network for testing. This tries to avoid
- // the flaky upstream selection under multinetwork environment. Internet and test network
- // upstream changed event order is not guaranteed. Once tethering selects non-test
- // upstream {wifi, ..}, test network won't be selected anymore. If too many test cases
- // trigger the reselection, the total test time may over test suite 1 minmute timeout.
- // Probably need to disable/restore all internet networks in a common place of test
- // process. Currently, EthernetTetheringTest is part of CTS test which needs wifi network
- // connection if device has wifi feature. CtsNetUtils#toggleWifi() checks wifi connection
- // during the toggling process.
- // See Tethering#chooseUpstreamType, CtsNetUtils#toggleWifi.
- // TODO: toggle cellular network if the device has no WIFI feature.
- Log.d(TAG, "Toggle WIFI to retry upstream selection");
- mCtsNetUtils.toggleWifi();
-
- // Wait for expected upstream.
- final CompletableFuture<Network> future = new CompletableFuture<>();
- final TetheringEventCallback callback = new TetheringEventCallback() {
- @Override
- public void onUpstreamChanged(Network network) {
- Log.d(TAG, "Got upstream changed: " + network);
- if (Objects.equals(expectedUpstream, network)) {
- future.complete(network);
- }
- }
- };
- try {
- mTm.registerTetheringEventCallback(mHandler::post, callback);
- assertEquals("onUpstreamChanged for unexpected network", expectedUpstream,
- future.get(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } catch (TimeoutException e) {
- throw new AssertionError("Did not receive upstream " + expectedUpstream
- + " callback after " + TIMEOUT_MS + "ms");
- } finally {
- mTm.unregisterTetheringEventCallback(callback);
- }
- }
-
- private TetheringTester initTetheringTester(List<LinkAddress> upstreamAddresses,
- List<InetAddress> upstreamDnses) throws Exception {
- assumeFalse(isInterfaceForTetheringAvailable());
-
- // MyTetheringEventCallback currently only support await first available upstream. Tethering
- // may select internet network as upstream if test network is not available and not be
- // preferred yet. Create test upstream network before enable tethering.
- mUpstreamTracker = createTestUpstream(upstreamAddresses, upstreamDnses);
-
- mDownstreamIface = createTestInterface();
- setIncludeTestInterfaces(true);
-
- // Make sure EtherentTracker use "mDownstreamIface" as server mode interface.
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), mTetheredInterfaceRequester.getInterface());
-
- mTetheringEventCallback = enableEthernetTethering(mDownstreamIface.getInterfaceName(),
- mUpstreamTracker.getNetwork());
-
- try {
- assertEquals("onUpstreamChanged for test network", mUpstreamTracker.getNetwork(),
- mTetheringEventCallback.awaitUpstreamChanged(
- true /* throwTimeoutException */));
- } catch (TimeoutException e) {
- // Due to race condition inside tethering module, test network may not be selected as
- // tethering upstream. Force tethering retry upstream if possible. If it is not
- // possible to retry, fail the test with the original timeout exception.
- maybeRetryTestedUpstreamChanged(mUpstreamTracker.getNetwork(), e);
- }
-
- mDownstreamReader = makePacketReader(mDownstreamIface);
- mUpstreamReader = makePacketReader(mUpstreamTracker.getTestIface());
-
- final ConnectivityManager cm = mContext.getSystemService(ConnectivityManager.class);
- // Currently tethering don't have API to tell when ipv6 tethering is available. Thus, make
- // sure tethering already have ipv6 connectivity before testing.
- if (cm.getLinkProperties(mUpstreamTracker.getNetwork()).hasGlobalIpv6Address()) {
- waitForRouterAdvertisement(mDownstreamReader, mDownstreamIface.getInterfaceName(),
- WAIT_RA_TIMEOUT_MS);
- }
-
- return new TetheringTester(mDownstreamReader, mUpstreamReader);
- }
-
private static boolean isUdpOffloadSupportedByKernel(final String kernelVersion) {
final KVersion current = DeviceInfoUtils.getMajorMinorSubminorVersion(kernelVersion);
return current.isInRange(new KVersion(4, 14, 222), new KVersion(4, 19, 0))
@@ -1758,146 +1028,6 @@
(short) udpHeader.srcPort, (short) dnsQuery.getHeader().getId(), tester);
}
- @NonNull
- private ByteBuffer buildTcpPacket(
- @Nullable final MacAddress srcMac, @Nullable final MacAddress dstMac,
- @NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp,
- short srcPort, short dstPort, final short seq, final short ack,
- final byte tcpFlags, @NonNull final ByteBuffer payload) throws Exception {
- final int ipProto = getIpProto(srcIp, dstIp);
- final boolean hasEther = (srcMac != null && dstMac != null);
- final ByteBuffer buffer = PacketBuilder.allocate(hasEther, ipProto, IPPROTO_TCP,
- payload.limit());
- final PacketBuilder packetBuilder = new PacketBuilder(buffer);
-
- // [1] Ethernet header
- if (hasEther) {
- packetBuilder.writeL2Header(srcMac, dstMac, getEthType(srcIp, dstIp));
- }
-
- // [2] IP header
- if (ipProto == IPPROTO_IP) {
- packetBuilder.writeIpv4Header(TYPE_OF_SERVICE, ID, FLAGS_AND_FRAGMENT_OFFSET,
- TIME_TO_LIVE, (byte) IPPROTO_TCP, (Inet4Address) srcIp, (Inet4Address) dstIp);
- } else {
- packetBuilder.writeIpv6Header(VERSION_TRAFFICCLASS_FLOWLABEL, (byte) IPPROTO_TCP,
- HOP_LIMIT, (Inet6Address) srcIp, (Inet6Address) dstIp);
- }
-
- // [3] TCP header
- packetBuilder.writeTcpHeader(srcPort, dstPort, seq, ack, tcpFlags, WINDOW, URGENT_POINTER);
-
- // [4] Payload
- buffer.put(payload);
- // in case data might be reused by caller, restore the position and
- // limit of bytebuffer.
- payload.clear();
-
- return packetBuilder.finalizePacket();
- }
-
- private void sendDownloadPacketTcp(@NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp, short seq, short ack, byte tcpFlags,
- @NonNull final ByteBuffer payload, @NonNull final TetheringTester tester,
- boolean is6To4) throws Exception {
- if (is6To4) {
- assertFalse("CLAT download test must sends IPv6 packet", isAddressIpv4(srcIp, dstIp));
- }
-
- // Expected received TCP packet IP protocol. While testing CLAT (is6To4 = true), the packet
- // on downstream must be IPv4. Otherwise, the IP protocol of test packet is the same on
- // both downstream and upstream.
- final boolean isIpv4 = is6To4 ? true : isAddressIpv4(srcIp, dstIp);
-
- final ByteBuffer testPacket = buildTcpPacket(null /* srcMac */, null /* dstMac */,
- srcIp, dstIp, REMOTE_PORT /* srcPort */, LOCAL_PORT /* dstPort */, seq, ack,
- tcpFlags, payload);
- tester.verifyDownload(testPacket, p -> {
- Log.d(TAG, "Packet in downstream: " + dumpHexString(p));
-
- return isExpectedTcpPacket(p, true /* hasEther */, isIpv4, seq, payload);
- });
- }
-
- private void sendUploadPacketTcp(@NonNull final MacAddress srcMac,
- @NonNull final MacAddress dstMac, @NonNull final InetAddress srcIp,
- @NonNull final InetAddress dstIp, short seq, short ack, byte tcpFlags,
- @NonNull final ByteBuffer payload, @NonNull final TetheringTester tester,
- boolean is4To6) throws Exception {
- if (is4To6) {
- assertTrue("CLAT upload test must sends IPv4 packet", isAddressIpv4(srcIp, dstIp));
- }
-
- // Expected received TCP packet IP protocol. While testing CLAT (is4To6 = true), the packet
- // on upstream must be IPv6. Otherwise, the IP protocol of test packet is the same on
- // both downstream and upstream.
- final boolean isIpv4 = is4To6 ? false : isAddressIpv4(srcIp, dstIp);
-
- final ByteBuffer testPacket = buildTcpPacket(srcMac, dstMac, srcIp, dstIp,
- LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */, seq, ack, tcpFlags,
- payload);
- tester.verifyUpload(testPacket, p -> {
- Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
-
- return isExpectedTcpPacket(p, false /* hasEther */, isIpv4, seq, payload);
- });
- }
-
- void runTcpTest(
- @NonNull final MacAddress uploadSrcMac, @NonNull final MacAddress uploadDstMac,
- @NonNull final InetAddress uploadSrcIp, @NonNull final InetAddress uploadDstIp,
- @NonNull final InetAddress downloadSrcIp, @NonNull final InetAddress downloadDstIp,
- @NonNull final TetheringTester tester, boolean isClat) throws Exception {
- // Three way handshake and data transfer.
- //
- // Server (base seq = 2000) Client (base seq = 1000)
- // | |
- // | [1] [SYN] SEQ = 1000 |
- // |<---------------------------------------------------------| -
- // | | ^
- // | [2] [SYN + ACK] SEQ = 2000, ACK = 1000+1 | |
- // |--------------------------------------------------------->| three way handshake
- // | | |
- // | [3] [ACK] SEQ = 1001, ACK = 2000+1 | v
- // |<---------------------------------------------------------| -
- // | | ^
- // | [4] [ACK] SEQ = 1001, ACK = 2001, 2 byte payload | |
- // |<---------------------------------------------------------| data transfer
- // | | |
- // | [5] [ACK] SEQ = 2001, ACK = 1001+2, 2 byte payload | v
- // |--------------------------------------------------------->| -
- // | |
- //
-
- // This test can only verify the packets are transferred end to end but TCP state.
- // TODO: verify TCP state change via /proc/net/nf_conntrack or netlink conntrack event.
- // [1] [UPLOAD] [SYN]: SEQ = 1000
- sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
- (short) 1000 /* seq */, (short) 0 /* ack */, TCPHDR_SYN, EMPTY_PAYLOAD,
- tester, isClat /* is4To6 */);
-
- // [2] [DONWLOAD] [SYN + ACK]: SEQ = 2000, ACK = 1001
- sendDownloadPacketTcp(downloadSrcIp, downloadDstIp, (short) 2000 /* seq */,
- (short) 1001 /* ack */, (byte) ((TCPHDR_SYN | TCPHDR_ACK) & 0xff), EMPTY_PAYLOAD,
- tester, isClat /* is6To4 */);
-
- // [3] [UPLOAD] [ACK]: SEQ = 1001, ACK = 2001
- sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
- (short) 1001 /* seq */, (short) 2001 /* ack */, TCPHDR_ACK, EMPTY_PAYLOAD, tester,
- isClat /* is4To6 */);
-
- // [4] [UPLOAD] [ACK]: SEQ = 1001, ACK = 2001, 2 byte payload
- sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
- (short) 1001 /* seq */, (short) 2001 /* ack */, TCPHDR_ACK, TX_PAYLOAD,
- tester, isClat /* is4To6 */);
-
- // [5] [DONWLOAD] [ACK]: SEQ = 2001, ACK = 1003, 2 byte payload
- sendDownloadPacketTcp(downloadSrcIp, downloadDstIp, (short) 2001 /* seq */,
- (short) 1003 /* ack */, TCPHDR_ACK, RX_PAYLOAD, tester, isClat /* is6To4 */);
-
- // TODO: test BPF offload maps.
- }
-
@Test
public void testTetherTcpV4() throws Exception {
final TetheringTester tester = initTetheringTester(toList(TEST_IP4_ADDR),
@@ -1943,8 +1073,4 @@
REMOTE_NAT64_ADDR /* downloadSrcIp */, clatIp6 /* downloadDstIp */,
tester, true /* isClat */);
}
-
- private <T> List<T> toList(T... array) {
- return Arrays.asList(array);
- }
}
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java
new file mode 100644
index 0000000..7685981
--- /dev/null
+++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java
@@ -0,0 +1,1019 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 android.net;
+
+import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
+import static android.Manifest.permission.MANAGE_TEST_NETWORKS;
+import static android.Manifest.permission.NETWORK_SETTINGS;
+import static android.Manifest.permission.TETHER_PRIVILEGED;
+import static android.content.pm.PackageManager.FEATURE_WIFI;
+import static android.net.InetAddresses.parseNumericAddress;
+import static android.net.TetheringManager.CONNECTIVITY_SCOPE_GLOBAL;
+import static android.net.TetheringManager.CONNECTIVITY_SCOPE_LOCAL;
+import static android.net.TetheringManager.TETHERING_ETHERNET;
+import static android.net.TetheringTester.isExpectedIcmpPacket;
+import static android.net.TetheringTester.isExpectedTcpPacket;
+import static android.net.TetheringTester.isExpectedUdpPacket;
+import static android.system.OsConstants.IPPROTO_IP;
+import static android.system.OsConstants.IPPROTO_IPV6;
+import static android.system.OsConstants.IPPROTO_TCP;
+import static android.system.OsConstants.IPPROTO_UDP;
+
+import static com.android.net.module.util.HexDump.dumpHexString;
+import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV4;
+import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV6;
+import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ROUTER_ADVERTISEMENT;
+import static com.android.net.module.util.NetworkStackConstants.TCPHDR_ACK;
+import static com.android.net.module.util.NetworkStackConstants.TCPHDR_SYN;
+import static com.android.testutils.TestNetworkTrackerKt.initTestNetwork;
+import static com.android.testutils.TestPermissionUtil.runAsShell;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
+
+import android.app.UiAutomation;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.net.EthernetManager.TetheredInterfaceCallback;
+import android.net.EthernetManager.TetheredInterfaceRequest;
+import android.net.TetheringManager.StartTetheringCallback;
+import android.net.TetheringManager.TetheringEventCallback;
+import android.net.TetheringManager.TetheringRequest;
+import android.net.TetheringTester.TetheredDevice;
+import android.net.cts.util.CtsNetUtils;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.SystemClock;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.modules.utils.build.SdkLevel;
+import com.android.net.module.util.PacketBuilder;
+import com.android.testutils.HandlerUtils;
+import com.android.testutils.TapPacketReader;
+import com.android.testutils.TestNetworkTracker;
+
+import org.junit.After;
+import org.junit.Before;
+
+import java.io.FileDescriptor;
+import java.net.Inet4Address;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * TODO: Common variables or methods shared between CtsEthernetTetheringTest and
+ * MtsEthernetTetheringTest.
+ */
+public abstract class EthernetTetheringTestBase {
+ private static final String TAG = EthernetTetheringTestBase.class.getSimpleName();
+
+ protected static final int TIMEOUT_MS = 5000;
+ // Used to check if any tethering interface is available. Choose 200ms to be request timeout
+ // because the average interface requested time on cuttlefish@acloud is around 10ms.
+ // See TetheredInterfaceRequester.getInterface, isInterfaceForTetheringAvailable.
+ private static final int AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS = 200;
+ private static final int TETHER_REACHABILITY_ATTEMPTS = 20;
+ protected static final long WAIT_RA_TIMEOUT_MS = 2000;
+
+ // Address and NAT prefix definition.
+ protected static final MacAddress TEST_MAC = MacAddress.fromString("1:2:3:4:5:6");
+ protected static final LinkAddress TEST_IP4_ADDR = new LinkAddress("10.0.0.1/24");
+ protected static final LinkAddress TEST_IP6_ADDR = new LinkAddress("2001:db8:1::101/64");
+ protected static final InetAddress TEST_IP4_DNS = parseNumericAddress("8.8.8.8");
+ protected static final InetAddress TEST_IP6_DNS = parseNumericAddress("2001:db8:1::888");
+
+ protected static final Inet4Address REMOTE_IP4_ADDR =
+ (Inet4Address) parseNumericAddress("8.8.8.8");
+ protected static final Inet6Address REMOTE_IP6_ADDR =
+ (Inet6Address) parseNumericAddress("2002:db8:1::515:ca");
+ protected static final Inet6Address REMOTE_NAT64_ADDR =
+ (Inet6Address) parseNumericAddress("64:ff9b::808:808");
+ protected static final IpPrefix TEST_NAT64PREFIX = new IpPrefix("64:ff9b::/96");
+
+ // IPv4 header definition.
+ protected static final short ID = 27149;
+ protected static final short FLAGS_AND_FRAGMENT_OFFSET = (short) 0x4000; // flags=DF, offset=0
+ protected static final byte TIME_TO_LIVE = (byte) 0x40;
+ protected static final byte TYPE_OF_SERVICE = 0;
+
+ // IPv6 header definition.
+ private static final short HOP_LIMIT = 0x40;
+ // version=6, traffic class=0x0, flowlabel=0x0;
+ private static final int VERSION_TRAFFICCLASS_FLOWLABEL = 0x60000000;
+
+ // UDP and TCP header definition.
+ // LOCAL_PORT is used by public port and private port. Assume port 9876 has not been used yet
+ // before the testing that public port and private port are the same in the testing. Note that
+ // NAT port forwarding could be different between private port and public port.
+ protected static final short LOCAL_PORT = 9876;
+ protected static final short REMOTE_PORT = 433;
+ private static final short WINDOW = (short) 0x2000;
+ private static final short URGENT_POINTER = 0;
+
+ // Payload definition.
+ protected static final ByteBuffer EMPTY_PAYLOAD = ByteBuffer.wrap(new byte[0]);
+ private static final ByteBuffer TEST_REACHABILITY_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x55, (byte) 0xaa });
+ protected static final ByteBuffer RX_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x12, (byte) 0x34 });
+ protected static final ByteBuffer TX_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x56, (byte) 0x78 });
+
+ private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
+ private final EthernetManager mEm = mContext.getSystemService(EthernetManager.class);
+ private final TetheringManager mTm = mContext.getSystemService(TetheringManager.class);
+ private final PackageManager mPackageManager = mContext.getPackageManager();
+ private final CtsNetUtils mCtsNetUtils = new CtsNetUtils(mContext);
+ private final UiAutomation mUiAutomation =
+ InstrumentationRegistry.getInstrumentation().getUiAutomation();
+
+ // Late initialization in setUp()
+ private boolean mRunTests;
+ private HandlerThread mHandlerThread;
+ private Handler mHandler;
+ private TetheredInterfaceRequester mTetheredInterfaceRequester;
+
+ // Late initialization in initTetheringTester().
+ private TapPacketReader mUpstreamReader;
+ private TestNetworkTracker mUpstreamTracker;
+ private TestNetworkInterface mDownstreamIface;
+ private TapPacketReader mDownstreamReader;
+ private MyTetheringEventCallback mTetheringEventCallback;
+
+ @Before
+ public void setUp() throws Exception {
+ mHandlerThread = new HandlerThread(getClass().getSimpleName());
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper());
+
+ mRunTests = runAsShell(NETWORK_SETTINGS, TETHER_PRIVILEGED, () ->
+ mTm.isTetheringSupported());
+ assumeTrue(mRunTests);
+
+ mTetheredInterfaceRequester = new TetheredInterfaceRequester(mHandler, mEm);
+ }
+
+ protected void maybeStopTapPacketReader(final TapPacketReader tapPacketReader)
+ throws Exception {
+ if (tapPacketReader != null) {
+ TapPacketReader reader = tapPacketReader;
+ mHandler.post(() -> reader.stop());
+ }
+ }
+
+ protected void maybeCloseTestInterface(final TestNetworkInterface testInterface)
+ throws Exception {
+ if (testInterface != null) {
+ testInterface.getFileDescriptor().close();
+ Log.d(TAG, "Deleted test interface " + testInterface.getInterfaceName());
+ }
+ }
+
+ protected void maybeUnregisterTetheringEventCallback(final MyTetheringEventCallback callback)
+ throws Exception {
+ if (callback != null) {
+ callback.awaitInterfaceUntethered();
+ callback.unregister();
+ }
+ }
+
+ protected void cleanUp() throws Exception {
+ setPreferTestNetworks(false);
+
+ if (mUpstreamTracker != null) {
+ runAsShell(MANAGE_TEST_NETWORKS, () -> {
+ mUpstreamTracker.teardown();
+ mUpstreamTracker = null;
+ });
+ }
+ if (mUpstreamReader != null) {
+ TapPacketReader reader = mUpstreamReader;
+ mHandler.post(() -> reader.stop());
+ mUpstreamReader = null;
+ }
+
+ maybeStopTapPacketReader(mDownstreamReader);
+ mDownstreamReader = null;
+ // To avoid flaky which caused by the next test started but the previous interface is not
+ // untracked from EthernetTracker yet. Just delete the test interface without explicitly
+ // calling TetheringManager#stopTethering could let EthernetTracker untrack the test
+ // interface from server mode before tethering stopped. Thus, awaitInterfaceUntethered
+ // could not only make sure tethering is stopped but also guarantee the test interface is
+ // untracked from EthernetTracker.
+ maybeCloseTestInterface(mDownstreamIface);
+ mDownstreamIface = null;
+ maybeUnregisterTetheringEventCallback(mTetheringEventCallback);
+ mTetheringEventCallback = null;
+
+ runAsShell(NETWORK_SETTINGS, () -> mTetheredInterfaceRequester.release());
+ setIncludeTestInterfaces(false);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ try {
+ if (mRunTests) cleanUp();
+ } finally {
+ mHandlerThread.quitSafely();
+ mUiAutomation.dropShellPermissionIdentity();
+ }
+ }
+
+ protected boolean isInterfaceForTetheringAvailable() throws Exception {
+ // Before T, all ethernet interfaces could be used for server mode. Instead of
+ // waiting timeout, just checking whether the system currently has any
+ // ethernet interface is more reliable.
+ if (!SdkLevel.isAtLeastT()) {
+ return runAsShell(CONNECTIVITY_USE_RESTRICTED_NETWORKS, () -> mEm.isAvailable());
+ }
+
+ // If previous test case doesn't release tethering interface successfully, the other tests
+ // after that test may be skipped as unexcepted.
+ // TODO: figure out a better way to check default tethering interface existenion.
+ final TetheredInterfaceRequester requester = new TetheredInterfaceRequester(mHandler, mEm);
+ try {
+ // Use short timeout (200ms) for requesting an existing interface, if any, because
+ // it should reurn faster than requesting a new tethering interface. Using default
+ // timeout (5000ms, TIMEOUT_MS) may make that total testing time is over 1 minute
+ // test module timeout on internal testing.
+ // TODO: if this becomes flaky, consider using default timeout (5000ms) and moving
+ // this check into #setUpOnce.
+ return requester.getInterface(AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS) != null;
+ } catch (TimeoutException e) {
+ return false;
+ } finally {
+ runAsShell(NETWORK_SETTINGS, () -> {
+ requester.release();
+ });
+ }
+ }
+
+ protected void setIncludeTestInterfaces(boolean include) {
+ runAsShell(NETWORK_SETTINGS, () -> {
+ mEm.setIncludeTestInterfaces(include);
+ });
+ }
+
+ protected void setPreferTestNetworks(boolean prefer) {
+ runAsShell(NETWORK_SETTINGS, () -> {
+ mTm.setPreferTestNetworks(prefer);
+ });
+ }
+
+ protected String getTetheredInterface() throws Exception {
+ return mTetheredInterfaceRequester.getInterface();
+ }
+
+ protected CompletableFuture<String> requestTetheredInterface() throws Exception {
+ return mTetheredInterfaceRequester.requestInterface();
+ }
+
+ protected static void waitForRouterAdvertisement(TapPacketReader reader, String iface,
+ long timeoutMs) {
+ final long deadline = SystemClock.uptimeMillis() + timeoutMs;
+ do {
+ byte[] pkt = reader.popPacket(timeoutMs);
+ if (isExpectedIcmpPacket(pkt, true /* hasEth */, false /* isIpv4 */,
+ ICMPV6_ROUTER_ADVERTISEMENT)) {
+ return;
+ }
+
+ timeoutMs = deadline - SystemClock.uptimeMillis();
+ } while (timeoutMs > 0);
+ fail("Did not receive router advertisement on " + iface + " after "
+ + timeoutMs + "ms idle");
+ }
+
+
+ protected static final class MyTetheringEventCallback implements TetheringEventCallback {
+ private final TetheringManager mTm;
+ private final CountDownLatch mTetheringStartedLatch = new CountDownLatch(1);
+ private final CountDownLatch mTetheringStoppedLatch = new CountDownLatch(1);
+ private final CountDownLatch mLocalOnlyStartedLatch = new CountDownLatch(1);
+ private final CountDownLatch mLocalOnlyStoppedLatch = new CountDownLatch(1);
+ private final CountDownLatch mClientConnectedLatch = new CountDownLatch(1);
+ private final CountDownLatch mUpstreamLatch = new CountDownLatch(1);
+ private final CountDownLatch mCallbackRegisteredLatch = new CountDownLatch(1);
+ private final TetheringInterface mIface;
+ private final Network mExpectedUpstream;
+
+ private boolean mAcceptAnyUpstream = false;
+
+ private volatile boolean mInterfaceWasTethered = false;
+ private volatile boolean mInterfaceWasLocalOnly = false;
+ private volatile boolean mUnregistered = false;
+ private volatile Collection<TetheredClient> mClients = null;
+ private volatile Network mUpstream = null;
+
+ MyTetheringEventCallback(TetheringManager tm, String iface) {
+ this(tm, iface, null);
+ mAcceptAnyUpstream = true;
+ }
+
+ MyTetheringEventCallback(TetheringManager tm, String iface, Network expectedUpstream) {
+ mTm = tm;
+ mIface = new TetheringInterface(TETHERING_ETHERNET, iface);
+ mExpectedUpstream = expectedUpstream;
+ }
+
+ public void unregister() {
+ mTm.unregisterTetheringEventCallback(this);
+ mUnregistered = true;
+ }
+ @Override
+ public void onTetheredInterfacesChanged(List<String> interfaces) {
+ fail("Should only call callback that takes a Set<TetheringInterface>");
+ }
+
+ @Override
+ public void onTetheredInterfacesChanged(Set<TetheringInterface> interfaces) {
+ // Ignore stale callbacks registered by previous test cases.
+ if (mUnregistered) return;
+
+ if (!mInterfaceWasTethered && interfaces.contains(mIface)) {
+ // This interface is being tethered for the first time.
+ Log.d(TAG, "Tethering started: " + interfaces);
+ mInterfaceWasTethered = true;
+ mTetheringStartedLatch.countDown();
+ } else if (mInterfaceWasTethered && !interfaces.contains(mIface)) {
+ Log.d(TAG, "Tethering stopped: " + interfaces);
+ mTetheringStoppedLatch.countDown();
+ }
+ }
+
+ @Override
+ public void onLocalOnlyInterfacesChanged(List<String> interfaces) {
+ fail("Should only call callback that takes a Set<TetheringInterface>");
+ }
+
+ @Override
+ public void onLocalOnlyInterfacesChanged(Set<TetheringInterface> interfaces) {
+ // Ignore stale callbacks registered by previous test cases.
+ if (mUnregistered) return;
+
+ if (!mInterfaceWasLocalOnly && interfaces.contains(mIface)) {
+ // This interface is being put into local-only mode for the first time.
+ Log.d(TAG, "Local-only started: " + interfaces);
+ mInterfaceWasLocalOnly = true;
+ mLocalOnlyStartedLatch.countDown();
+ } else if (mInterfaceWasLocalOnly && !interfaces.contains(mIface)) {
+ Log.d(TAG, "Local-only stopped: " + interfaces);
+ mLocalOnlyStoppedLatch.countDown();
+ }
+ }
+
+ public void awaitInterfaceTethered() throws Exception {
+ assertTrue("Ethernet not tethered after " + TIMEOUT_MS + "ms",
+ mTetheringStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ }
+
+ public void awaitInterfaceLocalOnly() throws Exception {
+ assertTrue("Ethernet not local-only after " + TIMEOUT_MS + "ms",
+ mLocalOnlyStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ }
+
+ // Used to check if the callback has registered. When the callback is registered,
+ // onSupportedTetheringTypes is celled in onCallbackStarted(). After
+ // onSupportedTetheringTypes called, drop the permission for registering callback.
+ // See MyTetheringEventCallback#register, TetheringManager#onCallbackStarted.
+ @Override
+ public void onSupportedTetheringTypes(Set<Integer> supportedTypes) {
+ // Used to check callback registered.
+ mCallbackRegisteredLatch.countDown();
+ }
+
+ public void awaitCallbackRegistered() throws Exception {
+ if (!mCallbackRegisteredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+ fail("Did not receive callback registered signal after " + TIMEOUT_MS + "ms");
+ }
+ }
+
+ public void awaitInterfaceUntethered() throws Exception {
+ // Don't block teardown if the interface was never tethered.
+ // This is racy because the interface might become tethered right after this check, but
+ // that can only happen in tearDown if startTethering timed out, which likely means
+ // the test has already failed.
+ if (!mInterfaceWasTethered && !mInterfaceWasLocalOnly) return;
+
+ if (mInterfaceWasTethered) {
+ assertTrue(mIface + " not untethered after " + TIMEOUT_MS + "ms",
+ mTetheringStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ } else if (mInterfaceWasLocalOnly) {
+ assertTrue(mIface + " not untethered after " + TIMEOUT_MS + "ms",
+ mLocalOnlyStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ } else {
+ fail(mIface + " cannot be both tethered and local-only. Update this test class.");
+ }
+ }
+
+ @Override
+ public void onError(String ifName, int error) {
+ // Ignore stale callbacks registered by previous test cases.
+ if (mUnregistered) return;
+
+ fail("TetheringEventCallback got error:" + error + " on iface " + ifName);
+ }
+
+ @Override
+ public void onClientsChanged(Collection<TetheredClient> clients) {
+ // Ignore stale callbacks registered by previous test cases.
+ if (mUnregistered) return;
+
+ Log.d(TAG, "Got clients changed: " + clients);
+ mClients = clients;
+ if (clients.size() > 0) {
+ mClientConnectedLatch.countDown();
+ }
+ }
+
+ public Collection<TetheredClient> awaitClientConnected() throws Exception {
+ assertTrue("Did not receive client connected callback after " + TIMEOUT_MS + "ms",
+ mClientConnectedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ return mClients;
+ }
+
+ @Override
+ public void onUpstreamChanged(Network network) {
+ // Ignore stale callbacks registered by previous test cases.
+ if (mUnregistered) return;
+
+ Log.d(TAG, "Got upstream changed: " + network);
+ mUpstream = network;
+ if (mAcceptAnyUpstream || Objects.equals(mUpstream, mExpectedUpstream)) {
+ mUpstreamLatch.countDown();
+ }
+ }
+
+ public Network awaitUpstreamChanged(boolean throwTimeoutException) throws Exception {
+ if (!mUpstreamLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+ final String errorMessage = "Did not receive upstream "
+ + (mAcceptAnyUpstream ? "any" : mExpectedUpstream)
+ + " callback after " + TIMEOUT_MS + "ms";
+
+ if (throwTimeoutException) {
+ throw new TimeoutException(errorMessage);
+ } else {
+ fail(errorMessage);
+ }
+ }
+ return mUpstream;
+ }
+ }
+
+ protected MyTetheringEventCallback enableEthernetTethering(String iface,
+ TetheringRequest request, Network expectedUpstream) throws Exception {
+ // Enable ethernet tethering with null expectedUpstream means the test accept any upstream
+ // after etherent tethering started.
+ final MyTetheringEventCallback callback;
+ if (expectedUpstream != null) {
+ callback = new MyTetheringEventCallback(mTm, iface, expectedUpstream);
+ } else {
+ callback = new MyTetheringEventCallback(mTm, iface);
+ }
+ runAsShell(NETWORK_SETTINGS, () -> {
+ mTm.registerTetheringEventCallback(mHandler::post, callback);
+ // Need to hold the shell permission until callback is registered. This helps to avoid
+ // the test become flaky.
+ callback.awaitCallbackRegistered();
+ });
+ final CountDownLatch tetheringStartedLatch = new CountDownLatch(1);
+ StartTetheringCallback startTetheringCallback = new StartTetheringCallback() {
+ @Override
+ public void onTetheringStarted() {
+ Log.d(TAG, "Ethernet tethering started");
+ tetheringStartedLatch.countDown();
+ }
+
+ @Override
+ public void onTetheringFailed(int resultCode) {
+ fail("Unexpectedly got onTetheringFailed");
+ }
+ };
+ Log.d(TAG, "Starting Ethernet tethering");
+ runAsShell(TETHER_PRIVILEGED, () -> {
+ mTm.startTethering(request, mHandler::post /* executor */, startTetheringCallback);
+ // Binder call is an async call. Need to hold the shell permission until tethering
+ // started. This helps to avoid the test become flaky.
+ if (!tetheringStartedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+ fail("Did not receive tethering started callback after " + TIMEOUT_MS + "ms");
+ }
+ });
+
+ final int connectivityType = request.getConnectivityScope();
+ switch (connectivityType) {
+ case CONNECTIVITY_SCOPE_GLOBAL:
+ callback.awaitInterfaceTethered();
+ break;
+ case CONNECTIVITY_SCOPE_LOCAL:
+ callback.awaitInterfaceLocalOnly();
+ break;
+ default:
+ fail("Unexpected connectivity type requested: " + connectivityType);
+ }
+
+ return callback;
+ }
+
+ protected MyTetheringEventCallback enableEthernetTethering(String iface,
+ Network expectedUpstream) throws Exception {
+ return enableEthernetTethering(iface,
+ new TetheringRequest.Builder(TETHERING_ETHERNET)
+ .setShouldShowEntitlementUi(false).build(), expectedUpstream);
+ }
+
+ protected int getMTU(TestNetworkInterface iface) throws SocketException {
+ NetworkInterface nif = NetworkInterface.getByName(iface.getInterfaceName());
+ assertNotNull("Can't get NetworkInterface object for " + iface.getInterfaceName(), nif);
+ return nif.getMTU();
+ }
+
+ protected TapPacketReader makePacketReader(final TestNetworkInterface iface) throws Exception {
+ FileDescriptor fd = iface.getFileDescriptor().getFileDescriptor();
+ return makePacketReader(fd, getMTU(iface));
+ }
+
+ protected TapPacketReader makePacketReader(FileDescriptor fd, int mtu) {
+ final TapPacketReader reader = new TapPacketReader(mHandler, fd, mtu);
+ mHandler.post(() -> reader.start());
+ HandlerUtils.waitForIdle(mHandler, TIMEOUT_MS);
+ return reader;
+ }
+
+ protected static final class TetheredInterfaceRequester implements TetheredInterfaceCallback {
+ private final Handler mHandler;
+ private final EthernetManager mEm;
+
+ private TetheredInterfaceRequest mRequest;
+ private final CompletableFuture<String> mFuture = new CompletableFuture<>();
+
+ TetheredInterfaceRequester(Handler handler, EthernetManager em) {
+ mHandler = handler;
+ mEm = em;
+ }
+
+ @Override
+ public void onAvailable(String iface) {
+ Log.d(TAG, "Ethernet interface available: " + iface);
+ mFuture.complete(iface);
+ }
+
+ @Override
+ public void onUnavailable() {
+ mFuture.completeExceptionally(new IllegalStateException("onUnavailable received"));
+ }
+
+ public CompletableFuture<String> requestInterface() {
+ assertNull("BUG: more than one tethered interface request", mRequest);
+ Log.d(TAG, "Requesting tethered interface");
+ mRequest = runAsShell(NETWORK_SETTINGS, () ->
+ mEm.requestTetheredInterface(mHandler::post, this));
+ return mFuture;
+ }
+
+ public String getInterface(int timeout) throws Exception {
+ return requestInterface().get(timeout, TimeUnit.MILLISECONDS);
+ }
+
+ public String getInterface() throws Exception {
+ return getInterface(TIMEOUT_MS);
+ }
+
+ public void release() {
+ if (mRequest != null) {
+ mFuture.obtrudeException(new IllegalStateException("Request already released"));
+ mRequest.release();
+ mRequest = null;
+ }
+ }
+ }
+
+ protected TestNetworkInterface createTestInterface() throws Exception {
+ TestNetworkManager tnm = runAsShell(MANAGE_TEST_NETWORKS, () ->
+ mContext.getSystemService(TestNetworkManager.class));
+ TestNetworkInterface iface = runAsShell(MANAGE_TEST_NETWORKS, () ->
+ tnm.createTapInterface());
+ Log.d(TAG, "Created test interface " + iface.getInterfaceName());
+ return iface;
+ }
+
+ protected TestNetworkTracker createTestUpstream(final List<LinkAddress> addresses,
+ final List<InetAddress> dnses) throws Exception {
+ setPreferTestNetworks(true);
+
+ final LinkProperties lp = new LinkProperties();
+ lp.setLinkAddresses(addresses);
+ lp.setDnsServers(dnses);
+ lp.setNat64Prefix(TEST_NAT64PREFIX);
+
+ return runAsShell(MANAGE_TEST_NETWORKS, () -> initTestNetwork(mContext, lp, TIMEOUT_MS));
+ }
+
+ private short getEthType(@NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp) {
+ return isAddressIpv4(srcIp, dstIp) ? (short) ETHER_TYPE_IPV4 : (short) ETHER_TYPE_IPV6;
+ }
+
+ private int getIpProto(@NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp) {
+ return isAddressIpv4(srcIp, dstIp) ? IPPROTO_IP : IPPROTO_IPV6;
+ }
+
+ @NonNull
+ protected ByteBuffer buildUdpPacket(
+ @Nullable final MacAddress srcMac, @Nullable final MacAddress dstMac,
+ @NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp,
+ short srcPort, short dstPort, @Nullable final ByteBuffer payload)
+ throws Exception {
+ final int ipProto = getIpProto(srcIp, dstIp);
+ final boolean hasEther = (srcMac != null && dstMac != null);
+ final int payloadLen = (payload == null) ? 0 : payload.limit();
+ final ByteBuffer buffer = PacketBuilder.allocate(hasEther, ipProto, IPPROTO_UDP,
+ payloadLen);
+ final PacketBuilder packetBuilder = new PacketBuilder(buffer);
+
+ // [1] Ethernet header
+ if (hasEther) {
+ packetBuilder.writeL2Header(srcMac, dstMac, getEthType(srcIp, dstIp));
+ }
+
+ // [2] IP header
+ if (ipProto == IPPROTO_IP) {
+ packetBuilder.writeIpv4Header(TYPE_OF_SERVICE, ID, FLAGS_AND_FRAGMENT_OFFSET,
+ TIME_TO_LIVE, (byte) IPPROTO_UDP, (Inet4Address) srcIp, (Inet4Address) dstIp);
+ } else {
+ packetBuilder.writeIpv6Header(VERSION_TRAFFICCLASS_FLOWLABEL, (byte) IPPROTO_UDP,
+ HOP_LIMIT, (Inet6Address) srcIp, (Inet6Address) dstIp);
+ }
+
+ // [3] UDP header
+ packetBuilder.writeUdpHeader(srcPort, dstPort);
+
+ // [4] Payload
+ if (payload != null) {
+ buffer.put(payload);
+ // in case data might be reused by caller, restore the position and
+ // limit of bytebuffer.
+ payload.clear();
+ }
+
+ return packetBuilder.finalizePacket();
+ }
+
+ @NonNull
+ protected ByteBuffer buildUdpPacket(@NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp, short srcPort, short dstPort,
+ @Nullable final ByteBuffer payload) throws Exception {
+ return buildUdpPacket(null /* srcMac */, null /* dstMac */, srcIp, dstIp, srcPort,
+ dstPort, payload);
+ }
+
+ private boolean isAddressIpv4(@NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp) {
+ if (srcIp instanceof Inet4Address && dstIp instanceof Inet4Address) return true;
+ if (srcIp instanceof Inet6Address && dstIp instanceof Inet6Address) return false;
+
+ fail("Unsupported conditions: srcIp " + srcIp + ", dstIp " + dstIp);
+ return false; // unreachable
+ }
+
+ protected void sendDownloadPacketUdp(@NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp, @NonNull final TetheringTester tester,
+ boolean is6To4) throws Exception {
+ if (is6To4) {
+ assertFalse("CLAT download test must sends IPv6 packet", isAddressIpv4(srcIp, dstIp));
+ }
+
+ // Expected received UDP packet IP protocol. While testing CLAT (is6To4 = true), the packet
+ // on downstream must be IPv4. Otherwise, the IP protocol of test packet is the same on
+ // both downstream and upstream.
+ final boolean isIpv4 = is6To4 ? true : isAddressIpv4(srcIp, dstIp);
+
+ final ByteBuffer testPacket = buildUdpPacket(srcIp, dstIp, REMOTE_PORT /* srcPort */,
+ LOCAL_PORT /* dstPort */, RX_PAYLOAD);
+ tester.verifyDownload(testPacket, p -> {
+ Log.d(TAG, "Packet in downstream: " + dumpHexString(p));
+ return isExpectedUdpPacket(p, true /* hasEther */, isIpv4, RX_PAYLOAD);
+ });
+ }
+
+ protected void sendUploadPacketUdp(@NonNull final MacAddress srcMac,
+ @NonNull final MacAddress dstMac, @NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp, @NonNull final TetheringTester tester,
+ boolean is4To6) throws Exception {
+ if (is4To6) {
+ assertTrue("CLAT upload test must sends IPv4 packet", isAddressIpv4(srcIp, dstIp));
+ }
+
+ // Expected received UDP packet IP protocol. While testing CLAT (is4To6 = true), the packet
+ // on upstream must be IPv6. Otherwise, the IP protocol of test packet is the same on
+ // both downstream and upstream.
+ final boolean isIpv4 = is4To6 ? false : isAddressIpv4(srcIp, dstIp);
+
+ final ByteBuffer testPacket = buildUdpPacket(srcMac, dstMac, srcIp, dstIp,
+ LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */, TX_PAYLOAD);
+ tester.verifyUpload(testPacket, p -> {
+ Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
+ return isExpectedUdpPacket(p, false /* hasEther */, isIpv4, TX_PAYLOAD);
+ });
+ }
+
+
+ @NonNull
+ private ByteBuffer buildTcpPacket(
+ @Nullable final MacAddress srcMac, @Nullable final MacAddress dstMac,
+ @NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp,
+ short srcPort, short dstPort, final short seq, final short ack,
+ final byte tcpFlags, @NonNull final ByteBuffer payload) throws Exception {
+ final int ipProto = getIpProto(srcIp, dstIp);
+ final boolean hasEther = (srcMac != null && dstMac != null);
+ final ByteBuffer buffer = PacketBuilder.allocate(hasEther, ipProto, IPPROTO_TCP,
+ payload.limit());
+ final PacketBuilder packetBuilder = new PacketBuilder(buffer);
+
+ // [1] Ethernet header
+ if (hasEther) {
+ packetBuilder.writeL2Header(srcMac, dstMac, getEthType(srcIp, dstIp));
+ }
+
+ // [2] IP header
+ if (ipProto == IPPROTO_IP) {
+ packetBuilder.writeIpv4Header(TYPE_OF_SERVICE, ID, FLAGS_AND_FRAGMENT_OFFSET,
+ TIME_TO_LIVE, (byte) IPPROTO_TCP, (Inet4Address) srcIp, (Inet4Address) dstIp);
+ } else {
+ packetBuilder.writeIpv6Header(VERSION_TRAFFICCLASS_FLOWLABEL, (byte) IPPROTO_TCP,
+ HOP_LIMIT, (Inet6Address) srcIp, (Inet6Address) dstIp);
+ }
+
+ // [3] TCP header
+ packetBuilder.writeTcpHeader(srcPort, dstPort, seq, ack, tcpFlags, WINDOW, URGENT_POINTER);
+
+ // [4] Payload
+ buffer.put(payload);
+ // in case data might be reused by caller, restore the position and
+ // limit of bytebuffer.
+ payload.clear();
+
+ return packetBuilder.finalizePacket();
+ }
+
+ protected void sendDownloadPacketTcp(@NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp, short seq, short ack, byte tcpFlags,
+ @NonNull final ByteBuffer payload, @NonNull final TetheringTester tester,
+ boolean is6To4) throws Exception {
+ if (is6To4) {
+ assertFalse("CLAT download test must sends IPv6 packet", isAddressIpv4(srcIp, dstIp));
+ }
+
+ // Expected received TCP packet IP protocol. While testing CLAT (is6To4 = true), the packet
+ // on downstream must be IPv4. Otherwise, the IP protocol of test packet is the same on
+ // both downstream and upstream.
+ final boolean isIpv4 = is6To4 ? true : isAddressIpv4(srcIp, dstIp);
+
+ final ByteBuffer testPacket = buildTcpPacket(null /* srcMac */, null /* dstMac */,
+ srcIp, dstIp, REMOTE_PORT /* srcPort */, LOCAL_PORT /* dstPort */, seq, ack,
+ tcpFlags, payload);
+ tester.verifyDownload(testPacket, p -> {
+ Log.d(TAG, "Packet in downstream: " + dumpHexString(p));
+
+ return isExpectedTcpPacket(p, true /* hasEther */, isIpv4, seq, payload);
+ });
+ }
+
+ protected void sendUploadPacketTcp(@NonNull final MacAddress srcMac,
+ @NonNull final MacAddress dstMac, @NonNull final InetAddress srcIp,
+ @NonNull final InetAddress dstIp, short seq, short ack, byte tcpFlags,
+ @NonNull final ByteBuffer payload, @NonNull final TetheringTester tester,
+ boolean is4To6) throws Exception {
+ if (is4To6) {
+ assertTrue("CLAT upload test must sends IPv4 packet", isAddressIpv4(srcIp, dstIp));
+ }
+
+ // Expected received TCP packet IP protocol. While testing CLAT (is4To6 = true), the packet
+ // on upstream must be IPv6. Otherwise, the IP protocol of test packet is the same on
+ // both downstream and upstream.
+ final boolean isIpv4 = is4To6 ? false : isAddressIpv4(srcIp, dstIp);
+
+ final ByteBuffer testPacket = buildTcpPacket(srcMac, dstMac, srcIp, dstIp,
+ LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */, seq, ack, tcpFlags,
+ payload);
+ tester.verifyUpload(testPacket, p -> {
+ Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
+
+ return isExpectedTcpPacket(p, false /* hasEther */, isIpv4, seq, payload);
+ });
+ }
+
+ protected void runTcpTest(
+ @NonNull final MacAddress uploadSrcMac, @NonNull final MacAddress uploadDstMac,
+ @NonNull final InetAddress uploadSrcIp, @NonNull final InetAddress uploadDstIp,
+ @NonNull final InetAddress downloadSrcIp, @NonNull final InetAddress downloadDstIp,
+ @NonNull final TetheringTester tester, boolean isClat) throws Exception {
+ // Three way handshake and data transfer.
+ //
+ // Server (base seq = 2000) Client (base seq = 1000)
+ // | |
+ // | [1] [SYN] SEQ = 1000 |
+ // |<---------------------------------------------------------| -
+ // | | ^
+ // | [2] [SYN + ACK] SEQ = 2000, ACK = 1000+1 | |
+ // |--------------------------------------------------------->| three way handshake
+ // | | |
+ // | [3] [ACK] SEQ = 1001, ACK = 2000+1 | v
+ // |<---------------------------------------------------------| -
+ // | | ^
+ // | [4] [ACK] SEQ = 1001, ACK = 2001, 2 byte payload | |
+ // |<---------------------------------------------------------| data transfer
+ // | | |
+ // | [5] [ACK] SEQ = 2001, ACK = 1001+2, 2 byte payload | v
+ // |--------------------------------------------------------->| -
+ // | |
+ //
+
+ // This test can only verify the packets are transferred end to end but TCP state.
+ // TODO: verify TCP state change via /proc/net/nf_conntrack or netlink conntrack event.
+ // [1] [UPLOAD] [SYN]: SEQ = 1000
+ sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
+ (short) 1000 /* seq */, (short) 0 /* ack */, TCPHDR_SYN, EMPTY_PAYLOAD,
+ tester, isClat /* is4To6 */);
+
+ // [2] [DONWLOAD] [SYN + ACK]: SEQ = 2000, ACK = 1001
+ sendDownloadPacketTcp(downloadSrcIp, downloadDstIp, (short) 2000 /* seq */,
+ (short) 1001 /* ack */, (byte) ((TCPHDR_SYN | TCPHDR_ACK) & 0xff), EMPTY_PAYLOAD,
+ tester, isClat /* is6To4 */);
+
+ // [3] [UPLOAD] [ACK]: SEQ = 1001, ACK = 2001
+ sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
+ (short) 1001 /* seq */, (short) 2001 /* ack */, TCPHDR_ACK, EMPTY_PAYLOAD, tester,
+ isClat /* is4To6 */);
+
+ // [4] [UPLOAD] [ACK]: SEQ = 1001, ACK = 2001, 2 byte payload
+ sendUploadPacketTcp(uploadSrcMac, uploadDstMac, uploadSrcIp, uploadDstIp,
+ (short) 1001 /* seq */, (short) 2001 /* ack */, TCPHDR_ACK, TX_PAYLOAD,
+ tester, isClat /* is4To6 */);
+
+ // [5] [DONWLOAD] [ACK]: SEQ = 2001, ACK = 1003, 2 byte payload
+ sendDownloadPacketTcp(downloadSrcIp, downloadDstIp, (short) 2001 /* seq */,
+ (short) 1003 /* ack */, TCPHDR_ACK, RX_PAYLOAD, tester, isClat /* is6To4 */);
+
+ // TODO: test BPF offload maps.
+ }
+
+ // TODO: remove ipv4 verification (is4To6 = false) once upstream connected notification race is
+ // fixed. See #runUdp4Test.
+ //
+ // This function sends a probe packet to downstream interface and exam the result from upstream
+ // interface to make sure ipv4 tethering is ready. Return the entire packet which received from
+ // upstream interface.
+ @NonNull
+ protected byte[] probeV4TetheringConnectivity(TetheringTester tester, TetheredDevice tethered,
+ boolean is4To6) throws Exception {
+ final ByteBuffer probePacket = buildUdpPacket(tethered.macAddr,
+ tethered.routerMacAddr, tethered.ipv4Addr /* srcIp */,
+ REMOTE_IP4_ADDR /* dstIp */, LOCAL_PORT /* srcPort */, REMOTE_PORT /* dstPort */,
+ TEST_REACHABILITY_PAYLOAD);
+
+ // Send a UDP packet from client and check the packet can be found on upstream interface.
+ for (int i = 0; i < TETHER_REACHABILITY_ATTEMPTS; i++) {
+ byte[] expectedPacket = tester.testUpload(probePacket, p -> {
+ Log.d(TAG, "Packet in upstream: " + dumpHexString(p));
+ // If is4To6 is true, the ipv4 probe packet would be translated to ipv6 by Clat and
+ // would see this translated ipv6 packet in upstream interface.
+ return isExpectedUdpPacket(p, false /* hasEther */, !is4To6 /* isIpv4 */,
+ TEST_REACHABILITY_PAYLOAD);
+ });
+ if (expectedPacket != null) return expectedPacket;
+ }
+
+ fail("Can't verify " + (is4To6 ? "ipv4 to ipv6" : "ipv4") + " tethering connectivity after "
+ + TETHER_REACHABILITY_ATTEMPTS + " attempts");
+ return null;
+ }
+
+ // TODO: remove triggering upstream reselection once test network can replace selected upstream
+ // network in Tethering module.
+ private void maybeRetryTestedUpstreamChanged(final Network expectedUpstream,
+ final TimeoutException fallbackException) throws Exception {
+ // Fall back original exception because no way to reselect if there is no WIFI feature.
+ assertTrue(fallbackException.toString(), mPackageManager.hasSystemFeature(FEATURE_WIFI));
+
+ // Try to toggle wifi network, if any, to reselect upstream network via default network
+ // switching. Because test network has higher priority than internet network, this can
+ // help selecting test network to be upstream network for testing. This tries to avoid
+ // the flaky upstream selection under multinetwork environment. Internet and test network
+ // upstream changed event order is not guaranteed. Once tethering selects non-test
+ // upstream {wifi, ..}, test network won't be selected anymore. If too many test cases
+ // trigger the reselection, the total test time may over test suite 1 minmute timeout.
+ // Probably need to disable/restore all internet networks in a common place of test
+ // process. Currently, EthernetTetheringTest is part of CTS test which needs wifi network
+ // connection if device has wifi feature. CtsNetUtils#toggleWifi() checks wifi connection
+ // during the toggling process.
+ // See Tethering#chooseUpstreamType, CtsNetUtils#toggleWifi.
+ // TODO: toggle cellular network if the device has no WIFI feature.
+ Log.d(TAG, "Toggle WIFI to retry upstream selection");
+ mCtsNetUtils.toggleWifi();
+
+ // Wait for expected upstream.
+ final CompletableFuture<Network> future = new CompletableFuture<>();
+ final TetheringEventCallback callback = new TetheringEventCallback() {
+ @Override
+ public void onUpstreamChanged(Network network) {
+ Log.d(TAG, "Got upstream changed: " + network);
+ if (Objects.equals(expectedUpstream, network)) {
+ future.complete(network);
+ }
+ }
+ };
+ try {
+ mTm.registerTetheringEventCallback(mHandler::post, callback);
+ assertEquals("onUpstreamChanged for unexpected network", expectedUpstream,
+ future.get(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ } catch (TimeoutException e) {
+ throw new AssertionError("Did not receive upstream " + expectedUpstream
+ + " callback after " + TIMEOUT_MS + "ms");
+ } finally {
+ mTm.unregisterTetheringEventCallback(callback);
+ }
+ }
+
+ protected TetheringTester initTetheringTester(List<LinkAddress> upstreamAddresses,
+ List<InetAddress> upstreamDnses) throws Exception {
+ assumeFalse(isInterfaceForTetheringAvailable());
+
+ // MyTetheringEventCallback currently only support await first available upstream. Tethering
+ // may select internet network as upstream if test network is not available and not be
+ // preferred yet. Create test upstream network before enable tethering.
+ mUpstreamTracker = createTestUpstream(upstreamAddresses, upstreamDnses);
+
+ mDownstreamIface = createTestInterface();
+ setIncludeTestInterfaces(true);
+
+ // Make sure EtherentTracker use "mDownstreamIface" as server mode interface.
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ mDownstreamIface.getInterfaceName(), mTetheredInterfaceRequester.getInterface());
+
+ mTetheringEventCallback = enableEthernetTethering(mDownstreamIface.getInterfaceName(),
+ mUpstreamTracker.getNetwork());
+
+ try {
+ assertEquals("onUpstreamChanged for test network", mUpstreamTracker.getNetwork(),
+ mTetheringEventCallback.awaitUpstreamChanged(
+ true /* throwTimeoutException */));
+ } catch (TimeoutException e) {
+ // Due to race condition inside tethering module, test network may not be selected as
+ // tethering upstream. Force tethering retry upstream if possible. If it is not
+ // possible to retry, fail the test with the original timeout exception.
+ maybeRetryTestedUpstreamChanged(mUpstreamTracker.getNetwork(), e);
+ }
+
+ mDownstreamReader = makePacketReader(mDownstreamIface);
+ mUpstreamReader = makePacketReader(mUpstreamTracker.getTestIface());
+
+ final ConnectivityManager cm = mContext.getSystemService(ConnectivityManager.class);
+ // Currently tethering don't have API to tell when ipv6 tethering is available. Thus, make
+ // sure tethering already have ipv6 connectivity before testing.
+ if (cm.getLinkProperties(mUpstreamTracker.getNetwork()).hasGlobalIpv6Address()) {
+ waitForRouterAdvertisement(mDownstreamReader, mDownstreamIface.getInterfaceName(),
+ WAIT_RA_TIMEOUT_MS);
+ }
+
+ return new TetheringTester(mDownstreamReader, mUpstreamReader);
+ }
+
+ protected <T> List<T> toList(T... array) {
+ return Arrays.asList(array);
+ }
+}
diff --git a/framework-t/src/android/net/NetworkIdentity.java b/framework-t/src/android/net/NetworkIdentity.java
index 48e5092..edfd21c 100644
--- a/framework-t/src/android/net/NetworkIdentity.java
+++ b/framework-t/src/android/net/NetworkIdentity.java
@@ -400,10 +400,8 @@
setSubscriberId(snapshot.getSubscriberId());
setRoaming(!snapshot.getNetworkCapabilities().hasCapability(
NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING));
- setMetered(!(snapshot.getNetworkCapabilities().hasCapability(
- NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
- || snapshot.getNetworkCapabilities().hasCapability(
- NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)));
+ setMetered(!snapshot.getNetworkCapabilities().hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_NOT_METERED));
setOemManaged(getOemBitfield(snapshot.getNetworkCapabilities()));
diff --git a/framework-t/src/android/net/NetworkTemplate.java b/framework-t/src/android/net/NetworkTemplate.java
index b6bd1a5..c0ae822 100644
--- a/framework-t/src/android/net/NetworkTemplate.java
+++ b/framework-t/src/android/net/NetworkTemplate.java
@@ -47,7 +47,6 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.text.TextUtils;
import android.util.ArraySet;
import com.android.internal.annotations.VisibleForTesting;
@@ -59,7 +58,6 @@
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.Comparator;
-import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
@@ -197,149 +195,67 @@
* Template to match {@link ConnectivityManager#TYPE_MOBILE} networks with
* the given IMSI.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
- public static NetworkTemplate buildTemplateMobileAll(String subscriberId) {
- return new NetworkTemplate(MATCH_MOBILE, subscriberId, null);
- }
-
- /**
- * Template to match cellular networks with the given IMSI, {@code ratType} and
- * {@code metered}. Use {@link #NETWORK_TYPE_ALL} to include all network types when
- * filtering. See {@code TelephonyManager.NETWORK_TYPE_*}.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateMobileWithRatType(@Nullable String subscriberId,
- int ratType, int metered) {
- if (TextUtils.isEmpty(subscriberId)) {
- return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null /* subscriberId */,
- null /* matchSubscriberIds */,
- new String[0] /* matchWifiNetworkKeys */, metered, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, ratType, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
- return new NetworkTemplate(MATCH_MOBILE, subscriberId, new String[] { subscriberId },
- new String[0] /* matchWifiNetworkKeys */,
- metered, ROAMING_ALL, DEFAULT_NETWORK_ALL, ratType, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
+ public static NetworkTemplate buildTemplateMobileAll(@NonNull String subscriberId) {
+ return new NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
+ .setSubscriberIds(Set.of(subscriberId)).build();
}
/**
* Template to match metered {@link ConnectivityManager#TYPE_MOBILE} networks,
* regardless of IMSI.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
+ @Deprecated
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
public static NetworkTemplate buildTemplateMobileWildcard() {
- return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null, null);
+ return new NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES).build();
}
/**
* Template to match all metered {@link ConnectivityManager#TYPE_WIFI} networks,
* regardless of key of the wifi network.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateWifiWildcard() {
- // TODO: Consider replace this with MATCH_WIFI with NETWORK_ID_ALL
- // and SUBSCRIBER_ID_MATCH_RULE_ALL.
- return new NetworkTemplate(MATCH_WIFI_WILDCARD, null, null);
+ return new NetworkTemplate.Builder(MATCH_WIFI).build();
}
- /** @hide */
+ /**
+ * @deprecated Use {@link Builder} to build a template.
+ * @hide
+ */
@Deprecated
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateWifi() {
return buildTemplateWifiWildcard();
}
/**
- * Template to match {@link ConnectivityManager#TYPE_WIFI} networks with the
- * given key of the wifi network.
- *
- * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
- * to know details about the key.
- * @hide
- */
- public static NetworkTemplate buildTemplateWifi(@NonNull String wifiNetworkKey) {
- Objects.requireNonNull(wifiNetworkKey);
- return new NetworkTemplate(MATCH_WIFI, null /* subscriberId */,
- new String[] { null } /* matchSubscriberIds */,
- new String[] { wifiNetworkKey }, METERED_ALL, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_ALL);
- }
-
- /**
- * Template to match all {@link ConnectivityManager#TYPE_WIFI} networks with the given
- * key of the wifi network and IMSI.
- *
- * Call with {@link #WIFI_NETWORK_KEY_ALL} for {@code wifiNetworkKey} to get result regardless
- * of key of the wifi network.
- *
- * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
- * to know details about the key.
- * @param subscriberId the IMSI associated to this wifi network.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateWifi(@Nullable String wifiNetworkKey,
- @Nullable String subscriberId) {
- return new NetworkTemplate(MATCH_WIFI, subscriberId, new String[] { subscriberId },
- wifiNetworkKey != null
- ? new String[] { wifiNetworkKey } : new String[0],
- METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
-
- /**
* Template to combine all {@link ConnectivityManager#TYPE_ETHERNET} style
* networks together.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateEthernet() {
- return new NetworkTemplate(MATCH_ETHERNET, null, null);
- }
-
- /**
- * Template to combine all {@link ConnectivityManager#TYPE_BLUETOOTH} style
- * networks together.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateBluetooth() {
- return new NetworkTemplate(MATCH_BLUETOOTH, null, null);
- }
-
- /**
- * Template to combine all {@link ConnectivityManager#TYPE_PROXY} style
- * networks together.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateProxy() {
- return new NetworkTemplate(MATCH_PROXY, null, null);
- }
-
- /**
- * Template to match all metered carrier networks with the given IMSI.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateCarrierMetered(@NonNull String subscriberId) {
- Objects.requireNonNull(subscriberId);
- return new NetworkTemplate(MATCH_CARRIER, subscriberId,
- new String[] { subscriberId },
- new String[0] /* matchWifiNetworkKeys */,
- METERED_YES, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
+ return new NetworkTemplate.Builder(MATCH_ETHERNET).build();
}
private final int mMatchRule;
@@ -353,6 +269,7 @@
* Since the merge set is dynamic, it should <em>not</em> be persisted or
* used for determining equality.
*/
+ @NonNull
private final String[] mMatchSubscriberIds;
@NonNull
@@ -387,9 +304,13 @@
}
}
- /** @hide */
- // TODO: Deprecate this constructor, mark it @UnsupportedAppUsage(maxTargetSdk = S)
- @UnsupportedAppUsage
+ /**
+ * @deprecated Use {@link Builder} to build a template.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public NetworkTemplate(int matchRule, String subscriberId, String wifiNetworkKey) {
this(matchRule, subscriberId, new String[] { subscriberId }, wifiNetworkKey);
}
@@ -410,25 +331,13 @@
}
/** @hide */
- // TODO: Remove it after updating all of the caller.
- public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
- String wifiNetworkKey, int metered, int roaming, int defaultNetwork, int ratType,
- int oemManaged) {
- this(matchRule, subscriberId, matchSubscriberIds,
- wifiNetworkKey != null ? new String[] { wifiNetworkKey } : new String[0],
- metered, roaming, defaultNetwork, ratType, oemManaged,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
-
- /** @hide */
public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
String[] matchWifiNetworkKeys, int metered, int roaming,
int defaultNetwork, int ratType, int oemManaged, int subscriberIdMatchRule) {
Objects.requireNonNull(matchWifiNetworkKeys);
+ Objects.requireNonNull(matchSubscriberIds);
mMatchRule = matchRule;
mSubscriberId = subscriberId;
- // TODO: Check whether mMatchSubscriberIds = null or mMatchSubscriberIds = {null} when
- // mSubscriberId is null
mMatchSubscriberIds = matchSubscriberIds;
mMatchWifiNetworkKeys = matchWifiNetworkKeys;
mMetered = metered;
@@ -881,48 +790,29 @@
* For example, given an incoming template matching B, and the currently
* active merge set [A,B], we'd return a new template that primarily matches
* A, but also matches B.
- * TODO: remove and use {@link #normalize(NetworkTemplate, List)}.
*
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "There is no alternative for {@code NetworkTemplate.normalize}."
+ + "Callers should have their own logic to merge template for"
+ + " different IMSIs and stop calling this function.")
public static NetworkTemplate normalize(NetworkTemplate template, String[] merged) {
- return normalize(template, Arrays.<String[]>asList(merged));
- }
-
- /**
- * Examine the given template and normalize it.
- * We pick the "lowest" merged subscriber as the primary
- * for key purposes, and expand the template to match all other merged
- * subscribers.
- *
- * There can be multiple merged subscriberIds for multi-SIM devices.
- *
- * <p>
- * For example, given an incoming template matching B, and the currently
- * active merge set [A,B], we'd return a new template that primarily matches
- * A, but also matches B.
- *
- * @hide
- */
- // TODO: @SystemApi when ready.
- public static NetworkTemplate normalize(NetworkTemplate template, List<String[]> mergedList) {
// Now there are several types of network which uses SubscriberId to store network
// information. For instances:
// The TYPE_WIFI with subscriberId means that it is a merged carrier wifi network.
// The TYPE_CARRIER means that the network associate to specific carrier network.
-
if (template.mSubscriberId == null) return template;
- for (String[] merged : mergedList) {
- if (CollectionUtils.contains(merged, template.mSubscriberId)) {
- // Requested template subscriber is part of the merge group; return
- // a template that matches all merged subscribers.
- final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
- return new NetworkTemplate(template.mMatchRule, merged[0], merged,
- CollectionUtils.isEmpty(matchWifiNetworkKeys)
- ? null : matchWifiNetworkKeys[0]);
- }
+ if (CollectionUtils.contains(merged, template.mSubscriberId)) {
+ // Requested template subscriber is part of the merge group; return
+ // a template that matches all merged subscribers.
+ final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
+ // TODO: Use NetworkTemplate.Builder to build a template after NetworkTemplate
+ // could handle incompatible subscriberIds. See b/217805241.
+ return new NetworkTemplate(template.mMatchRule, merged[0], merged,
+ CollectionUtils.isEmpty(matchWifiNetworkKeys)
+ ? null : matchWifiNetworkKeys[0]);
}
return template;
diff --git a/framework/src/android/net/TestNetworkInterface.java b/framework/src/android/net/TestNetworkInterface.java
index 26200e1..4c4e2d9 100644
--- a/framework/src/android/net/TestNetworkInterface.java
+++ b/framework/src/android/net/TestNetworkInterface.java
@@ -29,6 +29,9 @@
/**
* This class is used to return the interface name, fd, MAC, and MTU of the test interface
*
+ * TestNetworkInterfaces are created by TestNetworkService and provide a
+ * wrapper around a tun/tap interface that can be used in integration tests.
+ *
* @hide
*/
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@@ -97,11 +100,25 @@
return mInterfaceName;
}
+ /**
+ * Returns the tap interface MacAddress.
+ *
+ * When TestNetworkInterface wraps a tun interface, the MAC address is null.
+ *
+ * @return the tap interface MAC address or null.
+ */
@Nullable
public MacAddress getMacAddress() {
return mMacAddress;
}
+ /**
+ * Returns the interface MTU.
+ *
+ * MTU defaults to 1500 if an error occurs.
+ *
+ * @return MTU in bytes.
+ */
public int getMtu() {
return mMtu;
}
diff --git a/nearby/halfsheet/Android.bp b/nearby/halfsheet/Android.bp
index c84caa6..2d0d327 100644
--- a/nearby/halfsheet/Android.bp
+++ b/nearby/halfsheet/Android.bp
@@ -43,7 +43,6 @@
"com.google.android.material_material",
"fast-pair-lite-protos",
],
- plugins: ["java_api_finder"],
manifest: "AndroidManifest.xml",
jarjar_rules: ":nearby-jarjar-rules",
apex_available: ["com.android.tethering",],
diff --git a/nearby/halfsheet/res/values-en-rCA/strings.xml b/nearby/halfsheet/res/values-en-rCA/strings.xml
index d4ed675..6094199 100644
--- a/nearby/halfsheet/res/values-en-rCA/strings.xml
+++ b/nearby/halfsheet/res/values-en-rCA/strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="fast_pair_setup_in_progress" msgid="4158762239172829807">"Starting setup…"</string>
+ <string name="fast_pair_setup_in_progress" msgid="4158762239172829807">"Starting Setup…"</string>
<string name="fast_pair_title_setup" msgid="2894360355540593246">"Set up device"</string>
<string name="fast_pair_device_ready" msgid="2903490346082833101">"Device connected"</string>
<string name="fast_pair_title_fail" msgid="5677174346601290232">"Couldn\'t connect"</string>
diff --git a/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml b/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
index c490cf8..9827f4e 100644
--- a/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
@@ -17,20 +17,20 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"System connectivity resources"</string>
- <string name="wifi_available_sign_in" msgid="8041178343789805553">"Sign in to a Wi-Fi network"</string>
+ <string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"System Connectivity Resources"</string>
+ <string name="wifi_available_sign_in" msgid="8041178343789805553">"Sign in to Wi-Fi network"</string>
<string name="network_available_sign_in" msgid="2622520134876355561">"Sign in to network"</string>
<!-- no translation found for network_available_sign_in_detailed (8439369644697866359) -->
<skip />
- <string name="wifi_no_internet" msgid="1326348603404555475">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has no Internet access"</string>
+ <string name="wifi_no_internet" msgid="1326348603404555475">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has no internet access"</string>
<string name="wifi_no_internet_detailed" msgid="1746921096565304090">"Tap for options"</string>
- <string name="mobile_no_internet" msgid="4087718456753201450">"Mobile network has no Internet access"</string>
- <string name="other_networks_no_internet" msgid="5693932964749676542">"Network has no Internet access"</string>
+ <string name="mobile_no_internet" msgid="4087718456753201450">"Mobile network has no internet access"</string>
+ <string name="other_networks_no_internet" msgid="5693932964749676542">"Network has no internet access"</string>
<string name="private_dns_broken_detailed" msgid="2677123850463207823">"Private DNS server cannot be accessed"</string>
<string name="network_partial_connectivity" msgid="5549503845834993258">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
<string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Tap to connect anyway"</string>
<string name="network_switch_metered" msgid="5016937523571166319">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
- <string name="network_switch_metered_detail" msgid="1257300152739542096">"Device uses <xliff:g id="NEW_NETWORK">%1$s</xliff:g> when <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> has no Internet access. Charges may apply."</string>
+ <string name="network_switch_metered_detail" msgid="1257300152739542096">"Device uses <xliff:g id="NEW_NETWORK">%1$s</xliff:g> when <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> has no internet access. Charges may apply."</string>
<string name="network_switch_metered_toast" msgid="70691146054130335">"Switched from <xliff:g id="PREVIOUS_NETWORK">%1$s</xliff:g> to <xliff:g id="NEW_NETWORK">%2$s</xliff:g>"</string>
<string-array name="network_switch_type_name">
<item msgid="3004933964374161223">"mobile data"</item>
diff --git a/service/ServiceConnectivityResources/res/values-eu/strings.xml b/service/ServiceConnectivityResources/res/values-eu/strings.xml
index 2c4e431..9b39fd3 100644
--- a/service/ServiceConnectivityResources/res/values-eu/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-eu/strings.xml
@@ -35,7 +35,7 @@
<string-array name="network_switch_type_name">
<item msgid="3004933964374161223">"datu-konexioa"</item>
<item msgid="5624324321165953608">"Wifia"</item>
- <item msgid="5667906231066981731">"Bluetooth-a"</item>
+ <item msgid="5667906231066981731">"Bluetootha"</item>
<item msgid="346574747471703768">"Ethernet-a"</item>
<item msgid="5734728378097476003">"VPNa"</item>
</string-array>
diff --git a/service/ServiceConnectivityResources/res/values-nb/strings.xml b/service/ServiceConnectivityResources/res/values-nb/strings.xml
index 4439048..fff6530 100644
--- a/service/ServiceConnectivityResources/res/values-nb/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-nb/strings.xml
@@ -18,7 +18,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"Ressurser for systemtilkobling"</string>
- <string name="wifi_available_sign_in" msgid="8041178343789805553">"Logg på Wi-Fi-nettverket"</string>
+ <string name="wifi_available_sign_in" msgid="8041178343789805553">"Logg på Wifi-nettverket"</string>
<string name="network_available_sign_in" msgid="2622520134876355561">"Logg på nettverk"</string>
<!-- no translation found for network_available_sign_in_detailed (8439369644697866359) -->
<skip />
diff --git a/service/ServiceConnectivityResources/res/values-ro/strings.xml b/service/ServiceConnectivityResources/res/values-ro/strings.xml
index 4ff5290..bf4479a 100644
--- a/service/ServiceConnectivityResources/res/values-ro/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-ro/strings.xml
@@ -28,7 +28,7 @@
<string name="other_networks_no_internet" msgid="5693932964749676542">"Rețeaua nu are acces la internet"</string>
<string name="private_dns_broken_detailed" msgid="2677123850463207823">"Serverul DNS privat nu poate fi accesat"</string>
<string name="network_partial_connectivity" msgid="5549503845834993258">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> are conectivitate limitată"</string>
- <string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Atingeți pentru a vă conecta oricum"</string>
+ <string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Atinge pentru a te conecta oricum"</string>
<string name="network_switch_metered" msgid="5016937523571166319">"S-a comutat la <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
<string name="network_switch_metered_detail" msgid="1257300152739542096">"Dispozitivul foloseÈ™te <xliff:g id="NEW_NETWORK">%1$s</xliff:g> când <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> nu are acces la internet. Se pot aplica taxe."</string>
<string name="network_switch_metered_toast" msgid="70691146054130335">"S-a comutat de la <xliff:g id="PREVIOUS_NETWORK">%1$s</xliff:g> la <xliff:g id="NEW_NETWORK">%2$s</xliff:g>"</string>
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsAdvertiser.java b/service/mdns/com/android/server/connectivity/mdns/MdnsAdvertiser.java
new file mode 100644
index 0000000..dee78fd
--- /dev/null
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsAdvertiser.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 com.android.server.connectivity.mdns;
+
+import android.util.Log;
+
+/**
+ * MdnsAdvertiser manages advertising services per {@link com.android.server.NsdService} requests.
+ *
+ * TODO: implement
+ */
+public class MdnsAdvertiser {
+ private static final String TAG = MdnsAdvertiser.class.getSimpleName();
+ public static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG);
+}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsPacket.java b/service/mdns/com/android/server/connectivity/mdns/MdnsPacket.java
new file mode 100644
index 0000000..eae084a
--- /dev/null
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsPacket.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 com.android.server.connectivity.mdns;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * A class holding data that can be included in a mDNS packet.
+ */
+public class MdnsPacket {
+ public final int flags;
+ public final List<MdnsRecord> questions;
+ public final List<MdnsRecord> answers;
+ public final List<MdnsRecord> authorityRecords;
+ public final List<MdnsRecord> additionalRecords;
+
+ MdnsPacket(int flags,
+ List<MdnsRecord> questions,
+ List<MdnsRecord> answers,
+ List<MdnsRecord> authorityRecords,
+ List<MdnsRecord> additionalRecords) {
+ this.flags = flags;
+ this.questions = Collections.unmodifiableList(questions);
+ this.answers = Collections.unmodifiableList(answers);
+ this.authorityRecords = Collections.unmodifiableList(authorityRecords);
+ this.additionalRecords = Collections.unmodifiableList(additionalRecords);
+ }
+}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsPacketRepeater.java b/service/mdns/com/android/server/connectivity/mdns/MdnsPacketRepeater.java
new file mode 100644
index 0000000..015dbd8
--- /dev/null
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsPacketRepeater.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 com.android.server.connectivity.mdns;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.util.Log;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+
+/**
+ * A class used to send several packets at given time intervals.
+ * @param <T> The type of the request providing packet repeating parameters.
+ */
+public abstract class MdnsPacketRepeater<T extends MdnsPacketRepeater.Request> {
+ private static final boolean DBG = MdnsAdvertiser.DBG;
+ @NonNull
+ private final MdnsReplySender mReplySender;
+ @NonNull
+ protected final Handler mHandler;
+ @Nullable
+ private final PacketRepeaterCallback<T> mCb;
+
+ /**
+ * Status callback from {@link MdnsPacketRepeater}.
+ *
+ * Callbacks are called on the {@link MdnsPacketRepeater} handler thread.
+ * @param <T> The type of the request providing packet repeating parameters.
+ */
+ public interface PacketRepeaterCallback<T extends MdnsPacketRepeater.Request> {
+ /**
+ * Called when a packet was sent.
+ */
+ default void onSent(int index, @NonNull T info) {}
+
+ /**
+ * Called when the {@link MdnsPacketRepeater} is done sending packets.
+ */
+ default void onFinished(@NonNull T info) {}
+ }
+
+ /**
+ * A request to repeat packets.
+ *
+ * All methods are called in the looper thread.
+ */
+ public interface Request {
+ /**
+ * Get a packet to send for one iteration.
+ */
+ @NonNull
+ MdnsPacket getPacket(int index);
+
+ /**
+ * Get a set of destinations for the packet for one iteration.
+ */
+ @NonNull
+ Iterable<SocketAddress> getDestinations(int index);
+
+ /**
+ * Get the delay in milliseconds until the next packet transmission.
+ */
+ long getDelayMs(int nextIndex);
+
+ /**
+ * Get the number of packets that should be sent.
+ */
+ int getNumSends();
+ }
+
+ /**
+ * Get the logging tag to use.
+ */
+ @NonNull
+ protected abstract String getTag();
+
+ private final class ProbeHandler extends Handler {
+ ProbeHandler(@NonNull Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ final int index = msg.arg1;
+ final T request = (T) msg.obj;
+
+ if (index >= request.getNumSends()) {
+ if (mCb != null) {
+ mCb.onFinished(request);
+ }
+ return;
+ }
+
+ final MdnsPacket packet = request.getPacket(index);
+ final Iterable<SocketAddress> destinations = request.getDestinations(index);
+ if (DBG) {
+ Log.v(getTag(), "Sending packets to " + destinations + " for iteration "
+ + index + " out of " + request.getNumSends());
+ }
+ for (SocketAddress destination : destinations) {
+ try {
+ mReplySender.sendNow(packet, destination);
+ } catch (IOException e) {
+ Log.e(getTag(), "Error sending packet to " + destination, e);
+ }
+ }
+
+ int nextIndex = index + 1;
+ // No need to go through the last handler loop if there's no callback to call
+ if (nextIndex < request.getNumSends() || mCb != null) {
+ // TODO: consider using AlarmManager / WakeupMessage to avoid missing sending during
+ // deep sleep; but this would affect battery life, and discovered services are
+ // likely not to be available since the device is in deep sleep anyway.
+ final long delay = request.getDelayMs(nextIndex);
+ sendMessageDelayed(obtainMessage(msg.what, nextIndex, 0, request), delay);
+ if (DBG) Log.v(getTag(), "Scheduled next packet in " + delay + "ms");
+ }
+
+ // Call onSent after scheduling the next run, to allow the callback to cancel it
+ if (mCb != null) {
+ mCb.onSent(index, request);
+ }
+ }
+ }
+
+ protected MdnsPacketRepeater(@NonNull Looper looper, @NonNull MdnsReplySender replySender,
+ @Nullable PacketRepeaterCallback<T> cb) {
+ mHandler = new ProbeHandler(looper);
+ mReplySender = replySender;
+ mCb = cb;
+ }
+
+ protected void startSending(int id, @NonNull T request, long initialDelayMs) {
+ if (DBG) {
+ Log.v(getTag(), "Starting send with id " + id + ", request "
+ + request.getClass().getSimpleName() + ", delay " + initialDelayMs);
+ }
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(id, 0, 0, request), initialDelayMs);
+ }
+
+ /**
+ * Stop sending the packets for the specified ID
+ * @return true if probing was in progress, false if this was a no-op
+ */
+ public boolean stop(int id) {
+ if (mHandler.getLooper().getThread() != Thread.currentThread()) {
+ throw new IllegalStateException("stop can only be called from the looper thread");
+ }
+ // Since this is run on the looper thread, messages cannot be currently processing and are
+ // all in the handler queue; unless this method is called from a message, but the current
+ // message cannot be cancelled.
+ if (mHandler.hasMessages(id)) {
+ if (DBG) {
+ Log.v(getTag(), "Stopping send on id " + id);
+ }
+ mHandler.removeMessages(id);
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsPacketWriter.java b/service/mdns/com/android/server/connectivity/mdns/MdnsPacketWriter.java
index 611787f..1f22fa9 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsPacketWriter.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsPacketWriter.java
@@ -29,7 +29,7 @@
public class MdnsPacketWriter {
private static final int MDNS_POINTER_MASK = 0xC000;
private final byte[] data;
- private final Map<Integer, String[]> labelDictionary;
+ private final Map<Integer, String[]> labelDictionary = new HashMap<>();
private int pos = 0;
private int savedWritePos = -1;
@@ -44,7 +44,15 @@
}
data = new byte[maxSize];
- labelDictionary = new HashMap<>();
+ }
+
+ /**
+ * Constructs a writer for a new packet.
+ *
+ * @param buffer The buffer to write to.
+ */
+ public MdnsPacketWriter(byte[] buffer) {
+ data = buffer;
}
/** Returns the current write position. */
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsReplySender.java b/service/mdns/com/android/server/connectivity/mdns/MdnsReplySender.java
new file mode 100644
index 0000000..2acd789
--- /dev/null
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsReplySender.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * 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 com.android.server.connectivity.mdns;
+
+import android.annotation.NonNull;
+import android.os.Looper;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.MulticastSocket;
+import java.net.SocketAddress;
+
+/**
+ * A class that handles sending mDNS replies to a {@link MulticastSocket}, possibly queueing them
+ * to be sent after some delay.
+ *
+ * TODO: implement sending after a delay, combining queued replies and duplicate answer suppression
+ */
+public class MdnsReplySender {
+ @NonNull
+ private final MulticastSocket mSocket;
+ @NonNull
+ private final Looper mLooper;
+ @NonNull
+ private final byte[] mPacketCreationBuffer;
+
+ public MdnsReplySender(@NonNull Looper looper,
+ @NonNull MulticastSocket socket, @NonNull byte[] packetCreationBuffer) {
+ mLooper = looper;
+ mSocket = socket;
+ mPacketCreationBuffer = packetCreationBuffer;
+ }
+
+ /**
+ * Send a packet immediately.
+ *
+ * Must be called on the looper thread used by the {@link MdnsReplySender}.
+ */
+ public void sendNow(@NonNull MdnsPacket packet, @NonNull SocketAddress destination)
+ throws IOException {
+ if (Thread.currentThread() != mLooper.getThread()) {
+ throw new IllegalStateException("sendNow must be called in the handler thread");
+ }
+
+ // TODO: support packets over size (send in multiple packets with TC bit set)
+ final MdnsPacketWriter writer = new MdnsPacketWriter(mPacketCreationBuffer);
+
+ writer.writeUInt16(0); // Transaction ID (advertisement: 0)
+ writer.writeUInt16(packet.flags); // Response, authoritative (rfc6762 18.4)
+ writer.writeUInt16(packet.questions.size()); // questions count
+ writer.writeUInt16(packet.answers.size()); // answers count
+ writer.writeUInt16(packet.authorityRecords.size()); // authority entries count
+ writer.writeUInt16(packet.additionalRecords.size()); // additional records count
+
+ for (MdnsRecord record : packet.questions) {
+ record.write(writer, 0L);
+ }
+ for (MdnsRecord record : packet.answers) {
+ record.write(writer, 0L);
+ }
+ for (MdnsRecord record : packet.authorityRecords) {
+ record.write(writer, 0L);
+ }
+ for (MdnsRecord record : packet.additionalRecords) {
+ record.write(writer, 0L);
+ }
+
+ final int len = writer.getWritePosition();
+ final byte[] outBuffer = new byte[len];
+ System.arraycopy(mPacketCreationBuffer, 0, outBuffer, 0, len);
+
+ mSocket.send(new DatagramPacket(outBuffer, 0, len, destination));
+ }
+}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
index 861acbb..6c2bc19 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
@@ -256,6 +256,9 @@
response = new MdnsResponse(now);
responses.add(response);
}
+ // Set interface index earlier because some responses have PTR record only.
+ // Need to know every response is getting from which interface.
+ response.setInterfaceIndex(interfaceIndex);
response.addPointerRecord((MdnsPointerRecord) record);
}
}
@@ -286,13 +289,13 @@
List<MdnsResponse> matchingResponses =
findResponsesWithHostName(responses, inetRecord.getName());
for (MdnsResponse response : matchingResponses) {
- assignInetRecord(response, inetRecord, interfaceIndex);
+ assignInetRecord(response, inetRecord);
}
} else {
MdnsResponse response =
findResponseWithHostName(responses, inetRecord.getName());
if (response != null) {
- assignInetRecord(response, inetRecord, interfaceIndex);
+ assignInetRecord(response, inetRecord);
}
}
}
@@ -301,14 +304,11 @@
return SUCCESS;
}
- private static void assignInetRecord(
- MdnsResponse response, MdnsInetAddressRecord inetRecord, int interfaceIndex) {
+ private static void assignInetRecord(MdnsResponse response, MdnsInetAddressRecord inetRecord) {
if (inetRecord.getInet4Address() != null) {
response.setInet4AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
} else if (inetRecord.getInet6Address() != null) {
response.setInet6AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
}
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
index 53e58d1..7a8fcc0 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
@@ -44,9 +44,9 @@
/**
* Called when an mDNS service instance is no longer valid and removed.
*
- * @param serviceInstanceName The service instance name of the removed mDNS service.
+ * @param serviceInfo The service instance of the removed mDNS service.
*/
- void onServiceRemoved(@NonNull String serviceInstanceName);
+ void onServiceRemoved(@NonNull MdnsServiceInfo serviceInfo);
/**
* Called when searching for mDNS service has stopped because of an error.
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
index f1b2def..9683bc9 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
@@ -270,7 +270,8 @@
public Map<String, String> getAttributes() {
Map<String, String> map = new HashMap<>(attributes.size());
for (Map.Entry<String, byte[]> kv : attributes.entrySet()) {
- map.put(kv.getKey(), new String(kv.getValue(), UTF_8));
+ final byte[] value = kv.getValue();
+ map.put(kv.getKey(), value == null ? null : new String(value, UTF_8));
}
return Collections.unmodifiableMap(map);
}
@@ -342,7 +343,7 @@
// 2. If there is no '=' in a DNS-SD TXT record string, then it is a
// boolean attribute, simply identified as being present, with no value.
if (delimitPos < 0) {
- return new TextEntry(new String(textBytes, US_ASCII), "");
+ return new TextEntry(new String(textBytes, US_ASCII), (byte[]) null);
} else if (delimitPos == 0) {
return null;
}
@@ -353,13 +354,13 @@
/** Creates a new {@link TextEntry} with given key and value of a UTF-8 string. */
public TextEntry(String key, String value) {
- this(key, value.getBytes(UTF_8));
+ this(key, value == null ? null : value.getBytes(UTF_8));
}
/** Creates a new {@link TextEntry} with given key and value of a byte array. */
public TextEntry(String key, byte[] value) {
this.key = key;
- this.value = value.clone();
+ this.value = value == null ? null : value.clone();
}
private TextEntry(Parcel in) {
@@ -372,17 +373,24 @@
}
public byte[] getValue() {
- return value.clone();
+ return value == null ? null : value.clone();
}
/** Converts this {@link TextEntry} instance to '=' separated byte array. */
public byte[] toBytes() {
- return ByteUtils.concat(key.getBytes(US_ASCII), new byte[]{'='}, value);
+ final byte[] keyBytes = key.getBytes(US_ASCII);
+ if (value == null) {
+ return keyBytes;
+ }
+ return ByteUtils.concat(keyBytes, new byte[]{'='}, value);
}
/** Converts this {@link TextEntry} instance to '=' separated string. */
@Override
public String toString() {
+ if (value == null) {
+ return key;
+ }
return key + "=" + new String(value, UTF_8);
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
index 8ca71b9..0fd6025 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
@@ -91,8 +91,12 @@
private static MdnsServiceInfo buildMdnsServiceInfoFromResponse(
@NonNull MdnsResponse response, @NonNull String[] serviceTypeLabels) {
- String[] hostName = response.getServiceRecord().getServiceHost();
- int port = response.getServiceRecord().getServicePort();
+ String[] hostName = null;
+ int port = 0;
+ if (response.hasServiceRecord()) {
+ hostName = response.getServiceRecord().getServiceHost();
+ port = response.getServiceRecord().getServicePort();
+ }
String ipv4Address = null;
String ipv6Address = null;
@@ -104,15 +108,17 @@
Inet6Address inet6Address = response.getInet6AddressRecord().getInet6Address();
ipv6Address = (inet6Address == null) ? null : inet6Address.getHostAddress();
}
- if (ipv4Address == null && ipv6Address == null) {
- throw new IllegalArgumentException(
- "Either ipv4Address or ipv6Address must be non-null");
- }
String serviceInstanceName = response.getServiceInstanceName();
if (serviceInstanceName == null) {
throw new IllegalStateException(
"mDNS response must have non-null service instance name");
}
+ List<String> textStrings = null;
+ List<MdnsServiceInfo.TextEntry> textEntries = null;
+ if (response.hasTextRecord()) {
+ textStrings = response.getTextRecord().getStrings();
+ textEntries = response.getTextRecord().getEntries();
+ }
// TODO: Throw an error message if response doesn't have Inet6 or Inet4 address.
return new MdnsServiceInfo(
serviceInstanceName,
@@ -122,8 +128,8 @@
port,
ipv4Address,
ipv6Address,
- response.getTextRecord().getStrings(),
- response.getTextRecord().getEntries(),
+ textStrings,
+ textEntries,
response.getInterfaceIndex());
}
@@ -246,12 +252,14 @@
}
private void onGoodbyeReceived(@Nullable String serviceInstanceName) {
- if (serviceInstanceName == null) {
+ final MdnsResponse response = instanceNameToResponse.remove(serviceInstanceName);
+ if (response == null) {
return;
}
- instanceNameToResponse.remove(serviceInstanceName);
for (MdnsServiceBrowserListener listener : listeners) {
- listener.onServiceRemoved(serviceInstanceName);
+ final MdnsServiceInfo serviceInfo =
+ buildMdnsServiceInfoFromResponse(response, serviceTypeLabels);
+ listener.onServiceRemoved(serviceInfo);
}
}
@@ -425,7 +433,10 @@
String serviceInstanceName =
existingResponse.getServiceInstanceName();
if (serviceInstanceName != null) {
- listener.onServiceRemoved(serviceInstanceName);
+ final MdnsServiceInfo serviceInfo =
+ buildMdnsServiceInfoFromResponse(
+ existingResponse, serviceTypeLabels);
+ listener.onServiceRemoved(serviceInfo);
}
}
}
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index 9b23395..4c9e3a3 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -75,7 +75,6 @@
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID;
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE;
import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_5;
@@ -251,6 +250,7 @@
import com.android.modules.utils.BasicShellCommandHandler;
import com.android.modules.utils.build.SdkLevel;
import com.android.net.module.util.BaseNetdUnsolicitedEventListener;
+import com.android.net.module.util.BinderUtils;
import com.android.net.module.util.BitUtils;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.DeviceConfigUtils;
@@ -5162,7 +5162,9 @@
description = settingValue + " (?)";
}
pw.println("Avoid bad wifi setting: " + description);
- final Boolean configValue = mMultinetworkPolicyTracker.deviceConfigActivelyPreferBadWifi();
+
+ final Boolean configValue = BinderUtils.withCleanCallingIdentity(
+ () -> mMultinetworkPolicyTracker.deviceConfigActivelyPreferBadWifi());
if (null == configValue) {
description = "unset";
} else if (configValue) {
@@ -8062,10 +8064,6 @@
final boolean oldMetered = prevNc.isMetered();
final boolean newMetered = newNc.isMetered();
final boolean meteredChanged = oldMetered != newMetered;
- final boolean oldTempMetered = prevNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
- final boolean newTempMetered = newNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
- final boolean tempMeteredChanged = oldTempMetered != newTempMetered;
-
if (meteredChanged) {
maybeNotifyNetworkBlocked(nai, oldMetered, newMetered,
@@ -8076,7 +8074,7 @@
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
// Report changes that are interesting for network statistics tracking.
- if (meteredChanged || roamingChanged || tempMeteredChanged) {
+ if (meteredChanged || roamingChanged) {
notifyIfacesChangedForNetworkStats();
}
diff --git a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
index 192694b..cdf32a4 100644
--- a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
+++ b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
@@ -78,7 +78,7 @@
NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1))
.setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -91,7 +91,7 @@
NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1))
.setRoaming(ROAMING_YES).setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_YES, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -107,7 +107,7 @@
// regardless of IMSI. See buildTemplateMobileWildcard.
NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(MATCH_MOBILE_WILDCARD, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -119,7 +119,7 @@
.setMeteredness(METERED_YES).setRatType(TelephonyManager.NETWORK_TYPE_UMTS)
.build().let {
val expectedTemplate = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_ALL, DEFAULT_NETWORK_ALL, TelephonyManager.NETWORK_TYPE_UMTS,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -129,7 +129,7 @@
// regardless of Wifi Network Key. See buildTemplateWifiWildcard and buildTemplateWifi.
NetworkTemplate.Builder(MATCH_WIFI).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -139,7 +139,7 @@
// See buildTemplateWifi(wifiNetworkKey).
NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1),
+ emptyArray<String>() /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -161,7 +161,7 @@
listOf(MATCH_ETHERNET, MATCH_BLUETOOTH).forEach { matchRule ->
NetworkTemplate.Builder(matchRule).build().let {
val expectedTemplate = NetworkTemplate(matchRule, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -196,7 +196,7 @@
// Verify template which matches wifi wildcard with the given empty key set.
NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf<String>()).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/,
- arrayOf<String>() /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
diff --git a/tests/cts/net/src/android/net/cts/BatteryStatsManagerTest.java b/tests/cts/net/src/android/net/cts/BatteryStatsManagerTest.java
index e2821cb..3c71c90 100644
--- a/tests/cts/net/src/android/net/cts/BatteryStatsManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/BatteryStatsManagerTest.java
@@ -155,6 +155,13 @@
// removing data activity tracking.
mCtsNetUtils.ensureWifiConnected();
+ // There's rate limit to update mobile battery so if ConnectivityService calls
+ // BatteryStatsManager.reportMobileRadioPowerState when default network changed,
+ // the mobile stats might not be updated. But if the mobile update due to other
+ // reasons (plug/unplug, battery level change, etc) will be unaffected. Thus here
+ // dumps the battery stats to trigger a full sync of data.
+ executeShellCommand("dumpsys batterystats");
+
// Check cellular battery stats are updated.
runAsShell(UPDATE_DEVICE_STATS,
() -> assertStatsEventually(mBsm::getCellularBatteryStats,
diff --git a/tests/unit/java/android/net/NetworkIdentityTest.kt b/tests/unit/java/android/net/NetworkIdentityTest.kt
index d84328c..9667f8f 100644
--- a/tests/unit/java/android/net/NetworkIdentityTest.kt
+++ b/tests/unit/java/android/net/NetworkIdentityTest.kt
@@ -101,15 +101,15 @@
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
assertFalse(netIdent2.isMetered())
- // Verify network is not metered because it has NET_CAPABILITY_TEMPORARILY_NOT_METERED
- // capability .
+ // In current design, a network that has NET_CAPABILITY_TEMPORARILY_NOT_METERED
+ // capability will be treated as metered.
val capsTempNotMetered = NetworkCapabilities().apply {
setCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED, true)
}
val netIdent3 = NetworkIdentity.buildNetworkIdentity(mockContext,
buildMobileNetworkStateSnapshot(capsTempNotMetered, TEST_IMSI1),
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
- assertFalse(netIdent3.isMetered())
+ assertTrue(netIdent3.isMetered())
}
@Test
diff --git a/tests/unit/java/android/net/NetworkTemplateTest.kt b/tests/unit/java/android/net/NetworkTemplateTest.kt
index 666da53..3cf0228 100644
--- a/tests/unit/java/android/net/NetworkTemplateTest.kt
+++ b/tests/unit/java/android/net/NetworkTemplateTest.kt
@@ -32,6 +32,7 @@
import android.net.NetworkStats.METERED_NO
import android.net.NetworkStats.METERED_YES
import android.net.NetworkStats.ROAMING_ALL
+import android.net.NetworkTemplate.MATCH_CARRIER
import android.net.NetworkTemplate.MATCH_MOBILE
import android.net.NetworkTemplate.MATCH_MOBILE_WILDCARD
import android.net.NetworkTemplate.MATCH_TEST
@@ -41,12 +42,8 @@
import android.net.NetworkTemplate.OEM_MANAGED_ALL
import android.net.NetworkTemplate.OEM_MANAGED_NO
import android.net.NetworkTemplate.OEM_MANAGED_YES
-import android.net.NetworkTemplate.WIFI_NETWORK_KEY_ALL
-import android.net.NetworkTemplate.buildTemplateCarrierMetered
import android.net.NetworkTemplate.buildTemplateMobileAll
import android.net.NetworkTemplate.buildTemplateMobileWildcard
-import android.net.NetworkTemplate.buildTemplateMobileWithRatType
-import android.net.NetworkTemplate.buildTemplateWifi
import android.net.NetworkTemplate.buildTemplateWifiWildcard
import android.net.NetworkTemplate.normalize
import android.net.wifi.WifiInfo
@@ -144,10 +141,16 @@
@Test
fun testWifiMatches() {
- val templateWifiKey1 = buildTemplateWifi(TEST_WIFI_KEY1)
- val templateWifiKey1ImsiNull = buildTemplateWifi(TEST_WIFI_KEY1, null)
- val templateWifiKey1Imsi1 = buildTemplateWifi(TEST_WIFI_KEY1, TEST_IMSI1)
- val templateWifiKeyAllImsi1 = buildTemplateWifi(WIFI_NETWORK_KEY_ALL, TEST_IMSI1)
+ val templateWifiKey1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKey1ImsiNull = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(null))
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKey1Imsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(TEST_IMSI1))
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKeyAllImsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
val identMobile1 = buildNetworkIdentity(mockContext, buildMobileNetworkState(TEST_IMSI1),
false, TelephonyManager.NETWORK_TYPE_UMTS)
@@ -196,8 +199,10 @@
@Test
fun testMobileMatches() {
val templateMobileImsi1 = buildTemplateMobileAll(TEST_IMSI1)
- val templateMobileImsi2WithRatType = buildTemplateMobileWithRatType(TEST_IMSI2,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_YES)
+ val templateMobileImsi2WithRatType = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI2))
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
val mobileImsi1 = buildNetworkState(TYPE_MOBILE, TEST_IMSI1, null /* wifiKey */,
OEM_NONE, true /* metered */)
@@ -225,8 +230,8 @@
@Test
fun testMobileWildcardMatches() {
val templateMobileWildcard = buildTemplateMobileWildcard()
- val templateMobileNullImsiWithRatType = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_ALL)
+ val templateMobileNullImsiWithRatType = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
val mobileImsi1 = buildMobileNetworkState(TEST_IMSI1)
val identMobile1 = buildNetworkIdentity(mockContext, mobileImsi1,
@@ -277,7 +282,9 @@
@Test
fun testCarrierMeteredMatches() {
- val templateCarrierImsi1Metered = buildTemplateCarrierMetered(TEST_IMSI1)
+ val templateCarrierImsi1Metered = NetworkTemplate.Builder(MATCH_CARRIER)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
val mobileImsi1 = buildMobileNetworkState(TEST_IMSI1)
val mobileImsi1Unmetered = buildNetworkState(TYPE_MOBILE, TEST_IMSI1,
@@ -322,24 +329,25 @@
// Build UMTS template that matches mobile identities with RAT in the same
// group with any IMSI. See {@link NetworkTemplate#getCollapsedRatType}.
- val templateUmtsMetered = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_YES)
+ val templateUmtsMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
// Build normal template that matches mobile identities with any RAT and IMSI.
- val templateAllMetered = buildTemplateMobileWithRatType(null, NETWORK_TYPE_ALL,
- METERED_YES)
+ val templateAllMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES).build()
// Build template with UNKNOWN RAT that matches mobile identities with RAT that
// cannot be determined.
- val templateUnknownMetered =
- buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UNKNOWN,
- METERED_YES)
-
- val templateUmtsNonMetered = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_NO)
- val templateAllNonMetered = buildTemplateMobileWithRatType(null, NETWORK_TYPE_ALL,
- METERED_NO)
- val templateUnknownNonMetered =
- buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UNKNOWN,
- METERED_NO)
+ val templateUnknownMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UNKNOWN).build()
+ val templateUmtsNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
+ val templateAllNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO).build()
+ val templateUnknownNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UNKNOWN).build()
val identUmtsMetered = buildNetworkIdentity(
mockContext, stateMobileImsi1Metered, false, TelephonyManager.NETWORK_TYPE_UMTS)
@@ -440,15 +448,15 @@
@Test
fun testParcelUnparcel() {
- val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, null,
- arrayOf<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
+ val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, emptyArray<String>(),
+ emptyArray<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
TelephonyManager.NETWORK_TYPE_LTE, OEM_MANAGED_ALL,
SUBSCRIBER_ID_MATCH_RULE_EXACT)
- val templateWifi = NetworkTemplate(MATCH_WIFI, null, null,
+ val templateWifi = NetworkTemplate(MATCH_WIFI, null, emptyArray<String>(),
arrayOf(TEST_WIFI_KEY1), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
- val templateOem = NetworkTemplate(MATCH_MOBILE, null, null,
- arrayOf<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
+ val templateOem = NetworkTemplate(MATCH_MOBILE, null, emptyArray<String>(),
+ emptyArray<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
OEM_MANAGED_YES, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertParcelSane(templateMobile, 10)
assertParcelSane(templateWifi, 10)
@@ -553,7 +561,7 @@
@Test
fun testNormalize() {
- var mergedImsiList = listOf(arrayOf(TEST_IMSI1, TEST_IMSI2))
+ var mergedImsiList = arrayOf(TEST_IMSI1, TEST_IMSI2)
val identMobileImsi1 = buildNetworkIdentity(mockContext,
buildMobileNetworkState(TEST_IMSI1), false /* defaultNetwork */,
TelephonyManager.NETWORK_TYPE_UMTS)
@@ -575,12 +583,18 @@
it.assertMatches(identMobileImsi2)
it.assertDoesNotMatch(identMobileImsi3)
}
- normalize(buildTemplateCarrierMetered(TEST_IMSI1), mergedImsiList).also {
+ val templateCarrierImsi1 = NetworkTemplate.Builder(MATCH_CARRIER)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
+ normalize(templateCarrierImsi1, mergedImsiList).also {
it.assertMatches(identMobileImsi1)
it.assertMatches(identMobileImsi2)
it.assertDoesNotMatch(identMobileImsi3)
}
- normalize(buildTemplateWifi(TEST_WIFI_KEY1, TEST_IMSI1), mergedImsiList).also {
+ val templateWifiKey1Imsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1))
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
+ normalize(templateWifiKey1Imsi1, mergedImsiList).also {
it.assertMatches(identWifiImsi1Key1)
it.assertMatches(identWifiImsi2Key1)
it.assertDoesNotMatch(identWifiImsi3WifiKey1)
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index f80b9bd..67cc7bd 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -7336,10 +7336,11 @@
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
reset(mStatsManager);
- // Temp metered change should update ifaces
+ // Temp metered change shouldn't update ifaces
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
waitForIdle();
- expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
+ verify(mStatsManager, never()).notifyNetworkStatus(eq(onlyCell()),
+ any(List.class), eq(MOBILE_IFNAME), any(List.class));
reset(mStatsManager);
// Congested change shouldn't update ifaces
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceInfoTest.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceInfoTest.java
index d3934c2..ebdb73f 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceInfoTest.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceInfoTest.java
@@ -164,7 +164,8 @@
List.of("vn=Alphabet Inc.", "mn=Google Nest Hub Max", "id=12345"),
List.of(
MdnsServiceInfo.TextEntry.fromString("vn=Google Inc."),
- MdnsServiceInfo.TextEntry.fromString("mn=Google Nest Hub Max")));
+ MdnsServiceInfo.TextEntry.fromString("mn=Google Nest Hub Max"),
+ MdnsServiceInfo.TextEntry.fromString("test=")));
beforeParcel.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
@@ -208,11 +209,11 @@
}
@Test
- public void textEntry_fromStringWithoutAssignPunc_valueisEmpty() {
+ public void textEntry_fromStringWithoutAssignPunc_noValue() {
TextEntry entry = TextEntry.fromString("AA");
assertEquals("AA", entry.getKey());
- assertArrayEquals(new byte[] {}, entry.getValue());
+ assertNull(entry.getValue());
}
@Test
@@ -241,11 +242,11 @@
}
@Test
- public void textEntry_fromBytesWithoutAssignPunc_valueisEmpty() {
+ public void textEntry_fromBytesWithoutAssignPunc_noValue() {
TextEntry entry = TextEntry.fromBytes(new byte[] {'A', 'A'});
assertEquals("AA", entry.getKey());
- assertArrayEquals(new byte[] {}, entry.getValue());
+ assertNull(entry.getValue());
}
@Test
@@ -270,4 +271,12 @@
assertEquals(new TextEntry("BB", "xxyyzz"), new TextEntry("BB", "xxyyzz"));
assertEquals(new TextEntry("AA", "XXYYZZ"), new TextEntry("AA", "XXYYZZ"));
}
+
+ @Test
+ public void textEntry_fromString_valueIsEmpty() {
+ TextEntry entry = TextEntry.fromString("AA=");
+
+ assertEquals("AA", entry.getKey());
+ assertArrayEquals(new byte[] {}, entry.getValue());
+ }
}
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
index 6b10c71..6f8b85a 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
@@ -24,6 +24,7 @@
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -35,6 +36,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import android.annotation.NonNull;
+import android.text.TextUtils;
import com.android.server.connectivity.mdns.MdnsServiceInfo.TextEntry;
import com.android.server.connectivity.mdns.MdnsServiceTypeClient.QueryTaskConfig;
@@ -57,6 +59,7 @@
import java.net.Inet6Address;
import java.net.SocketAddress;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -71,6 +74,7 @@
public class MdnsServiceTypeClientTests {
private static final String SERVICE_TYPE = "_googlecast._tcp.local";
+ private static final String[] SERVICE_TYPE_LABELS = TextUtils.split(SERVICE_TYPE, "\\.");
@Mock
private MdnsServiceBrowserListener mockListenerOne;
@@ -491,17 +495,43 @@
}
@Test
- public void processResponse_goodBye() {
+ public void processResponse_goodBye() throws Exception {
client.startSendAndReceive(mockListenerOne, MdnsSearchOptions.getDefaultOptions());
client.startSendAndReceive(mockListenerTwo, MdnsSearchOptions.getDefaultOptions());
+ final String serviceName = "service-instance-1";
+ final String ipV6Address = "2000:3333::da6c:63ff:fe7c:7483";
+ final int interfaceIndex = 999;
+ // Process the initial response.
+ final MdnsResponse initialResponse =
+ createResponse(
+ serviceName,
+ ipV6Address,
+ 5353 /* port */,
+ Collections.singletonList("ABCDE"),
+ Collections.emptyMap(),
+ interfaceIndex);
+ client.processResponse(initialResponse);
MdnsResponse response = mock(MdnsResponse.class);
- when(response.getServiceInstanceName()).thenReturn("goodbye-service-instance-name");
- when(response.isGoodbye()).thenReturn(true);
+ doReturn("goodbye-service").when(response).getServiceInstanceName();
+ doReturn(interfaceIndex).when(response).getInterfaceIndex();
+ doReturn(true).when(response).isGoodbye();
client.processResponse(response);
+ // Verify onServiceRemoved won't be called if the service is not existed.
+ verify(mockListenerOne, never()).onServiceRemoved(any());
+ verify(mockListenerTwo, never()).onServiceRemoved(any());
- verify(mockListenerOne).onServiceRemoved("goodbye-service-instance-name");
- verify(mockListenerTwo).onServiceRemoved("goodbye-service-instance-name");
+ // Verify onServiceRemoved would be called.
+ doReturn(serviceName).when(response).getServiceInstanceName();
+ client.processResponse(response);
+ verify(mockListenerOne).onServiceRemoved(argThat(
+ info -> serviceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == interfaceIndex));
+ verify(mockListenerTwo).onServiceRemoved(argThat(
+ info -> serviceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == interfaceIndex));
}
@Test
@@ -563,7 +593,7 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
}
@Test
@@ -586,7 +616,7 @@
MdnsResponse initialResponse =
createResponse(
serviceInstanceName, "192.168.1.1", 5353, List.of("ABCDE"),
- Map.of());
+ Map.of(), 999 /* interfaceIndex */);
client.processResponse(initialResponse);
// Clear the scheduled runnable.
@@ -597,14 +627,17 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
// Simulate the case where the response is after TTL.
when(initialResponse.getServiceRecord().getRemainingTTL(anyLong())).thenReturn((long) 0);
firstMdnsTask.run();
// Verify onServiceRemoved was called.
- verify(mockListenerOne, times(1)).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, times(1)).onServiceRemoved(argThat(
+ info -> serviceInstanceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == 999));
}
@Test
@@ -636,7 +669,7 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
}
@Test
@@ -659,7 +692,7 @@
MdnsResponse initialResponse =
createResponse(
serviceInstanceName, "192.168.1.1", 5353, List.of("ABCDE"),
- Map.of());
+ Map.of(), 999 /* interfaceIndex */);
client.processResponse(initialResponse);
// Clear the scheduled runnable.
@@ -669,8 +702,11 @@
when(initialResponse.getServiceRecord().getRemainingTTL(anyLong())).thenReturn((long) 0);
firstMdnsTask.run();
- // Verify onServiceRemoved was not called.
- verify(mockListenerOne, times(1)).onServiceRemoved(serviceInstanceName);
+ // Verify onServiceRemoved was called.
+ verify(mockListenerOne, times(1)).onServiceRemoved(argThat(
+ info -> serviceInstanceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == 999));
}
// verifies that the right query was enqueued with the right delay, and send query by executing
diff --git a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
index e8f30d6..d7c90d8 100644
--- a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -995,8 +995,8 @@
forcePollAndWaitForIdle();
// Verify service recorded history.
- assertUidTotal(templateMetered5g, UID_RED, 128L, 2L, 128L, 2L, 0);
- assertUidTotal(templateNonMetered5g, UID_RED, 256, 3L, 128L, 5L, 0);
+ assertUidTotal(templateMetered5g, UID_RED, 384L, 5L, 256L, 7L, 0);
+ assertUidTotal(templateNonMetered5g, UID_RED, 0L, 0L, 0L, 0L, 0);
}
@Test
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 94bbf16..f8f2b6a 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -14,8 +14,54 @@
//
// This file is automatically generated by gen_android_bp. Do not edit.
+// GN: //base/allocator:buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_buildflags__android_arm",
+ cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator:buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_buildflags__android_arm64",
+ cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base/allocator:buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_buildflags__android_x86",
cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -32,10 +78,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_buildflags__android_x86_64",
cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -52,10 +101,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_buildflags__host",
cmd: "echo '--flags USE_PARTITION_ALLOC=\"false\" USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -66,16 +118,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm",
+ cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:chromecast_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/chromecast_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm64",
+ cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:chromecast_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/chromecast_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86",
cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -92,10 +195,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86_64",
cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -112,10 +218,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__host",
cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -126,16 +235,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/partition_allocator/chromecast_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm",
+ cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:chromeos_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/chromeos_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm64",
+ cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:chromeos_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/chromeos_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86",
cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -152,10 +312,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86_64",
cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -172,10 +335,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__host",
cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -186,16 +352,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/partition_allocator/chromeos_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:debugging_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm",
+ cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:debugging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:debugging_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm64",
+ cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:debugging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86",
cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -212,10 +429,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86_64",
cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -232,10 +452,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__host",
cmd: "echo '--flags PA_DCHECK_IS_ON=\"true\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"true\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -246,16 +469,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:logging_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm",
+ cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:logging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/logging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:logging_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm64",
+ cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:logging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/logging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86",
cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -272,10 +546,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86_64",
cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -292,10 +569,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__host",
cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -306,12 +586,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/partition_allocator/logging_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc
@@ -387,7 +672,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -397,6 +681,71 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/arm/push_registers_asm.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ generated_headers: [
+ "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm",
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/arm64/push_registers_asm.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ "-march=armv8-a+memtag",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ generated_headers: [
+ "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_arm64",
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm64",
+ ],
+ },
android_x86: {
srcs: [
":cronet_aml_third_party_android_ndk_cpu_features",
@@ -410,6 +759,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
@@ -442,6 +792,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
@@ -473,6 +824,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__host",
@@ -492,8 +844,54 @@
},
}
+// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:partition_alloc_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/partition_alloc_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base/allocator/partition_allocator:partition_alloc_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/allocator/partition_allocator/partition_alloc_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86",
cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -510,10 +908,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -530,10 +931,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__host",
cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" GLUE_CORE_POOLS=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -544,16 +948,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/allocator/partition_allocator/partition_alloc_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:anchor_functions_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_anchor_functions_buildflags__android_arm",
+ cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:anchor_functions_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/android/library_loader/anchor_functions_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:anchor_functions_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_anchor_functions_buildflags__android_arm64",
+ cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:anchor_functions_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/android/library_loader/anchor_functions_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_anchor_functions_buildflags__android_x86",
cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -570,10 +1025,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_anchor_functions_buildflags__android_x86_64",
cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -590,10 +1048,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_anchor_functions_buildflags__host",
cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -604,21 +1065,24 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/android/library_loader/anchor_functions_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
-// GN: //base:android_runtime_jni_headers__android_x86
-genrule {
- name: "cronet_aml_base_android_runtime_jni_headers__android_x86",
+// GN: //base:android_runtime_jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_base_android_runtime_jni_headers__android_arm",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -647,15 +1111,92 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:android_runtime_jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_android_runtime_jni_headers__android_arm64",
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/base/android_runtime_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--jar_file " +
+ "$(location third_party/android_sdk/public/platforms/android-33/android.jar) " +
+ "--output_name " +
+ "Runnable_jni.h " +
+ "--output_name " +
+ "Runtime_jni.h " +
+ "--input_file " +
+ "java/lang/Runnable.class " +
+ "--input_file " +
+ "java/lang/Runtime.class " +
+ "--javap " +
+ "$$(find out/.path -name javap)",
+ out: [
+ "base/android_runtime_jni_headers/Runnable_jni.h",
+ "base/android_runtime_jni_headers/Runtime_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "third_party/android_sdk/public/platforms/android-33/android.jar",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:android_runtime_jni_headers__android_x86
+cc_genrule {
+ name: "cronet_aml_base_android_runtime_jni_headers__android_x86",
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/base/android_runtime_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--jar_file " +
+ "$(location third_party/android_sdk/public/platforms/android-33/android.jar) " +
+ "--output_name " +
+ "Runnable_jni.h " +
+ "--output_name " +
+ "Runtime_jni.h " +
+ "--input_file " +
+ "java/lang/Runnable.class " +
+ "--input_file " +
+ "java/lang/Runtime.class " +
+ "--javap " +
+ "$$(find out/.path -name javap)",
+ out: [
+ "base/android_runtime_jni_headers/Runnable_jni.h",
+ "base/android_runtime_jni_headers/Runtime_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "third_party/android_sdk/public/platforms/android-33/android.jar",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:android_runtime_jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_android_runtime_jni_headers__android_x86_64",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -684,6 +1225,9 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base
@@ -1137,7 +1681,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -1157,6 +1700,280 @@
"liblog",
],
},
+ android_arm: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_ashmem_ashmem",
+ "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
+ "base/android/android_hardware_buffer_compat.cc",
+ "base/android/android_image_reader_compat.cc",
+ "base/android/apk_assets.cc",
+ "base/android/application_status_listener.cc",
+ "base/android/base_feature_list.cc",
+ "base/android/base_features.cc",
+ "base/android/base_jni_onload.cc",
+ "base/android/build_info.cc",
+ "base/android/bundle_utils.cc",
+ "base/android/callback_android.cc",
+ "base/android/child_process_service.cc",
+ "base/android/command_line_android.cc",
+ "base/android/content_uri_utils.cc",
+ "base/android/cpu_features.cc",
+ "base/android/early_trace_event_binding.cc",
+ "base/android/event_log.cc",
+ "base/android/feature_list_jni.cc",
+ "base/android/features_jni.cc",
+ "base/android/field_trial_list.cc",
+ "base/android/important_file_writer_android.cc",
+ "base/android/int_string_callback.cc",
+ "base/android/jank_metric_uma_recorder.cc",
+ "base/android/java_exception_reporter.cc",
+ "base/android/java_handler_thread.cc",
+ "base/android/java_heap_dump_generator.cc",
+ "base/android/java_runtime.cc",
+ "base/android/jni_android.cc",
+ "base/android/jni_array.cc",
+ "base/android/jni_registrar.cc",
+ "base/android/jni_string.cc",
+ "base/android/jni_utils.cc",
+ "base/android/jni_weak_ref.cc",
+ "base/android/library_loader/anchor_functions.cc",
+ "base/android/library_loader/library_loader_hooks.cc",
+ "base/android/library_loader/library_prefetcher.cc",
+ "base/android/library_loader/library_prefetcher_hooks.cc",
+ "base/android/locale_utils.cc",
+ "base/android/memory_pressure_listener_android.cc",
+ "base/android/native_uma_recorder.cc",
+ "base/android/path_service_android.cc",
+ "base/android/path_utils.cc",
+ "base/android/radio_utils.cc",
+ "base/android/reached_addresses_bitset.cc",
+ "base/android/reached_code_profiler.cc",
+ "base/android/remove_stale_data.cc",
+ "base/android/scoped_hardware_buffer_fence_sync.cc",
+ "base/android/scoped_hardware_buffer_handle.cc",
+ "base/android/scoped_java_ref.cc",
+ "base/android/statistics_recorder_android.cc",
+ "base/android/sys_utils.cc",
+ "base/android/task_scheduler/post_task_android.cc",
+ "base/android/task_scheduler/task_runner_android.cc",
+ "base/android/thread_instruction_count.cc",
+ "base/android/timezone_utils.cc",
+ "base/android/trace_event_binding.cc",
+ "base/android/unguessable_token_android.cc",
+ "base/base_paths_android.cc",
+ "base/debug/stack_trace_android.cc",
+ "base/files/file_util_android.cc",
+ "base/files/scoped_file_android.cc",
+ "base/memory/platform_shared_memory_mapper_android.cc",
+ "base/memory/platform_shared_memory_region_android.cc",
+ "base/message_loop/message_pump_android.cc",
+ "base/os_compat_android.cc",
+ "base/power_monitor/power_monitor_device_source_android.cc",
+ "base/process/process_android.cc",
+ "base/profiler/chrome_unwind_info_android.cc",
+ "base/profiler/chrome_unwinder_android.cc",
+ "base/profiler/chrome_unwinder_android_v2.cc",
+ "base/profiler/stack_sampler_android.cc",
+ "base/system/sys_info_android.cc",
+ "base/threading/platform_thread_android.cc",
+ "base/time/time_android.cc",
+ "base/trace_event/cfi_backtrace_android.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ generated_headers: [
+ "cronet_aml_base_allocator_buildflags__android_arm",
+ "cronet_aml_base_anchor_functions_buildflags__android_arm",
+ "cronet_aml_base_android_runtime_jni_headers__android_arm",
+ "cronet_aml_base_base_jni_headers__android_arm",
+ "cronet_aml_base_build_date__android_arm",
+ "cronet_aml_base_cfi_buildflags__android_arm",
+ "cronet_aml_base_clang_profiling_buildflags__android_arm",
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_feature_list_buildflags__android_arm",
+ "cronet_aml_base_ios_cronet_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_base_message_pump_buildflags__android_arm",
+ "cronet_aml_base_orderfile_buildflags__android_arm",
+ "cronet_aml_base_parsing_buildflags__android_arm",
+ "cronet_aml_base_power_monitor_buildflags__android_arm",
+ "cronet_aml_base_profiler_buildflags__android_arm",
+ "cronet_aml_base_sanitizer_buildflags__android_arm",
+ "cronet_aml_base_synchronization_buildflags__android_arm",
+ "cronet_aml_base_tracing_buildflags__android_arm",
+ "cronet_aml_build_branding_buildflags__android_arm",
+ "cronet_aml_build_chromecast_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_build_config_compiler_compiler_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_allocator_buildflags__android_arm",
+ "cronet_aml_base_anchor_functions_buildflags__android_arm",
+ "cronet_aml_base_android_runtime_jni_headers__android_arm",
+ "cronet_aml_base_base_jni_headers__android_arm",
+ "cronet_aml_base_build_date__android_arm",
+ "cronet_aml_base_cfi_buildflags__android_arm",
+ "cronet_aml_base_clang_profiling_buildflags__android_arm",
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_feature_list_buildflags__android_arm",
+ "cronet_aml_base_ios_cronet_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_base_message_pump_buildflags__android_arm",
+ "cronet_aml_base_orderfile_buildflags__android_arm",
+ "cronet_aml_base_parsing_buildflags__android_arm",
+ "cronet_aml_base_power_monitor_buildflags__android_arm",
+ "cronet_aml_base_profiler_buildflags__android_arm",
+ "cronet_aml_base_sanitizer_buildflags__android_arm",
+ "cronet_aml_base_synchronization_buildflags__android_arm",
+ "cronet_aml_base_tracing_buildflags__android_arm",
+ "cronet_aml_build_branding_buildflags__android_arm",
+ "cronet_aml_build_chromecast_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_build_config_compiler_compiler_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_ashmem_ashmem",
+ "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
+ "base/android/android_hardware_buffer_compat.cc",
+ "base/android/android_image_reader_compat.cc",
+ "base/android/apk_assets.cc",
+ "base/android/application_status_listener.cc",
+ "base/android/base_feature_list.cc",
+ "base/android/base_features.cc",
+ "base/android/base_jni_onload.cc",
+ "base/android/build_info.cc",
+ "base/android/bundle_utils.cc",
+ "base/android/callback_android.cc",
+ "base/android/child_process_service.cc",
+ "base/android/command_line_android.cc",
+ "base/android/content_uri_utils.cc",
+ "base/android/cpu_features.cc",
+ "base/android/early_trace_event_binding.cc",
+ "base/android/event_log.cc",
+ "base/android/feature_list_jni.cc",
+ "base/android/features_jni.cc",
+ "base/android/field_trial_list.cc",
+ "base/android/important_file_writer_android.cc",
+ "base/android/int_string_callback.cc",
+ "base/android/jank_metric_uma_recorder.cc",
+ "base/android/java_exception_reporter.cc",
+ "base/android/java_handler_thread.cc",
+ "base/android/java_heap_dump_generator.cc",
+ "base/android/java_runtime.cc",
+ "base/android/jni_android.cc",
+ "base/android/jni_array.cc",
+ "base/android/jni_registrar.cc",
+ "base/android/jni_string.cc",
+ "base/android/jni_utils.cc",
+ "base/android/jni_weak_ref.cc",
+ "base/android/library_loader/anchor_functions.cc",
+ "base/android/library_loader/library_loader_hooks.cc",
+ "base/android/library_loader/library_prefetcher.cc",
+ "base/android/library_loader/library_prefetcher_hooks.cc",
+ "base/android/locale_utils.cc",
+ "base/android/memory_pressure_listener_android.cc",
+ "base/android/native_uma_recorder.cc",
+ "base/android/path_service_android.cc",
+ "base/android/path_utils.cc",
+ "base/android/radio_utils.cc",
+ "base/android/reached_addresses_bitset.cc",
+ "base/android/reached_code_profiler.cc",
+ "base/android/remove_stale_data.cc",
+ "base/android/scoped_hardware_buffer_fence_sync.cc",
+ "base/android/scoped_hardware_buffer_handle.cc",
+ "base/android/scoped_java_ref.cc",
+ "base/android/statistics_recorder_android.cc",
+ "base/android/sys_utils.cc",
+ "base/android/task_scheduler/post_task_android.cc",
+ "base/android/task_scheduler/task_runner_android.cc",
+ "base/android/thread_instruction_count.cc",
+ "base/android/timezone_utils.cc",
+ "base/android/trace_event_binding.cc",
+ "base/android/unguessable_token_android.cc",
+ "base/base_paths_android.cc",
+ "base/debug/stack_trace_android.cc",
+ "base/files/file_util_android.cc",
+ "base/files/scoped_file_android.cc",
+ "base/memory/platform_shared_memory_mapper_android.cc",
+ "base/memory/platform_shared_memory_region_android.cc",
+ "base/message_loop/message_pump_android.cc",
+ "base/os_compat_android.cc",
+ "base/power_monitor/power_monitor_device_source_android.cc",
+ "base/process/process_android.cc",
+ "base/profiler/stack_sampler_android.cc",
+ "base/system/sys_info_android.cc",
+ "base/threading/platform_thread_android.cc",
+ "base/time/time_android.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ generated_headers: [
+ "cronet_aml_base_allocator_buildflags__android_arm64",
+ "cronet_aml_base_anchor_functions_buildflags__android_arm64",
+ "cronet_aml_base_android_runtime_jni_headers__android_arm64",
+ "cronet_aml_base_base_jni_headers__android_arm64",
+ "cronet_aml_base_build_date__android_arm64",
+ "cronet_aml_base_cfi_buildflags__android_arm64",
+ "cronet_aml_base_clang_profiling_buildflags__android_arm64",
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_feature_list_buildflags__android_arm64",
+ "cronet_aml_base_ios_cronet_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_base_message_pump_buildflags__android_arm64",
+ "cronet_aml_base_orderfile_buildflags__android_arm64",
+ "cronet_aml_base_parsing_buildflags__android_arm64",
+ "cronet_aml_base_power_monitor_buildflags__android_arm64",
+ "cronet_aml_base_profiler_buildflags__android_arm64",
+ "cronet_aml_base_sanitizer_buildflags__android_arm64",
+ "cronet_aml_base_synchronization_buildflags__android_arm64",
+ "cronet_aml_base_tracing_buildflags__android_arm64",
+ "cronet_aml_build_branding_buildflags__android_arm64",
+ "cronet_aml_build_chromecast_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_build_config_compiler_compiler_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_allocator_buildflags__android_arm64",
+ "cronet_aml_base_anchor_functions_buildflags__android_arm64",
+ "cronet_aml_base_android_runtime_jni_headers__android_arm64",
+ "cronet_aml_base_base_jni_headers__android_arm64",
+ "cronet_aml_base_build_date__android_arm64",
+ "cronet_aml_base_cfi_buildflags__android_arm64",
+ "cronet_aml_base_clang_profiling_buildflags__android_arm64",
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_feature_list_buildflags__android_arm64",
+ "cronet_aml_base_ios_cronet_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_base_message_pump_buildflags__android_arm64",
+ "cronet_aml_base_orderfile_buildflags__android_arm64",
+ "cronet_aml_base_parsing_buildflags__android_arm64",
+ "cronet_aml_base_power_monitor_buildflags__android_arm64",
+ "cronet_aml_base_profiler_buildflags__android_arm64",
+ "cronet_aml_base_sanitizer_buildflags__android_arm64",
+ "cronet_aml_base_synchronization_buildflags__android_arm64",
+ "cronet_aml_base_tracing_buildflags__android_arm64",
+ "cronet_aml_build_branding_buildflags__android_arm64",
+ "cronet_aml_build_chromecast_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_build_config_compiler_compiler_buildflags__android_arm64",
+ ],
+ },
android_x86: {
srcs: [
":cronet_aml_third_party_android_ndk_cpu_features",
@@ -1237,17 +2054,13 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
],
generated_headers: [
"cronet_aml_base_allocator_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86",
"cronet_aml_base_anchor_functions_buildflags__android_x86",
"cronet_aml_base_android_runtime_jni_headers__android_x86",
"cronet_aml_base_base_jni_headers__android_x86",
@@ -1273,11 +2086,6 @@
],
export_generated_headers: [
"cronet_aml_base_allocator_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86",
"cronet_aml_base_anchor_functions_buildflags__android_x86",
"cronet_aml_base_android_runtime_jni_headers__android_x86",
"cronet_aml_base_base_jni_headers__android_x86",
@@ -1382,17 +2190,13 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
],
generated_headers: [
"cronet_aml_base_allocator_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86_64",
"cronet_aml_base_anchor_functions_buildflags__android_x86_64",
"cronet_aml_base_android_runtime_jni_headers__android_x86_64",
"cronet_aml_base_base_jni_headers__android_x86_64",
@@ -1418,11 +2222,6 @@
],
export_generated_headers: [
"cronet_aml_base_allocator_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__android_x86_64",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__android_x86_64",
"cronet_aml_base_anchor_functions_buildflags__android_x86_64",
"cronet_aml_base_android_runtime_jni_headers__android_x86_64",
"cronet_aml_base_base_jni_headers__android_x86_64",
@@ -1479,14 +2278,10 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_base_allocator_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__host",
"cronet_aml_base_anchor_functions_buildflags__host",
"cronet_aml_base_build_date__host",
"cronet_aml_base_cfi_buildflags__host",
@@ -1510,11 +2305,6 @@
],
export_generated_headers: [
"cronet_aml_base_allocator_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_logging_buildflags__host",
- "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__host",
"cronet_aml_base_anchor_functions_buildflags__host",
"cronet_aml_base_build_date__host",
"cronet_aml_base_cfi_buildflags__host",
@@ -1540,8 +2330,573 @@
},
}
+// GN: //base:base_android_java_enums_srcjar
+java_genrule {
+ name: "cronet_aml_base_base_android_java_enums_srcjar",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location base/android/application_status_listener.h) " +
+ "$(location base/android/child_process_binding_types.h) " +
+ "$(location base/android/library_loader/library_loader_hooks.h) " +
+ "$(location base/android/linker/modern_linker_jni.h) " +
+ "$(location base/android/task_scheduler/task_runner_android.h) " +
+ "$(location base/memory/memory_pressure_listener.h) " +
+ "$(location base/metrics/histogram_base.h) " +
+ "$(location base/task/task_traits.h)",
+ out: [
+ "base/base_android_java_enums_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/application_status_listener.h",
+ "base/android/child_process_binding_types.h",
+ "base/android/library_loader/library_loader_hooks.h",
+ "base/android/linker/modern_linker_jni.h",
+ "base/android/task_scheduler/task_runner_android.h",
+ "base/memory/memory_pressure_listener.h",
+ "base/metrics/histogram_base.h",
+ "base/task/task_traits.h",
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //base:base_jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_base_base_jni_headers__android_arm",
+ srcs: [
+ "base/android/java/src/org/chromium/base/ApkAssets.java",
+ "base/android/java/src/org/chromium/base/ApplicationStatus.java",
+ "base/android/java/src/org/chromium/base/BaseFeatureList.java",
+ "base/android/java/src/org/chromium/base/BuildInfo.java",
+ "base/android/java/src/org/chromium/base/BundleUtils.java",
+ "base/android/java/src/org/chromium/base/Callback.java",
+ "base/android/java/src/org/chromium/base/CommandLine.java",
+ "base/android/java/src/org/chromium/base/ContentUriUtils.java",
+ "base/android/java/src/org/chromium/base/CpuFeatures.java",
+ "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
+ "base/android/java/src/org/chromium/base/EventLog.java",
+ "base/android/java/src/org/chromium/base/FeatureList.java",
+ "base/android/java/src/org/chromium/base/Features.java",
+ "base/android/java/src/org/chromium/base/FieldTrialList.java",
+ "base/android/java/src/org/chromium/base/FileUtils.java",
+ "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
+ "base/android/java/src/org/chromium/base/IntStringCallback.java",
+ "base/android/java/src/org/chromium/base/JNIUtils.java",
+ "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
+ "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
+ "base/android/java/src/org/chromium/base/LocaleUtils.java",
+ "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
+ "base/android/java/src/org/chromium/base/PathService.java",
+ "base/android/java/src/org/chromium/base/PathUtils.java",
+ "base/android/java/src/org/chromium/base/PowerMonitor.java",
+ "base/android/java/src/org/chromium/base/RadioUtils.java",
+ "base/android/java/src/org/chromium/base/SysUtils.java",
+ "base/android/java/src/org/chromium/base/ThreadUtils.java",
+ "base/android/java/src/org/chromium/base/TimezoneUtils.java",
+ "base/android/java/src/org/chromium/base/TraceEvent.java",
+ "base/android/java/src/org/chromium/base/UnguessableToken.java",
+ "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
+ "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
+ "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
+ "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
+ "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
+ "base/android/java/src/org/chromium/base/task/PostTask.java",
+ "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/base/base_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "ApkAssets_jni.h " +
+ "--output_name " +
+ "ApplicationStatus_jni.h " +
+ "--output_name " +
+ "BaseFeatureList_jni.h " +
+ "--output_name " +
+ "BuildInfo_jni.h " +
+ "--output_name " +
+ "BundleUtils_jni.h " +
+ "--output_name " +
+ "Callback_jni.h " +
+ "--output_name " +
+ "CommandLine_jni.h " +
+ "--output_name " +
+ "ContentUriUtils_jni.h " +
+ "--output_name " +
+ "CpuFeatures_jni.h " +
+ "--output_name " +
+ "EarlyTraceEvent_jni.h " +
+ "--output_name " +
+ "EventLog_jni.h " +
+ "--output_name " +
+ "FeatureList_jni.h " +
+ "--output_name " +
+ "Features_jni.h " +
+ "--output_name " +
+ "FieldTrialList_jni.h " +
+ "--output_name " +
+ "FileUtils_jni.h " +
+ "--output_name " +
+ "ImportantFileWriterAndroid_jni.h " +
+ "--output_name " +
+ "IntStringCallback_jni.h " +
+ "--output_name " +
+ "JNIUtils_jni.h " +
+ "--output_name " +
+ "JavaExceptionReporter_jni.h " +
+ "--output_name " +
+ "JavaHandlerThread_jni.h " +
+ "--output_name " +
+ "LocaleUtils_jni.h " +
+ "--output_name " +
+ "MemoryPressureListener_jni.h " +
+ "--output_name " +
+ "PathService_jni.h " +
+ "--output_name " +
+ "PathUtils_jni.h " +
+ "--output_name " +
+ "PowerMonitor_jni.h " +
+ "--output_name " +
+ "RadioUtils_jni.h " +
+ "--output_name " +
+ "SysUtils_jni.h " +
+ "--output_name " +
+ "ThreadUtils_jni.h " +
+ "--output_name " +
+ "TimezoneUtils_jni.h " +
+ "--output_name " +
+ "TraceEvent_jni.h " +
+ "--output_name " +
+ "UnguessableToken_jni.h " +
+ "--output_name " +
+ "JankMetricUMARecorder_jni.h " +
+ "--output_name " +
+ "LibraryLoader_jni.h " +
+ "--output_name " +
+ "LibraryPrefetcher_jni.h " +
+ "--output_name " +
+ "JavaHeapDumpGenerator_jni.h " +
+ "--output_name " +
+ "NativeUmaRecorder_jni.h " +
+ "--output_name " +
+ "StatisticsRecorderAndroid_jni.h " +
+ "--output_name " +
+ "ChildProcessService_jni.h " +
+ "--output_name " +
+ "PostTask_jni.h " +
+ "--output_name " +
+ "TaskRunnerImpl_jni.h " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ApkAssets.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ApplicationStatus.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BaseFeatureList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BuildInfo.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BundleUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/Callback.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/CommandLine.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ContentUriUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/CpuFeatures.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/EarlyTraceEvent.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/EventLog.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FeatureList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/Features.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FieldTrialList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FileUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/IntStringCallback.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JNIUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JavaExceptionReporter.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JavaHandlerThread.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/LocaleUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/MemoryPressureListener.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PathService.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PathUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PowerMonitor.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/RadioUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/SysUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ThreadUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/TimezoneUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/TraceEvent.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/UnguessableToken.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java)",
+ out: [
+ "base/base_jni_headers/ApkAssets_jni.h",
+ "base/base_jni_headers/ApplicationStatus_jni.h",
+ "base/base_jni_headers/BaseFeatureList_jni.h",
+ "base/base_jni_headers/BuildInfo_jni.h",
+ "base/base_jni_headers/BundleUtils_jni.h",
+ "base/base_jni_headers/Callback_jni.h",
+ "base/base_jni_headers/ChildProcessService_jni.h",
+ "base/base_jni_headers/CommandLine_jni.h",
+ "base/base_jni_headers/ContentUriUtils_jni.h",
+ "base/base_jni_headers/CpuFeatures_jni.h",
+ "base/base_jni_headers/EarlyTraceEvent_jni.h",
+ "base/base_jni_headers/EventLog_jni.h",
+ "base/base_jni_headers/FeatureList_jni.h",
+ "base/base_jni_headers/Features_jni.h",
+ "base/base_jni_headers/FieldTrialList_jni.h",
+ "base/base_jni_headers/FileUtils_jni.h",
+ "base/base_jni_headers/ImportantFileWriterAndroid_jni.h",
+ "base/base_jni_headers/IntStringCallback_jni.h",
+ "base/base_jni_headers/JNIUtils_jni.h",
+ "base/base_jni_headers/JankMetricUMARecorder_jni.h",
+ "base/base_jni_headers/JavaExceptionReporter_jni.h",
+ "base/base_jni_headers/JavaHandlerThread_jni.h",
+ "base/base_jni_headers/JavaHeapDumpGenerator_jni.h",
+ "base/base_jni_headers/LibraryLoader_jni.h",
+ "base/base_jni_headers/LibraryPrefetcher_jni.h",
+ "base/base_jni_headers/LocaleUtils_jni.h",
+ "base/base_jni_headers/MemoryPressureListener_jni.h",
+ "base/base_jni_headers/NativeUmaRecorder_jni.h",
+ "base/base_jni_headers/PathService_jni.h",
+ "base/base_jni_headers/PathUtils_jni.h",
+ "base/base_jni_headers/PostTask_jni.h",
+ "base/base_jni_headers/PowerMonitor_jni.h",
+ "base/base_jni_headers/RadioUtils_jni.h",
+ "base/base_jni_headers/StatisticsRecorderAndroid_jni.h",
+ "base/base_jni_headers/SysUtils_jni.h",
+ "base/base_jni_headers/TaskRunnerImpl_jni.h",
+ "base/base_jni_headers/ThreadUtils_jni.h",
+ "base/base_jni_headers/TimezoneUtils_jni.h",
+ "base/base_jni_headers/TraceEvent_jni.h",
+ "base/base_jni_headers/UnguessableToken_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:base_jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_base_jni_headers__android_arm64",
+ srcs: [
+ "base/android/java/src/org/chromium/base/ApkAssets.java",
+ "base/android/java/src/org/chromium/base/ApplicationStatus.java",
+ "base/android/java/src/org/chromium/base/BaseFeatureList.java",
+ "base/android/java/src/org/chromium/base/BuildInfo.java",
+ "base/android/java/src/org/chromium/base/BundleUtils.java",
+ "base/android/java/src/org/chromium/base/Callback.java",
+ "base/android/java/src/org/chromium/base/CommandLine.java",
+ "base/android/java/src/org/chromium/base/ContentUriUtils.java",
+ "base/android/java/src/org/chromium/base/CpuFeatures.java",
+ "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
+ "base/android/java/src/org/chromium/base/EventLog.java",
+ "base/android/java/src/org/chromium/base/FeatureList.java",
+ "base/android/java/src/org/chromium/base/Features.java",
+ "base/android/java/src/org/chromium/base/FieldTrialList.java",
+ "base/android/java/src/org/chromium/base/FileUtils.java",
+ "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
+ "base/android/java/src/org/chromium/base/IntStringCallback.java",
+ "base/android/java/src/org/chromium/base/JNIUtils.java",
+ "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
+ "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
+ "base/android/java/src/org/chromium/base/LocaleUtils.java",
+ "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
+ "base/android/java/src/org/chromium/base/PathService.java",
+ "base/android/java/src/org/chromium/base/PathUtils.java",
+ "base/android/java/src/org/chromium/base/PowerMonitor.java",
+ "base/android/java/src/org/chromium/base/RadioUtils.java",
+ "base/android/java/src/org/chromium/base/SysUtils.java",
+ "base/android/java/src/org/chromium/base/ThreadUtils.java",
+ "base/android/java/src/org/chromium/base/TimezoneUtils.java",
+ "base/android/java/src/org/chromium/base/TraceEvent.java",
+ "base/android/java/src/org/chromium/base/UnguessableToken.java",
+ "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
+ "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
+ "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
+ "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
+ "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
+ "base/android/java/src/org/chromium/base/task/PostTask.java",
+ "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/base/base_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "ApkAssets_jni.h " +
+ "--output_name " +
+ "ApplicationStatus_jni.h " +
+ "--output_name " +
+ "BaseFeatureList_jni.h " +
+ "--output_name " +
+ "BuildInfo_jni.h " +
+ "--output_name " +
+ "BundleUtils_jni.h " +
+ "--output_name " +
+ "Callback_jni.h " +
+ "--output_name " +
+ "CommandLine_jni.h " +
+ "--output_name " +
+ "ContentUriUtils_jni.h " +
+ "--output_name " +
+ "CpuFeatures_jni.h " +
+ "--output_name " +
+ "EarlyTraceEvent_jni.h " +
+ "--output_name " +
+ "EventLog_jni.h " +
+ "--output_name " +
+ "FeatureList_jni.h " +
+ "--output_name " +
+ "Features_jni.h " +
+ "--output_name " +
+ "FieldTrialList_jni.h " +
+ "--output_name " +
+ "FileUtils_jni.h " +
+ "--output_name " +
+ "ImportantFileWriterAndroid_jni.h " +
+ "--output_name " +
+ "IntStringCallback_jni.h " +
+ "--output_name " +
+ "JNIUtils_jni.h " +
+ "--output_name " +
+ "JavaExceptionReporter_jni.h " +
+ "--output_name " +
+ "JavaHandlerThread_jni.h " +
+ "--output_name " +
+ "LocaleUtils_jni.h " +
+ "--output_name " +
+ "MemoryPressureListener_jni.h " +
+ "--output_name " +
+ "PathService_jni.h " +
+ "--output_name " +
+ "PathUtils_jni.h " +
+ "--output_name " +
+ "PowerMonitor_jni.h " +
+ "--output_name " +
+ "RadioUtils_jni.h " +
+ "--output_name " +
+ "SysUtils_jni.h " +
+ "--output_name " +
+ "ThreadUtils_jni.h " +
+ "--output_name " +
+ "TimezoneUtils_jni.h " +
+ "--output_name " +
+ "TraceEvent_jni.h " +
+ "--output_name " +
+ "UnguessableToken_jni.h " +
+ "--output_name " +
+ "JankMetricUMARecorder_jni.h " +
+ "--output_name " +
+ "LibraryLoader_jni.h " +
+ "--output_name " +
+ "LibraryPrefetcher_jni.h " +
+ "--output_name " +
+ "JavaHeapDumpGenerator_jni.h " +
+ "--output_name " +
+ "NativeUmaRecorder_jni.h " +
+ "--output_name " +
+ "StatisticsRecorderAndroid_jni.h " +
+ "--output_name " +
+ "ChildProcessService_jni.h " +
+ "--output_name " +
+ "PostTask_jni.h " +
+ "--output_name " +
+ "TaskRunnerImpl_jni.h " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ApkAssets.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ApplicationStatus.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BaseFeatureList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BuildInfo.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/BundleUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/Callback.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/CommandLine.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ContentUriUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/CpuFeatures.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/EarlyTraceEvent.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/EventLog.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FeatureList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/Features.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FieldTrialList.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/FileUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/IntStringCallback.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JNIUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JavaExceptionReporter.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/JavaHandlerThread.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/LocaleUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/MemoryPressureListener.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PathService.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PathUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/PowerMonitor.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/RadioUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/SysUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/ThreadUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/TimezoneUtils.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/TraceEvent.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/UnguessableToken.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
+ "--input_file " +
+ "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java)",
+ out: [
+ "base/base_jni_headers/ApkAssets_jni.h",
+ "base/base_jni_headers/ApplicationStatus_jni.h",
+ "base/base_jni_headers/BaseFeatureList_jni.h",
+ "base/base_jni_headers/BuildInfo_jni.h",
+ "base/base_jni_headers/BundleUtils_jni.h",
+ "base/base_jni_headers/Callback_jni.h",
+ "base/base_jni_headers/ChildProcessService_jni.h",
+ "base/base_jni_headers/CommandLine_jni.h",
+ "base/base_jni_headers/ContentUriUtils_jni.h",
+ "base/base_jni_headers/CpuFeatures_jni.h",
+ "base/base_jni_headers/EarlyTraceEvent_jni.h",
+ "base/base_jni_headers/EventLog_jni.h",
+ "base/base_jni_headers/FeatureList_jni.h",
+ "base/base_jni_headers/Features_jni.h",
+ "base/base_jni_headers/FieldTrialList_jni.h",
+ "base/base_jni_headers/FileUtils_jni.h",
+ "base/base_jni_headers/ImportantFileWriterAndroid_jni.h",
+ "base/base_jni_headers/IntStringCallback_jni.h",
+ "base/base_jni_headers/JNIUtils_jni.h",
+ "base/base_jni_headers/JankMetricUMARecorder_jni.h",
+ "base/base_jni_headers/JavaExceptionReporter_jni.h",
+ "base/base_jni_headers/JavaHandlerThread_jni.h",
+ "base/base_jni_headers/JavaHeapDumpGenerator_jni.h",
+ "base/base_jni_headers/LibraryLoader_jni.h",
+ "base/base_jni_headers/LibraryPrefetcher_jni.h",
+ "base/base_jni_headers/LocaleUtils_jni.h",
+ "base/base_jni_headers/MemoryPressureListener_jni.h",
+ "base/base_jni_headers/NativeUmaRecorder_jni.h",
+ "base/base_jni_headers/PathService_jni.h",
+ "base/base_jni_headers/PathUtils_jni.h",
+ "base/base_jni_headers/PostTask_jni.h",
+ "base/base_jni_headers/PowerMonitor_jni.h",
+ "base/base_jni_headers/RadioUtils_jni.h",
+ "base/base_jni_headers/StatisticsRecorderAndroid_jni.h",
+ "base/base_jni_headers/SysUtils_jni.h",
+ "base/base_jni_headers/TaskRunnerImpl_jni.h",
+ "base/base_jni_headers/ThreadUtils_jni.h",
+ "base/base_jni_headers/TimezoneUtils_jni.h",
+ "base/base_jni_headers/TraceEvent_jni.h",
+ "base/base_jni_headers/UnguessableToken_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base:base_jni_headers__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_base_jni_headers__android_x86",
srcs: [
"base/android/java/src/org/chromium/base/ApkAssets.java",
@@ -1587,8 +2942,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -1803,10 +3156,13 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_base_jni_headers__android_x86_64",
srcs: [
"base/android/java/src/org/chromium/base/ApkAssets.java",
@@ -1852,8 +3208,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -2068,6 +3422,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_static
@@ -2093,7 +3450,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -2103,11 +3459,38 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -2121,6 +3504,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -2138,6 +3522,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -2149,8 +3534,40 @@
},
}
+// GN: //base:build_date__android_arm
+cc_genrule {
+ name: "cronet_aml_base_build_date__android_arm",
+ cmd: "$(location build/write_build_date_header.py) $(out) " +
+ "1664686800",
+ out: [
+ "base/generated_build_date.h",
+ ],
+ tool_files: [
+ "build/write_build_date_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:build_date__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_build_date__android_arm64",
+ cmd: "$(location build/write_build_date_header.py) $(out) " +
+ "1664686800",
+ out: [
+ "base/generated_build_date.h",
+ ],
+ tool_files: [
+ "build/write_build_date_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base:build_date__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_build_date__android_x86",
cmd: "$(location build/write_build_date_header.py) $(out) " +
"1664686800",
@@ -2160,10 +3577,13 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_build_date__android_x86_64",
cmd: "$(location build/write_build_date_header.py) $(out) " +
"1664686800",
@@ -2173,23 +3593,77 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_build_date__host",
cmd: "$(location build/write_build_date_header.py) $(out) " +
"1664686800",
+ host_supported: true,
+ device_supported: false,
out: [
"base/generated_build_date.h",
],
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:cfi_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_cfi_buildflags__android_arm",
+ cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:cfi_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/cfi_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:cfi_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_cfi_buildflags__android_arm64",
+ cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:cfi_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/cfi_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_cfi_buildflags__android_x86",
cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2206,10 +3680,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_cfi_buildflags__android_x86_64",
cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2226,10 +3703,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_cfi_buildflags__host",
cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_DIAG=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2240,16 +3720,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/cfi_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:clang_profiling_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_clang_profiling_buildflags__android_arm",
+ cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:clang_profiling_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/clang_profiling_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:clang_profiling_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_clang_profiling_buildflags__android_arm64",
+ cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:clang_profiling_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/clang_profiling_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_clang_profiling_buildflags__android_x86",
cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2266,10 +3797,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_clang_profiling_buildflags__android_x86_64",
cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2286,10 +3820,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_clang_profiling_buildflags__host",
cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2300,16 +3837,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/clang_profiling_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:debugging_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_debugging_buildflags__android_arm",
+ cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"true\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:debugging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/debug/debugging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:debugging_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_debugging_buildflags__android_arm64",
+ cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:debugging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/debug/debugging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_debugging_buildflags__android_x86",
cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2326,10 +3914,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_debugging_buildflags__android_x86_64",
cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2346,10 +3937,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_debugging_buildflags__host",
cmd: "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"true\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"false\" ENABLE_GDBINIT_WARNING=\"true\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"true\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2360,16 +3954,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/debug/debugging_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:feature_list_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_feature_list_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:feature_list_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/feature_list_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:feature_list_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_feature_list_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:feature_list_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/feature_list_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_feature_list_buildflags__android_x86",
cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2386,10 +4031,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_feature_list_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2406,10 +4054,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_feature_list_buildflags__host",
cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2420,16 +4071,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/feature_list_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:ios_cronet_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_ios_cronet_buildflags__android_arm",
+ cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:ios_cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/message_loop/ios_cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:ios_cronet_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_ios_cronet_buildflags__android_arm64",
+ cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:ios_cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/message_loop/ios_cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_ios_cronet_buildflags__android_x86",
cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2446,10 +4148,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_ios_cronet_buildflags__android_x86_64",
cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2466,10 +4171,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_ios_cronet_buildflags__host",
cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2480,16 +4188,119 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/message_loop/ios_cronet_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:java_features_srcjar
+java_genrule {
+ name: "cronet_aml_base_java_features_srcjar",
+ srcs: [
+ "base/android/base_features.cc",
+ "base/features.cc",
+ "base/task/task_features.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_features.py) --srcjar " +
+ "$(out) " +
+ "--template " +
+ "$(location base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl) " +
+ "$(location base/android/base_features.cc) " +
+ "$(location base/features.cc) " +
+ "$(location base/task/task_features.cc)",
+ out: [
+ "base/java_features_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl",
+ "build/android/gyp/java_cpp_features.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //base:java_switches_srcjar
+java_genrule {
+ name: "cronet_aml_base_java_switches_srcjar",
+ srcs: [
+ "base/base_switches.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_strings.py) --srcjar " +
+ "$(out) " +
+ "--template " +
+ "$(location base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl) " +
+ "$(location base/base_switches.cc)",
+ out: [
+ "base/java_switches_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl",
+ "build/android/gyp/java_cpp_strings.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //base:logging_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_logging_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:logging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/logging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:logging_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_logging_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:logging_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/logging_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_logging_buildflags__android_x86",
cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2506,10 +4317,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_logging_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2526,10 +4340,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_logging_buildflags__host",
cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2540,16 +4357,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/logging_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:message_pump_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_message_pump_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:message_pump_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/message_loop/message_pump_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:message_pump_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_message_pump_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:message_pump_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/message_loop/message_pump_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_message_pump_buildflags__android_x86",
cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2566,10 +4434,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_message_pump_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2586,10 +4457,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_message_pump_buildflags__host",
cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2600,12 +4474,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/message_loop/message_pump_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/numerics:base_numerics
@@ -2628,7 +4507,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -2638,11 +4516,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -2650,6 +4543,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -2661,13 +4555,60 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
}
+// GN: //base:orderfile_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_orderfile_buildflags__android_arm",
+ cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:orderfile_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/android/orderfile/orderfile_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:orderfile_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_orderfile_buildflags__android_arm64",
+ cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:orderfile_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/android/orderfile/orderfile_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base:orderfile_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_orderfile_buildflags__android_x86",
cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2684,10 +4625,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_orderfile_buildflags__android_x86_64",
cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2704,10 +4648,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_orderfile_buildflags__host",
cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2718,16 +4665,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/android/orderfile/orderfile_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:parsing_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_parsing_buildflags__android_arm",
+ cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:parsing_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/parsing_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:parsing_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_parsing_buildflags__android_arm64",
+ cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:parsing_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/parsing_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_parsing_buildflags__android_x86",
cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2744,10 +4742,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_parsing_buildflags__android_x86_64",
cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2764,10 +4765,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_parsing_buildflags__host",
cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2778,16 +4782,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/parsing_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:power_monitor_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_power_monitor_buildflags__android_arm",
+ cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:power_monitor_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/power_monitor/power_monitor_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:power_monitor_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_power_monitor_buildflags__android_arm64",
+ cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:power_monitor_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/power_monitor/power_monitor_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_power_monitor_buildflags__android_x86",
cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2804,10 +4859,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_power_monitor_buildflags__android_x86_64",
cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2824,10 +4882,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_power_monitor_buildflags__host",
cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2838,16 +4899,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/power_monitor/power_monitor_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:profiler_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_profiler_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"true\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:profiler_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/profiler/profiler_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:profiler_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_profiler_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:profiler_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/profiler/profiler_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_profiler_buildflags__android_x86",
cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2864,10 +4976,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_profiler_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2884,10 +4999,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_profiler_buildflags__host",
cmd: "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2898,16 +5016,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/profiler/profiler_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:sanitizer_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_sanitizer_buildflags__android_arm",
+ cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:sanitizer_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/sanitizer_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:sanitizer_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_sanitizer_buildflags__android_arm64",
+ cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:sanitizer_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/sanitizer_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_sanitizer_buildflags__android_x86",
cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2924,10 +5093,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_sanitizer_buildflags__android_x86_64",
cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2944,10 +5116,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_sanitizer_buildflags__host",
cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2958,16 +5133,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/sanitizer_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:synchronization_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_synchronization_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:synchronization_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/synchronization/synchronization_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:synchronization_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_synchronization_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:synchronization_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/synchronization/synchronization_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_synchronization_buildflags__android_x86",
cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -2984,10 +5210,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_synchronization_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3004,10 +5233,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_synchronization_buildflags__host",
cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3018,12 +5250,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/synchronization/synchronization_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/third_party/double_conversion:double_conversion
@@ -3056,7 +5293,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3066,11 +5302,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -3078,6 +5329,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -3089,6 +5341,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -3115,7 +5368,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3125,11 +5377,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -3137,6 +5404,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -3148,6 +5416,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -3284,8 +5553,54 @@
cpp_std: "c++20",
}
+// GN: //base:tracing_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_base_tracing_buildflags__android_arm",
+ cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:tracing_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/tracing_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:tracing_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_base_tracing_buildflags__android_arm64",
+ cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//base:tracing_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "base/tracing_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //base:tracing_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_base_tracing_buildflags__android_x86",
cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3302,10 +5617,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_base_tracing_buildflags__android_x86_64",
cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3322,10 +5640,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_base_tracing_buildflags__host",
cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3336,16 +5657,107 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"base/tracing_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build/android:build_config_gen
+java_genrule {
+ name: "cronet_aml_build_android_build_config_gen",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/build/android/build_config_gen.srcjar " +
+ "--define " +
+ "_ENABLE_ASSERTS " +
+ "../../build/android/java/templates/BuildConfig.template",
+ out: [
+ "build/android/build_config_gen.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/java/templates/BuildConfig.template",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //build/android:native_libraries_gen
+java_genrule {
+ name: "cronet_aml_build_android_native_libraries_gen",
+ cmd: "$(location build/android/gyp/write_native_libraries_java.py) --output " +
+ "$(out) " +
+ "--cpu-family " +
+ "CPU_FAMILY_ARM",
+ out: [
+ "build/android/native_libraries_gen.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/write_native_libraries_java.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //build:branding_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_build_branding_buildflags__android_arm",
+ cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:branding_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/branding_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build:branding_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_build_branding_buildflags__android_arm64",
+ cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:branding_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/branding_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_build_branding_buildflags__android_x86",
cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3362,10 +5774,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_build_branding_buildflags__android_x86_64",
cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3382,10 +5797,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_build_branding_buildflags__host",
cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3396,12 +5814,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"build/branding_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:buildflag_header_h
@@ -3424,7 +5847,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3434,11 +5856,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -3446,6 +5883,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -3457,13 +5895,60 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
}
+// GN: //build:chromecast_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_build_chromecast_buildflags__android_arm",
+ cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:chromecast_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/chromecast_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build:chromecast_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_build_chromecast_buildflags__android_arm64",
+ cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:chromecast_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/chromecast_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //build:chromecast_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromecast_buildflags__android_x86",
cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3480,10 +5965,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromecast_buildflags__android_x86_64",
cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3500,10 +5988,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromecast_buildflags__host",
cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3514,16 +6005,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"build/chromecast_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build:chromeos_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_build_chromeos_buildflags__android_arm",
+ cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:chromeos_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/chromeos_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build:chromeos_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_build_chromeos_buildflags__android_arm64",
+ cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build:chromeos_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/chromeos_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromeos_buildflags__android_x86",
cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3540,10 +6082,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromeos_buildflags__android_x86_64",
cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3560,10 +6105,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_build_chromeos_buildflags__host",
cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3574,16 +6122,67 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"build/chromeos_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build/config/compiler:compiler_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_build_config_compiler_compiler_buildflags__android_arm",
+ cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build/config/compiler:compiler_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/config/compiler/compiler_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build/config/compiler:compiler_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_build_config_compiler_compiler_buildflags__android_arm64",
+ cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//build/config/compiler:compiler_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "build/config/compiler/compiler_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_build_config_compiler_compiler_buildflags__android_x86",
cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3600,10 +6199,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_build_config_compiler_compiler_buildflags__android_x86_64",
cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3620,10 +6222,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_build_config_compiler_compiler_buildflags__host",
cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"2\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3634,12 +6239,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"build/config/compiler/compiler_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //buildtools/third_party/libc++:libc++
@@ -3707,7 +6317,6 @@
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3722,11 +6331,26 @@
],
rtti: true,
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -3734,6 +6358,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -3745,6 +6370,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -3789,7 +6415,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3804,6 +6429,26 @@
],
rtti: true,
target: {
+ android_arm: {
+ srcs: [
+ "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
srcs: [
"buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
@@ -3812,6 +6457,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -3822,6 +6468,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -3836,6 +6483,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -3872,7 +6520,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBUNWIND_IS_NATIVE_ONLY",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -3886,10 +6533,68 @@
"-fexceptions",
],
rtti: true,
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
+}
+
+// GN: //components/cronet/android:buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_components_cronet_android_buildflags__android_arm",
+ cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet/android:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/android/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/cronet/android:buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_components_cronet_android_buildflags__android_arm64",
+ cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet/android:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/android/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_android_buildflags__android_x86",
cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3906,10 +6611,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_android_buildflags__android_x86_64",
cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -3926,6 +6634,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet
@@ -3971,9 +6682,11 @@
"cronet_aml_url_url",
],
generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
export_generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
defaults: [
@@ -3999,7 +6712,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -4017,15 +6729,62 @@
linker_scripts: [
"base/android/library_loader/anchor_functions.lds",
],
+ stem: "libcronet.109.0.5386.0",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
@@ -4036,20 +6795,21 @@
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -4060,7 +6820,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -4069,8 +6828,120 @@
},
}
+// GN: //components/cronet/android:cronet_jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
+ srcs: [
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/components/cronet/android/cronet_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "CronetBidirectionalStream_jni.h " +
+ "--output_name " +
+ "CronetLibraryLoader_jni.h " +
+ "--output_name " +
+ "CronetUploadDataStream_jni.h " +
+ "--output_name " +
+ "CronetUrlRequest_jni.h " +
+ "--output_name " +
+ "CronetUrlRequestContext_jni.h " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java)",
+ out: [
+ "components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUploadDataStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequestContext_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequest_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/cronet/android:cronet_jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
+ srcs: [
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/components/cronet/android/cronet_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "CronetBidirectionalStream_jni.h " +
+ "--output_name " +
+ "CronetLibraryLoader_jni.h " +
+ "--output_name " +
+ "CronetUploadDataStream_jni.h " +
+ "--output_name " +
+ "CronetUrlRequest_jni.h " +
+ "--output_name " +
+ "CronetUrlRequestContext_jni.h " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java)",
+ out: [
+ "components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUploadDataStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequestContext_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequest_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //components/cronet/android:cronet_jni_headers__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
srcs: [
"components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
@@ -4081,8 +6952,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -4122,10 +6991,13 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet_jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
srcs: [
"components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
@@ -4136,8 +7008,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -4177,11 +7047,14 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
-// GN: //components/cronet/android:cronet_jni_registration__android_x86
-genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
+// GN: //components/cronet/android:cronet_jni_registration
+cc_genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_registration",
srcs: [
"base/android/java/src/org/chromium/base/ActivityState.java",
"base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
@@ -4470,8 +7343,6 @@
"--header-path " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h " +
"--manual_jni_registration " +
- " " +
- " " +
";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h",
out: [
@@ -4485,11 +7356,14 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
-// GN: //components/cronet/android:cronet_jni_registration__android_x86_64
-genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
+// GN: //components/cronet/android:cronet_jni_registration
+java_genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_registration__java",
srcs: [
"base/android/java/src/org/chromium/base/ActivityState.java",
"base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
@@ -4778,12 +7652,9 @@
"--header-path " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h " +
"--manual_jni_registration " +
- " " +
- " " +
";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h",
out: [
- "components/cronet/android/cronet_jni_registration.h",
"components/cronet/android/cronet_jni_registration.srcjar",
],
tool_files: [
@@ -4835,6 +7706,7 @@
"cronet_aml_url_url",
],
generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
defaults: [
@@ -4860,7 +7732,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -4880,27 +7751,55 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_buildflags__android_arm",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_buildflags__android_arm64",
+ "cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -4909,8 +7808,257 @@
},
}
+// GN: //components/cronet/android:http_cache_type_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_http_cache_type_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location components/cronet/url_request_context_config.h)",
+ out: [
+ "components/cronet/android/http_cache_type_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/url_request_context_config.h",
+ ],
+}
+
+// GN: //components/cronet/android:implementation_api_version
+java_genrule {
+ name: "cronet_aml_components_cronet_android_implementation_api_version",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-f " +
+ "$(location build/util/LASTCHANGE) " +
+ "-e " +
+ "'API_LEVEL=20' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template)",
+ out: [
+ "components/cronet/android/templates/org/chromium/net/impl/ImplVersion.java",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template",
+ ],
+}
+
+// GN: //components/cronet/android:integrated_mode_state
+java_genrule {
+ name: "cronet_aml_components_cronet_android_integrated_mode_state",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/components/cronet/android/integrated_mode_state.srcjar " +
+ "../../components/cronet/android/java/src/org/chromium/net/impl/IntegratedModeState.template",
+ out: [
+ "components/cronet/android/integrated_mode_state.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/java/src/org/chromium/net/impl/IntegratedModeState.template",
+ ],
+}
+
+// GN: //components/cronet/android:interface_api_version
+java_genrule {
+ name: "cronet_aml_components_cronet_android_interface_api_version",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-f " +
+ "$(location build/util/LASTCHANGE) " +
+ "-e " +
+ "'API_LEVEL=20' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/android/api/src/org/chromium/net/ApiVersion.template)",
+ out: [
+ "components/cronet/android/templates/org/chromium/net/ApiVersion.java",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/android/api/src/org/chromium/net/ApiVersion.template",
+ ],
+}
+
+// GN: //components/cronet/android:load_states_list
+java_genrule {
+ name: "cronet_aml_components_cronet_android_load_states_list",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/components/cronet/android/load_states_list.srcjar " +
+ "../../components/cronet/android/java/src/org/chromium/net/impl/LoadState.template",
+ out: [
+ "components/cronet/android/load_states_list.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/java/src/org/chromium/net/impl/LoadState.template",
+ "net/base/load_states_list.h",
+ ],
+}
+
+// GN: //components/cronet/android:net_idempotency_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_net_idempotency_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/idempotency.h)",
+ out: [
+ "components/cronet/android/net_idempotency_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/base/idempotency.h",
+ ],
+}
+
+// GN: //components/cronet/android:net_request_priority_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_net_request_priority_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/request_priority.h)",
+ out: [
+ "components/cronet/android/net_request_priority_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/base/request_priority.h",
+ ],
+}
+
+// GN: //components/cronet/android:network_quality_observation_source_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_network_quality_observation_source_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/network_quality_observation_source.h)",
+ out: [
+ "components/cronet/android/network_quality_observation_source_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/network_quality_observation_source.h",
+ ],
+}
+
+// GN: //components/cronet/android:rtt_throughput_values_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_rtt_throughput_values_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/network_quality.h)",
+ out: [
+ "components/cronet/android/rtt_throughput_values_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/network_quality.h",
+ ],
+}
+
+// GN: //components/cronet/android:url_request_error_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_url_request_error_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location components/cronet/android/url_request_error.h)",
+ out: [
+ "components/cronet/android/url_request_error_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/url_request_error.h",
+ ],
+}
+
+// GN: //components/cronet:cronet_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet:cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/cronet:cronet_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet:cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //components/cronet:cronet_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_cronet_buildflags__android_x86",
cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -4927,10 +8075,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -4947,6 +8098,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_common
@@ -5014,7 +8168,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5030,13 +8183,31 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
@@ -5067,7 +8238,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5077,12 +8247,28 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
],
@@ -5090,14 +8276,63 @@
},
}
+// GN: //components/cronet:cronet_version_header_action__android_arm
+cc_genrule {
+ name: "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-e " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/version.h.in)",
+ out: [
+ "components/cronet/version.h",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/version.h.in",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/cronet:cronet_version_header_action__android_arm64
+cc_genrule {
+ name: "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-e " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/version.h.in)",
+ out: [
+ "components/cronet/version.h",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/version.h.in",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //components/cronet:cronet_version_header_action__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_cronet_version_header_action__android_x86",
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -5111,16 +8346,18 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_version_header_action__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -5134,6 +8371,9 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:metrics_util
@@ -5177,7 +8417,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5188,6 +8427,18 @@
"third_party/boringssl/src/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //components/cronet/native:cronet_native_headers
@@ -5228,7 +8479,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5242,6 +8492,18 @@
"third_party/boringssl/src/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //components/cronet/native:cronet_native_impl
@@ -5311,7 +8573,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5330,13 +8591,31 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_components_cronet_cronet_buildflags__android_arm64",
+ "cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
@@ -5401,7 +8680,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5416,6 +8694,18 @@
"third_party/protobuf/src/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //components/grpc_support:headers
@@ -5440,7 +8730,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5449,6 +8738,18 @@
"buildtools/third_party/libc++abi/trunk/include",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //components/metrics:library_support
@@ -5462,6 +8763,7 @@
shared_libs: [
"libandroid",
"liblog",
+ "libprotobuf-cpp-lite",
],
static_libs: [
"cronet_aml_base_allocator_partition_allocator_partition_alloc",
@@ -5502,7 +8804,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5514,10 +8815,22 @@
"third_party/protobuf/src/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //components/nacl/common:buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_components_nacl_common_buildflags__host",
cmd: "echo '--flags ENABLE_NACL=\"true\" IS_MINIMAL_TOOLCHAIN=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -5528,24 +8841,91 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"components/nacl/common/buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/prefs/android:jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_components_prefs_android_jni_headers__android_arm",
+ srcs: [
+ "components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/components/prefs/android/jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "PrefService_jni.h " +
+ "--input_file " +
+ "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java)",
+ out: [
+ "components/prefs/android/jni_headers/PrefService_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //components/prefs/android:jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_components_prefs_android_jni_headers__android_arm64",
+ srcs: [
+ "components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/components/prefs/android/jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "PrefService_jni.h " +
+ "--input_file " +
+ "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java)",
+ out: [
+ "components/prefs/android/jni_headers/PrefService_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_components_prefs_android_jni_headers__android_x86",
srcs: [
"components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -5565,18 +8945,19 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_components_prefs_android_jni_headers__android_x86_64",
srcs: [
"components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -5596,6 +8977,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs:prefs
@@ -5660,7 +9044,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5672,7 +9055,38 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_components_prefs_android_jni_headers__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_components_prefs_android_jni_headers__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_components_prefs_android_jni_headers__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_components_prefs_android_jni_headers__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -5687,6 +9101,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -5703,8 +9120,54 @@
},
}
+// GN: //crypto:buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_crypto_buildflags__android_arm",
+ cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//crypto:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "crypto/crypto_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //crypto:buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_crypto_buildflags__android_arm64",
+ cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//crypto:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "crypto/crypto_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //crypto:buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_crypto_buildflags__android_x86",
cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -5721,10 +9184,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_crypto_buildflags__android_x86_64",
cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -5741,10 +9207,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__host
-genrule {
+cc_genrule {
name: "cronet_aml_crypto_buildflags__host",
cmd: "echo '--flags USE_NSS_CERTS=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -5755,12 +9224,17 @@
". " +
"--definitions " +
"/dev/stdin",
+ host_supported: true,
+ device_supported: false,
out: [
"crypto/crypto_buildflags.h",
],
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:crypto
@@ -5817,7 +9291,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5835,11 +9308,38 @@
"liblog",
],
},
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_crypto_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_crypto_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_crypto_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_crypto_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_crypto_buildflags__android_x86",
@@ -5853,6 +9353,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_crypto_buildflags__android_x86_64",
@@ -5879,6 +9380,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
local_include_dirs: [
"build/linux/debian_bullseye_amd64-sysroot/usr/include/nspr",
@@ -5919,6 +9421,10 @@
"-fvisibility=hidden",
],
stl: "none",
+ apex_available: [
+ "com.android.tethering",
+ ],
+ min_sdk_version: "29",
target: {
android: {
header_libs: [
@@ -5956,7 +9462,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -5965,6 +9470,18 @@
"buildtools/third_party/libc++abi/trunk/include",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //gn:java
@@ -6105,6 +9622,8 @@
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java",
"base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java",
+ "base/android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl",
+ "base/android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl",
"base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
"base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
"base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
@@ -6248,8 +9767,168 @@
],
}
+// GN: //net/android:net_android_java_enums_srcjar
+java_genrule {
+ name: "cronet_aml_net_android_net_android_java_enums_srcjar",
+ srcs: [
+ "net/android/network_change_notifier_android.cc",
+ "net/android/traffic_stats.cc",
+ "net/socket/socket_tag.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/network_change_notifier.h) " +
+ "$(location net/socket/socket_tag.cc) " +
+ "$(location net/android/cert_verify_result_android.h) " +
+ "$(location net/android/keystore.h) " +
+ "$(location net/android/network_change_notifier_android.cc) " +
+ "$(location net/android/traffic_stats.cc)",
+ out: [
+ "net/android/net_android_java_enums_srcjar.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/android/cert_verify_result_android.h",
+ "net/android/keystore.h",
+ "net/base/network_change_notifier.h",
+ ],
+}
+
+// GN: //net/android:net_errors_java
+java_genrule {
+ name: "cronet_aml_net_android_net_errors_java",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/net/android/net_errors_java.srcjar " +
+ "../../net/android/java/NetError.template",
+ out: [
+ "net/android/net_errors_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "net/android/java/NetError.template",
+ "net/base/net_error_list.h",
+ ],
+}
+
+// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_arm
+cc_genrule {
+ name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc)",
+ out: [
+ "net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc",
+ ],
+ tool_files: [
+ "net/base/registry_controlled_domains/effective_tld_names.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
+ "net/tools/dafsa/make_dafsa.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_arm64
+cc_genrule {
+ name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc) " +
+ "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
+ "--reverse " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf) " +
+ "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc)",
+ out: [
+ "net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc",
+ ],
+ tool_files: [
+ "net/base/registry_controlled_domains/effective_tld_names.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf",
+ "net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
+ "net/tools/dafsa/make_dafsa.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_x86",
cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
"$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
@@ -6297,10 +9976,13 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_x86_64",
cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
"$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
@@ -6348,10 +10030,59 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net:buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_net_buildflags__android_arm",
+ cmd: "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//net:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "net/net_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net:buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_net_buildflags__android_arm64",
+ cmd: "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//net:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "net/net_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_net_buildflags__android_x86",
cmd: "echo '--flags POSIX_BYPASS_MMAP=\"false\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -6368,10 +10099,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_net_buildflags__android_x86_64",
cmd: "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -6388,6 +10122,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:constants
@@ -6428,7 +10165,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -6439,10 +10175,74 @@
"third_party/boringssl/src/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
+}
+
+// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_arm
+cc_genrule {
+ name: "cronet_aml_net_data_ssl_chrome_root_store_gen_root_store_inc__android_arm",
+ cmd: "$(location build/gn_run_binary.py) clang_x64/root_store_tool " +
+ "--root-store " +
+ "../../net/data/ssl/chrome_root_store/root_store.textproto " +
+ "--certs " +
+ "../../net/data/ssl/chrome_root_store/root_store.certs " +
+ "--write-cpp-root-store " +
+ "gen/net/data/ssl/chrome_root_store/chrome-root-store-inc.cc " +
+ "--write-cpp-ev-roots " +
+ "gen/net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+ out: [
+ "net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+ "net/data/ssl/chrome_root_store/chrome-root-store-inc.cc",
+ ],
+ tool_files: [
+ "build/gn_run_binary.py",
+ "net/data/ssl/chrome_root_store/root_store.certs",
+ "net/data/ssl/chrome_root_store/root_store.textproto",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_arm64
+cc_genrule {
+ name: "cronet_aml_net_data_ssl_chrome_root_store_gen_root_store_inc__android_arm64",
+ cmd: "$(location build/gn_run_binary.py) clang_x64/root_store_tool " +
+ "--root-store " +
+ "../../net/data/ssl/chrome_root_store/root_store.textproto " +
+ "--certs " +
+ "../../net/data/ssl/chrome_root_store/root_store.certs " +
+ "--write-cpp-root-store " +
+ "gen/net/data/ssl/chrome_root_store/chrome-root-store-inc.cc " +
+ "--write-cpp-ev-roots " +
+ "gen/net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+ out: [
+ "net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc",
+ "net/data/ssl/chrome_root_store/chrome-root-store-inc.cc",
+ ],
+ tool_files: [
+ "build/gn_run_binary.py",
+ "net/data/ssl/chrome_root_store/root_store.certs",
+ "net/data/ssl/chrome_root_store/root_store.textproto",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_net_data_ssl_chrome_root_store_gen_root_store_inc__android_x86",
cmd: "$(location build/gn_run_binary.py) clang_x64/root_store_tool " +
"--root-store " +
@@ -6462,10 +10262,13 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_net_data_ssl_chrome_root_store_gen_root_store_inc__android_x86_64",
cmd: "$(location build/gn_run_binary.py) clang_x64/root_store_tool " +
"--root-store " +
@@ -6485,6 +10288,9 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/dns:dns
@@ -6584,7 +10390,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -6602,7 +10407,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -6614,6 +10444,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -6685,7 +10518,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -6703,7 +10535,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -6715,6 +10572,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -6786,7 +10646,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -6804,7 +10663,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -6816,6 +10700,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -6887,7 +10774,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -6905,7 +10791,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -6917,6 +10828,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -6988,7 +10902,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -7006,7 +10919,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -7018,6 +10956,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -7099,7 +11040,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -7117,7 +11057,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -7129,6 +11094,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -7142,6 +11110,25 @@
},
}
+// GN: //net:effective_connection_type_java
+java_genrule {
+ name: "cronet_aml_net_effective_connection_type_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/effective_connection_type.h)",
+ out: [
+ "net/effective_connection_type_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/effective_connection_type.h",
+ ],
+}
+
// GN: //net/http:transport_security_state_generated_files
cc_object {
name: "cronet_aml_net_http_transport_security_state_generated_files",
@@ -7203,7 +11190,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -7221,7 +11207,34 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_branding_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_branding_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -7234,6 +11247,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -7248,8 +11264,54 @@
},
}
+// GN: //net:ios_cronet_buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_net_ios_cronet_buildflags__android_arm",
+ cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//net:ios_cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "net/socket/ios_cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net:ios_cronet_buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_net_ios_cronet_buildflags__android_arm64",
+ cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//net:ios_cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "net/socket/ios_cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //net:ios_cronet_buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_net_ios_cronet_buildflags__android_x86",
cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -7266,10 +11328,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:ios_cronet_buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_net_ios_cronet_buildflags__android_x86_64",
cmd: "echo '--flags CRONET_BUILD=\"false\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -7286,10 +11351,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:isolation_info_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_isolation_info_proto_gen",
srcs: [
"net/base/isolation_info.proto",
@@ -7301,10 +11369,13 @@
out: [
"external/chromium_org/net/base/isolation_info.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:isolation_info_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_isolation_info_proto_gen_headers",
srcs: [
"net/base/isolation_info.proto",
@@ -7321,6 +11392,9 @@
"net/base",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net
@@ -7880,7 +11954,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -7898,10 +11971,67 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ srcs: [
+ "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
+ ],
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_branding_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_ios_cronet_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_branding_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ "cronet_aml_net_ios_cronet_buildflags__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
+ ],
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_branding_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_ios_cronet_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_branding_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ "cronet_aml_net_ios_cronet_buildflags__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
srcs: [
"net/disk_cache/blockfile/mapped_file_posix.cc",
],
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -7929,6 +12059,9 @@
srcs: [
"net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
],
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -7964,6 +12097,7 @@
shared_libs: [
"libandroid",
"liblog",
+ "libprotobuf-cpp-lite",
],
static_libs: [
"cronet_aml_base_allocator_partition_allocator_partition_alloc",
@@ -8010,7 +12144,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -8025,7 +12158,30 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
+ "cronet_aml_net_net_jni_headers__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm64",
+ "cronet_aml_net_net_jni_headers__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -8036,6 +12192,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -8070,7 +12229,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -8079,10 +12237,230 @@
"buildtools/third_party/libc++abi/trunk/include",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
+}
+
+// GN: //net:net_jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_net_net_jni_headers__android_arm",
+ srcs: [
+ "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
+ "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
+ "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
+ "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
+ "net/android/java/src/org/chromium/net/DnsStatus.java",
+ "net/android/java/src/org/chromium/net/GURLUtils.java",
+ "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
+ "net/android/java/src/org/chromium/net/HttpUtil.java",
+ "net/android/java/src/org/chromium/net/NetStringUtil.java",
+ "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
+ "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
+ "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
+ "net/android/java/src/org/chromium/net/X509Util.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/net/net_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "AndroidCertVerifyResult_jni.h " +
+ "--output_name " +
+ "AndroidKeyStore_jni.h " +
+ "--output_name " +
+ "AndroidNetworkLibrary_jni.h " +
+ "--output_name " +
+ "AndroidTrafficStats_jni.h " +
+ "--output_name " +
+ "DnsStatus_jni.h " +
+ "--output_name " +
+ "GURLUtils_jni.h " +
+ "--output_name " +
+ "HttpNegotiateAuthenticator_jni.h " +
+ "--output_name " +
+ "HttpUtil_jni.h " +
+ "--output_name " +
+ "NetStringUtil_jni.h " +
+ "--output_name " +
+ "NetworkActiveNotifier_jni.h " +
+ "--output_name " +
+ "NetworkChangeNotifier_jni.h " +
+ "--output_name " +
+ "ProxyChangeListener_jni.h " +
+ "--output_name " +
+ "X509Util_jni.h " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidKeyStore.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidTrafficStats.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/DnsStatus.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/GURLUtils.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/HttpUtil.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetStringUtil.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetworkActiveNotifier.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetworkChangeNotifier.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/X509Util.java)",
+ out: [
+ "net/net_jni_headers/AndroidCertVerifyResult_jni.h",
+ "net/net_jni_headers/AndroidKeyStore_jni.h",
+ "net/net_jni_headers/AndroidNetworkLibrary_jni.h",
+ "net/net_jni_headers/AndroidTrafficStats_jni.h",
+ "net/net_jni_headers/DnsStatus_jni.h",
+ "net/net_jni_headers/GURLUtils_jni.h",
+ "net/net_jni_headers/HttpNegotiateAuthenticator_jni.h",
+ "net/net_jni_headers/HttpUtil_jni.h",
+ "net/net_jni_headers/NetStringUtil_jni.h",
+ "net/net_jni_headers/NetworkActiveNotifier_jni.h",
+ "net/net_jni_headers/NetworkChangeNotifier_jni.h",
+ "net/net_jni_headers/ProxyChangeListener_jni.h",
+ "net/net_jni_headers/X509Util_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //net:net_jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_net_net_jni_headers__android_arm64",
+ srcs: [
+ "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
+ "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
+ "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
+ "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
+ "net/android/java/src/org/chromium/net/DnsStatus.java",
+ "net/android/java/src/org/chromium/net/GURLUtils.java",
+ "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
+ "net/android/java/src/org/chromium/net/HttpUtil.java",
+ "net/android/java/src/org/chromium/net/NetStringUtil.java",
+ "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
+ "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
+ "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
+ "net/android/java/src/org/chromium/net/X509Util.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/net/net_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "AndroidCertVerifyResult_jni.h " +
+ "--output_name " +
+ "AndroidKeyStore_jni.h " +
+ "--output_name " +
+ "AndroidNetworkLibrary_jni.h " +
+ "--output_name " +
+ "AndroidTrafficStats_jni.h " +
+ "--output_name " +
+ "DnsStatus_jni.h " +
+ "--output_name " +
+ "GURLUtils_jni.h " +
+ "--output_name " +
+ "HttpNegotiateAuthenticator_jni.h " +
+ "--output_name " +
+ "HttpUtil_jni.h " +
+ "--output_name " +
+ "NetStringUtil_jni.h " +
+ "--output_name " +
+ "NetworkActiveNotifier_jni.h " +
+ "--output_name " +
+ "NetworkChangeNotifier_jni.h " +
+ "--output_name " +
+ "ProxyChangeListener_jni.h " +
+ "--output_name " +
+ "X509Util_jni.h " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidKeyStore.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/AndroidTrafficStats.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/DnsStatus.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/GURLUtils.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/HttpUtil.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetStringUtil.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetworkActiveNotifier.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/NetworkChangeNotifier.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
+ "--input_file " +
+ "$(location net/android/java/src/org/chromium/net/X509Util.java)",
+ out: [
+ "net/net_jni_headers/AndroidCertVerifyResult_jni.h",
+ "net/net_jni_headers/AndroidKeyStore_jni.h",
+ "net/net_jni_headers/AndroidNetworkLibrary_jni.h",
+ "net/net_jni_headers/AndroidTrafficStats_jni.h",
+ "net/net_jni_headers/DnsStatus_jni.h",
+ "net/net_jni_headers/GURLUtils_jni.h",
+ "net/net_jni_headers/HttpNegotiateAuthenticator_jni.h",
+ "net/net_jni_headers/HttpUtil_jni.h",
+ "net/net_jni_headers/NetStringUtil_jni.h",
+ "net/net_jni_headers/NetworkActiveNotifier_jni.h",
+ "net/net_jni_headers/NetworkChangeNotifier_jni.h",
+ "net/net_jni_headers/ProxyChangeListener_jni.h",
+ "net/net_jni_headers/X509Util_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_jni_headers__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_net_net_jni_headers__android_x86",
srcs: [
"net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
@@ -8101,8 +12479,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -8182,10 +12558,13 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_net_net_jni_headers__android_x86_64",
srcs: [
"net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
@@ -8204,8 +12583,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -8285,10 +12662,13 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_nqe_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_net_nqe_proto_gen",
srcs: [
"net/nqe/proto/network_id_proto.proto",
@@ -8300,10 +12680,13 @@
out: [
"external/chromium_org/net/nqe/proto/network_id_proto.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_nqe_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_net_nqe_proto_gen_headers",
srcs: [
"net/nqe/proto/network_id_proto.proto",
@@ -8320,6 +12703,9 @@
"net/nqe/proto",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_public_deps
@@ -8332,6 +12718,7 @@
shared_libs: [
"libandroid",
"liblog",
+ "libprotobuf-cpp-lite",
],
static_libs: [
"cronet_aml_base_allocator_partition_allocator_partition_alloc",
@@ -8378,7 +12765,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -8394,13 +12780,31 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_net_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_net_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_net_buildflags__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_net_buildflags__android_x86_64",
@@ -8450,7 +12854,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -8461,10 +12864,22 @@
"third_party/boringssl/src/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //net/third_party/quiche:net_quic_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_third_party_quiche_net_quic_proto_gen",
srcs: [
"net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
@@ -8480,10 +12895,13 @@
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_third_party_quiche_net_quic_proto_gen_headers",
srcs: [
"net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
@@ -8504,10 +12922,13 @@
"net/third_party/quiche/src",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_test_tools_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
srcs: [
"net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
@@ -8519,10 +12940,13 @@
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_test_tools_proto
-genrule {
+cc_genrule {
name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
srcs: [
"net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
@@ -8539,6 +12963,9 @@
"net/third_party/quiche/src/quiche/quic/test_tools",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:quiche
@@ -8876,6 +13303,7 @@
shared_libs: [
"libandroid",
"liblog",
+ "libprotobuf-cpp-lite",
],
static_libs: [
"cronet_aml_base_allocator_partition_allocator_partition_alloc",
@@ -8923,7 +13351,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -8940,7 +13367,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
],
@@ -8949,6 +13395,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
],
@@ -9000,7 +13449,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9012,12 +13460,28 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
],
@@ -9067,7 +13531,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9078,6 +13541,18 @@
"third_party/boringssl/src/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/abseil-cpp:absl
@@ -9100,7 +13575,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9111,11 +13585,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -9126,6 +13621,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -9140,6 +13636,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -9167,7 +13664,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9178,11 +13674,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9190,6 +13701,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9201,6 +13713,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9225,7 +13738,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9236,11 +13748,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9248,6 +13775,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9259,6 +13787,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9283,7 +13812,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9294,11 +13822,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9306,6 +13849,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9317,6 +13861,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9348,7 +13893,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9359,11 +13903,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9371,6 +13930,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9382,6 +13942,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9406,7 +13967,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9417,11 +13977,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9429,6 +14004,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9440,6 +14016,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9464,7 +14041,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9475,11 +14051,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9487,6 +14078,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9498,6 +14090,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9522,7 +14115,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9533,11 +14125,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9545,6 +14152,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9556,6 +14164,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9580,7 +14189,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9591,11 +14199,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9603,6 +14226,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9614,6 +14238,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9638,7 +14263,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9649,11 +14273,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9661,6 +14300,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9672,6 +14312,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9696,7 +14337,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9707,11 +14347,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9719,6 +14374,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9730,6 +14386,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9754,7 +14411,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9765,11 +14421,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9777,6 +14448,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9788,6 +14460,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9812,7 +14485,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9823,11 +14495,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9835,6 +14522,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9846,6 +14534,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9873,7 +14562,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9884,11 +14572,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9896,6 +14599,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9907,6 +14611,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9934,7 +14639,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -9945,11 +14649,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -9957,6 +14676,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -9968,6 +14688,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -9992,7 +14713,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10003,11 +14723,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10015,6 +14750,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10026,6 +14762,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10053,7 +14790,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10064,11 +14800,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10076,6 +14827,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10087,6 +14839,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10114,7 +14867,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10125,11 +14877,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10137,6 +14904,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10148,6 +14916,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10175,7 +14944,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10186,11 +14954,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10198,6 +14981,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10209,6 +14993,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10236,7 +15021,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10247,11 +15031,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10259,6 +15058,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10270,6 +15070,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10294,7 +15095,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10305,11 +15105,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10317,6 +15132,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10328,6 +15144,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10352,7 +15169,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10363,11 +15179,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10375,6 +15206,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10386,6 +15218,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10410,7 +15243,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10421,11 +15253,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10433,6 +15280,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10444,6 +15292,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10468,7 +15317,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10479,11 +15327,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10491,6 +15354,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10502,6 +15366,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10526,7 +15391,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10537,11 +15401,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10549,6 +15428,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10560,6 +15440,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10584,7 +15465,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10595,11 +15475,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10607,6 +15502,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10618,6 +15514,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10642,7 +15539,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10653,11 +15549,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10665,6 +15576,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10676,6 +15588,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10700,7 +15613,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10711,11 +15623,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10723,6 +15650,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10734,6 +15662,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10758,7 +15687,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10769,11 +15697,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10781,6 +15724,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10792,6 +15736,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10816,7 +15761,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10827,11 +15771,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10839,6 +15798,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10850,6 +15810,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10874,7 +15835,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10885,11 +15845,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10897,6 +15872,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10908,6 +15884,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10932,7 +15909,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -10943,11 +15919,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -10955,6 +15946,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -10966,6 +15958,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -10990,7 +15983,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11001,11 +15993,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11013,6 +16020,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11024,6 +16032,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11052,7 +16061,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11063,11 +16071,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11075,6 +16098,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11086,6 +16110,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11110,7 +16135,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11121,11 +16145,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11133,6 +16172,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11144,6 +16184,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11168,7 +16209,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11179,11 +16219,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11191,6 +16246,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11202,6 +16258,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11226,7 +16283,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11237,11 +16293,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11249,6 +16320,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11260,6 +16332,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11284,7 +16357,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11295,11 +16367,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11307,6 +16394,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11318,6 +16406,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11342,7 +16431,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11353,11 +16441,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11365,6 +16468,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11376,6 +16480,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11400,7 +16505,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11411,11 +16515,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11423,6 +16542,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11434,6 +16554,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11458,7 +16579,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11469,11 +16589,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11481,6 +16616,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11492,6 +16628,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11519,7 +16656,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11530,11 +16666,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11542,6 +16693,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11553,6 +16705,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11582,7 +16735,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11593,11 +16745,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11605,6 +16772,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11616,6 +16784,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11643,7 +16812,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11654,11 +16822,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11666,6 +16849,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11677,6 +16861,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11704,7 +16889,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11715,11 +16899,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11727,6 +16926,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11738,6 +16938,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11765,7 +16966,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11776,11 +16976,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11788,6 +17003,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11799,6 +17015,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11826,7 +17043,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11837,11 +17053,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11849,6 +17080,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11860,6 +17092,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11887,7 +17120,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11898,11 +17130,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11910,6 +17157,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11921,6 +17169,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -11945,7 +17194,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -11956,11 +17204,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -11968,6 +17231,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -11979,6 +17243,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12003,7 +17268,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12014,11 +17278,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12026,6 +17305,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12037,6 +17317,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12061,7 +17342,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12072,11 +17352,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12084,6 +17379,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12095,6 +17391,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12122,7 +17419,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12133,11 +17429,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12145,6 +17456,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12156,6 +17468,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12183,7 +17496,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12194,11 +17506,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12206,6 +17533,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12217,6 +17545,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12244,7 +17573,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12255,11 +17583,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12267,6 +17610,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12278,6 +17622,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12302,7 +17647,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12313,11 +17657,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12325,6 +17684,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12336,6 +17696,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12360,7 +17721,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12371,11 +17731,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12383,6 +17758,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12394,6 +17770,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12418,7 +17795,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12429,11 +17805,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12441,6 +17832,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12452,6 +17844,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12479,7 +17872,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12490,11 +17882,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12502,6 +17909,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12513,6 +17921,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12537,7 +17946,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12548,11 +17956,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12560,6 +17983,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12571,6 +17995,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12598,7 +18023,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12609,11 +18033,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12621,6 +18060,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12632,6 +18072,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12656,7 +18097,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12667,11 +18107,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12679,6 +18134,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12690,6 +18146,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12718,7 +18175,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12729,11 +18185,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12741,6 +18212,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12752,6 +18224,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12776,7 +18249,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12787,11 +18259,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12799,6 +18286,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12810,6 +18298,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12834,7 +18323,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12845,11 +18333,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12857,6 +18360,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12868,6 +18372,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12892,7 +18397,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12903,11 +18407,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12915,6 +18434,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12926,6 +18446,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -12950,7 +18471,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -12961,11 +18481,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -12973,6 +18508,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -12984,6 +18520,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13008,7 +18545,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13019,11 +18555,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13031,6 +18582,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13042,6 +18594,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13066,7 +18619,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13077,11 +18629,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13092,6 +18665,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13106,6 +18680,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13133,7 +18708,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13144,11 +18718,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13156,6 +18745,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13167,6 +18757,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13194,7 +18785,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13205,11 +18795,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13220,6 +18831,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13234,6 +18846,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13264,7 +18877,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13275,11 +18887,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13290,6 +18923,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13304,6 +18938,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13334,7 +18969,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13345,11 +18979,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13360,6 +19015,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13374,6 +19030,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13401,7 +19058,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13412,11 +19068,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13427,6 +19104,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13441,6 +19119,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13471,7 +19150,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13482,11 +19160,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13497,6 +19196,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13511,6 +19211,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13541,7 +19242,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13552,11 +19252,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13567,6 +19288,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13581,6 +19303,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13611,7 +19334,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13622,11 +19344,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13637,6 +19380,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -13651,6 +19395,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -13678,7 +19423,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13689,11 +19433,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13701,6 +19460,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13712,6 +19472,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13739,7 +19500,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13750,11 +19510,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13762,6 +19537,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13773,6 +19549,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13797,7 +19574,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13808,11 +19584,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13820,6 +19611,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13831,6 +19623,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13855,7 +19648,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13866,11 +19658,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13878,6 +19685,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13889,6 +19697,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13913,7 +19722,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13924,11 +19732,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -13936,6 +19759,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -13947,6 +19771,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -13971,7 +19796,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -13982,11 +19806,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -13997,6 +19842,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -14011,6 +19857,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -14041,7 +19888,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14052,11 +19898,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14064,6 +19925,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14075,6 +19937,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14102,7 +19965,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14113,11 +19975,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ generated_headers: [
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86",
@@ -14128,6 +20011,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__android_x86_64",
@@ -14142,6 +20026,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
generated_headers: [
"cronet_aml_build_chromeos_buildflags__host",
@@ -14173,7 +20058,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14184,11 +20068,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14196,6 +20095,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14207,6 +20107,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14234,7 +20135,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14245,11 +20145,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14257,6 +20172,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14268,6 +20184,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14297,7 +20214,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14308,11 +20224,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14320,6 +20251,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14331,6 +20263,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14364,7 +20297,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14375,11 +20307,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14387,6 +20334,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14398,6 +20346,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14425,7 +20374,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14436,11 +20384,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14448,6 +20411,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14459,6 +20423,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14486,7 +20451,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14497,11 +20461,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14509,6 +20488,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14520,6 +20500,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14547,7 +20528,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14558,11 +20538,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14570,6 +20565,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14581,6 +20577,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14605,7 +20602,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14616,11 +20612,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14628,6 +20639,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14639,6 +20651,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14663,7 +20676,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14674,11 +20686,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14686,6 +20713,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14697,6 +20725,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14721,7 +20750,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14732,11 +20760,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14744,6 +20787,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14755,6 +20799,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14784,7 +20829,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14795,11 +20839,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14807,6 +20866,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14818,6 +20878,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14842,7 +20903,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14853,11 +20913,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14865,6 +20940,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14876,6 +20952,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14908,7 +20985,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14919,11 +20995,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -14931,6 +21022,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -14942,6 +21034,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -14982,7 +21075,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -14993,11 +21085,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15005,6 +21112,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15016,6 +21124,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15043,7 +21152,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15054,11 +21162,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15066,6 +21189,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15077,6 +21201,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15101,7 +21226,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15112,11 +21236,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15124,6 +21263,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15135,6 +21275,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15168,7 +21309,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15179,11 +21319,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15191,6 +21346,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15202,6 +21358,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15229,7 +21386,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15240,11 +21396,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15252,6 +21423,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15263,6 +21435,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15298,7 +21471,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15309,11 +21481,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15321,6 +21508,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15332,6 +21520,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15363,7 +21552,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15374,11 +21562,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15386,6 +21589,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15397,6 +21601,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15424,7 +21629,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15435,11 +21639,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15447,6 +21666,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15458,6 +21678,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15485,7 +21706,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15496,11 +21716,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15508,6 +21743,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15519,6 +21755,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15543,7 +21780,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15554,11 +21790,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15566,6 +21817,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15577,6 +21829,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15601,7 +21854,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15612,11 +21864,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15624,6 +21891,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15635,6 +21903,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15659,7 +21928,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15670,11 +21938,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15682,6 +21965,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15693,6 +21977,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15717,7 +22002,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15728,11 +22012,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15740,6 +22039,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15751,6 +22051,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15775,7 +22076,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15786,11 +22086,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -15798,6 +22113,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -15809,6 +22125,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -15837,7 +22154,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15847,6 +22163,18 @@
"third_party/android_ndk/sources/android/cpufeatures/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/ashmem:ashmem
@@ -15874,7 +22202,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -15883,6 +22210,18 @@
"buildtools/third_party/libc++abi/trunk/include",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/boringssl:boringssl
@@ -16176,7 +22515,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16187,11 +22525,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -16199,6 +22552,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -16210,6 +22564,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -16235,7 +22590,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16246,6 +22600,50 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ srcs: [
+ "third_party/boringssl/linux-arm/crypto/chacha/chacha-armv4.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/aesv8-armx32.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/armv4-mont.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/ghash-armv4.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/ghashv8-armx32.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/sha1-armv4-large.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S",
+ "third_party/boringssl/linux-arm/crypto/fipsmodule/vpaes-armv7.S",
+ "third_party/boringssl/linux-arm/crypto/test/trampoline-armv4.S",
+ "third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S",
+ "third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ "third_party/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256-armv8-asm.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S",
+ "third_party/boringssl/linux-aarch64/crypto/test/trampoline-armv8.S",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
srcs: [
"third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S",
@@ -16266,6 +22664,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -16295,6 +22694,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -16328,6 +22728,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -16353,7 +22754,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16363,11 +22763,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -16375,6 +22790,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -16386,6 +22802,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -16421,7 +22838,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16431,6 +22847,18 @@
"third_party/brotli/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/brotli:dec
@@ -16462,7 +22890,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16472,6 +22899,18 @@
"third_party/brotli/include/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/brotli:headers
@@ -16496,7 +22935,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16505,6 +22943,18 @@
"buildtools/third_party/libc++abi/trunk/include",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/icu:icui18n
@@ -16782,7 +23232,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -16795,11 +23244,26 @@
cpp_std: "c++20",
rtti: true,
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -16807,6 +23271,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -16818,6 +23283,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -17055,7 +23521,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17068,11 +23533,26 @@
cpp_std: "c++20",
rtti: true,
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -17080,6 +23560,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -17091,6 +23572,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -17116,7 +23598,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17126,11 +23607,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -17138,6 +23634,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -17149,6 +23646,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -17189,7 +23687,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17199,11 +23696,32 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ local_include_dirs: [
+ "third_party/libevent/android/",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ local_include_dirs: [
+ "third_party/libevent/android/",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/libevent/android/",
@@ -17214,6 +23732,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
local_include_dirs: [
"third_party/libevent/android/",
@@ -17228,6 +23747,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
local_include_dirs: [
"third_party/libevent/linux/",
@@ -17237,7 +23757,7 @@
}
// GN: //third_party/metrics_proto:metrics_proto
-genrule {
+cc_genrule {
name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen",
srcs: [
"third_party/metrics_proto/call_stack_profile.proto",
@@ -17301,10 +23821,13 @@
"external/chromium_org/third_party/metrics_proto/user_action_event.pb.cc",
"external/chromium_org/third_party/metrics_proto/user_demographics.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //third_party/metrics_proto:metrics_proto
-genrule {
+cc_genrule {
name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
srcs: [
"third_party/metrics_proto/call_stack_profile.proto",
@@ -17373,6 +23896,9 @@
"protos",
"third_party/metrics_proto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //third_party/modp_b64:modp_b64
@@ -17398,7 +23924,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17408,11 +23933,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -17420,6 +23960,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -17431,6 +23972,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -17630,7 +24172,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17640,6 +24181,18 @@
"third_party/protobuf/src/",
],
cpp_std: "c++20",
+ target: {
+ android_x86: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
+ },
+ },
}
// GN: //third_party/protobuf:protoc
@@ -17832,7 +24385,6 @@
name: "cronet_aml_third_party_zlib_zlib",
srcs: [
":cronet_aml_third_party_zlib_zlib_adler32_simd",
- ":cronet_aml_third_party_zlib_zlib_crc32_simd",
":cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
"third_party/zlib/adler32.c",
"third_party/zlib/compress.c",
@@ -17855,15 +24407,10 @@
"cronet_aml_defaults",
],
cflags: [
- "-DADLER32_SIMD_SSSE3",
- "-DCRC32_SIMD_SSE42_PCLMUL",
"-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
"-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
"-DDCHECK_ALWAYS_ON=1",
- "-DDEFLATE_SLIDE_HASH_SSE2",
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DINFLATE_CHUNK_SIMD_SSE2",
- "-DX86_NOT_WINDOWS",
"-DZLIB_DEBUG",
"-DZLIB_IMPLEMENTATION",
"-D_DEBUG",
@@ -17872,7 +24419,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -17883,14 +24429,60 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_zlib_zlib_arm_crc32",
+ ],
+ cflags: [
+ "-DADLER32_SIMD_NEON",
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DARMV8_OS_ANDROID",
+ "-DCRC32_ARMV8_CRC32",
+ "-DDEFLATE_SLIDE_HASH_NEON",
+ "-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_SIMD_NEON",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ },
+ android_arm64: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_zlib_zlib_arm_crc32",
+ ],
+ cflags: [
+ "-DADLER32_SIMD_NEON",
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DARMV8_OS_ANDROID",
+ "-DCRC32_ARMV8_CRC32",
+ "-DDEFLATE_SLIDE_HASH_NEON",
+ "-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_NEON",
+ ],
+ local_include_dirs: [
+ "third_party/android_ndk/sources/android/cpufeatures/",
+ ],
+ },
android_x86: {
srcs: [
":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_zlib_zlib_crc32_simd",
],
cflags: [
+ "-DADLER32_SIMD_SSSE3",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DCRC32_SIMD_SSE42_PCLMUL",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
+ "-DX86_NOT_WINDOWS",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
@@ -17899,27 +24491,43 @@
android_x86_64: {
srcs: [
":cronet_aml_third_party_android_ndk_cpu_features",
+ ":cronet_aml_third_party_zlib_zlib_crc32_simd",
],
cflags: [
+ "-DADLER32_SIMD_SSSE3",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DCRC32_SIMD_SSE42_PCLMUL",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DHAVE_SYS_UIO_H",
"-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
+ "-DX86_NOT_WINDOWS",
+ "-msse3",
],
local_include_dirs: [
"third_party/android_ndk/sources/android/cpufeatures/",
],
},
host: {
+ srcs: [
+ ":cronet_aml_third_party_zlib_zlib_crc32_simd",
+ ],
cflags: [
+ "-DADLER32_SIMD_SSSE3",
+ "-DCRC32_SIMD_SSE42_PCLMUL",
"-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
"-DUSE_AURA=1",
"-DUSE_OZONE=1",
"-DUSE_UDEV",
+ "-DX86_NOT_WINDOWS",
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -17936,12 +24544,10 @@
"cronet_aml_defaults",
],
cflags: [
- "-DADLER32_SIMD_SSSE3",
"-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
"-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
"-DDCHECK_ALWAYS_ON=1",
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DX86_NOT_WINDOWS",
"-DZLIB_DEBUG",
"-DZLIB_IMPLEMENTATION",
"-D_DEBUG",
@@ -17952,8 +24558,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
- "-mssse3",
],
local_include_dirs: [
"./",
@@ -17963,34 +24567,102 @@
],
cpp_std: "c++20",
target: {
- android_x86: {
+ android_arm: {
cflags: [
+ "-DADLER32_SIMD_NEON",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
],
},
+ android_arm64: {
+ cflags: [
+ "-DADLER32_SIMD_NEON",
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_x86: {
+ cflags: [
+ "-DADLER32_SIMD_SSSE3",
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ "-DX86_NOT_WINDOWS",
+ "-msse3",
+ "-mssse3",
+ ],
+ },
android_x86_64: {
cflags: [
+ "-DADLER32_SIMD_SSSE3",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-DX86_NOT_WINDOWS",
+ "-msse3",
+ "-mssse3",
],
},
host: {
cflags: [
+ "-DADLER32_SIMD_SSSE3",
"-DCR_SYSROOT_KEY=20220331T153654Z-0",
"-DUSE_AURA=1",
"-DUSE_OZONE=1",
"-DUSE_UDEV",
+ "-DX86_NOT_WINDOWS",
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
+ "-mssse3",
],
},
},
}
+// GN: //third_party/zlib:zlib_arm_crc32
+cc_object {
+ name: "cronet_aml_third_party_zlib_zlib_arm_crc32",
+ srcs: [
+ "third_party/zlib/crc32_simd.c",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DARMV8_OS_ANDROID",
+ "-DCRC32_ARMV8_CRC32",
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DHAVE_SYS_UIO_H",
+ "-DZLIB_DEBUG",
+ "-DZLIB_IMPLEMENTATION",
+ "-D_DEBUG",
+ "-D_GNU_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D__STDC_CONSTANT_MACROS",
+ "-D__STDC_FORMAT_MACROS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "third_party/zlib/",
+ ],
+ cpp_std: "c++20",
+}
+
// GN: //third_party/zlib:zlib_common_headers
cc_object {
name: "cronet_aml_third_party_zlib_zlib_common_headers",
@@ -18011,7 +24683,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -18021,11 +24692,26 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
@@ -18033,6 +24719,7 @@
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
@@ -18044,6 +24731,7 @@
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -18132,7 +24820,6 @@
"-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
"-DDCHECK_ALWAYS_ON=1",
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DINFLATE_CHUNK_SIMD_SSE2",
"-DZLIB_DEBUG",
"-DZLIB_IMPLEMENTATION",
"-D_DEBUG",
@@ -18141,7 +24828,6 @@
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -18152,11 +24838,30 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_SIMD_NEON",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_NEON",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
+ "-msse3",
],
},
android_x86_64: {
@@ -18165,18 +24870,22 @@
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DHAVE_SYS_UIO_H",
"-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
+ "-msse3",
],
},
host: {
cflags: [
"-DCR_SYSROOT_KEY=20220331T153654Z-0",
"-DINFLATE_CHUNK_READ_64LE",
+ "-DINFLATE_CHUNK_SIMD_SSE2",
"-DUSE_AURA=1",
"-DUSE_OZONE=1",
"-DUSE_UDEV",
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
@@ -18193,7 +24902,6 @@
"-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
"-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
"-DDCHECK_ALWAYS_ON=1",
- "-DDEFLATE_SLIDE_HASH_SSE2",
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
"-DZLIB_DEBUG",
"-DZLIB_IMPLEMENTATION",
@@ -18205,7 +24913,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -18215,36 +24922,104 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DDEFLATE_SLIDE_HASH_NEON",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
+ android_arm64: {
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DDEFLATE_SLIDE_HASH_NEON",
+ "-DHAVE_SYS_UIO_H",
+ ],
+ },
android_x86: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
android_x86_64: {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DHAVE_SYS_UIO_H",
+ "-msse3",
],
},
host: {
cflags: [
"-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDEFLATE_SLIDE_HASH_SSE2",
"-DUSE_AURA=1",
"-DUSE_OZONE=1",
"-DUSE_UDEV",
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE64_SOURCE",
"-D_LARGEFILE_SOURCE",
+ "-msse3",
],
},
},
}
+// GN: //url:buildflags__android_arm
+cc_genrule {
+ name: "cronet_aml_url_buildflags__android_arm",
+ cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//url:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "url/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //url:buildflags__android_arm64
+cc_genrule {
+ name: "cronet_aml_url_buildflags__android_arm64",
+ cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//url:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "url/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //url:buildflags__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_url_buildflags__android_x86",
cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -18261,10 +25036,13 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:buildflags__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_url_buildflags__android_x86_64",
cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
"$(location build/write_buildflag_header.py) --output " +
@@ -18281,6 +25059,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url
@@ -18346,7 +25127,6 @@
"-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
- "-msse3",
],
local_include_dirs: [
"./",
@@ -18358,7 +25138,42 @@
],
cpp_std: "c++20",
target: {
+ android_arm: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ "cronet_aml_url_url_jni_headers__android_arm",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm",
+ "cronet_aml_base_logging_buildflags__android_arm",
+ "cronet_aml_build_chromeos_buildflags__android_arm",
+ "cronet_aml_url_buildflags__android_arm",
+ "cronet_aml_url_url_jni_headers__android_arm",
+ ],
+ },
+ android_arm64: {
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ "cronet_aml_url_url_jni_headers__android_arm64",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags__android_arm64",
+ "cronet_aml_base_logging_buildflags__android_arm64",
+ "cronet_aml_build_chromeos_buildflags__android_arm64",
+ "cronet_aml_url_buildflags__android_arm64",
+ "cronet_aml_url_url_jni_headers__android_arm64",
+ ],
+ },
android_x86: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86",
"cronet_aml_base_logging_buildflags__android_x86",
@@ -18375,6 +25190,9 @@
],
},
android_x86_64: {
+ cflags: [
+ "-msse3",
+ ],
generated_headers: [
"cronet_aml_base_debugging_buildflags__android_x86_64",
"cronet_aml_base_logging_buildflags__android_x86_64",
@@ -18393,8 +25211,84 @@
},
}
+// GN: //url:url_jni_headers__android_arm
+cc_genrule {
+ name: "cronet_aml_url_url_jni_headers__android_arm",
+ srcs: [
+ "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+ "url/android/java/src/org/chromium/url/Origin.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/url/url_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "IDNStringUtil_jni.h " +
+ "--output_name " +
+ "Origin_jni.h " +
+ "--input_file " +
+ "$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
+ "--input_file " +
+ "$(location url/android/java/src/org/chromium/url/Origin.java)",
+ out: [
+ "url/url_jni_headers/IDNStringUtil_jni.h",
+ "url/url_jni_headers/Origin_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //url:url_jni_headers__android_arm64
+cc_genrule {
+ name: "cronet_aml_url_url_jni_headers__android_arm64",
+ srcs: [
+ "url/android/java/src/org/chromium/url/IDNStringUtil.java",
+ "url/android/java/src/org/chromium/url/Origin.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ "--output_dir " +
+ "$(genDir)/url/url_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "IDNStringUtil_jni.h " +
+ "--output_name " +
+ "Origin_jni.h " +
+ "--input_file " +
+ "$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
+ "--input_file " +
+ "$(location url/android/java/src/org/chromium/url/Origin.java)",
+ out: [
+ "url/url_jni_headers/IDNStringUtil_jni.h",
+ "url/url_jni_headers/Origin_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
// GN: //url:url_jni_headers__android_x86
-genrule {
+cc_genrule {
name: "cronet_aml_url_url_jni_headers__android_x86",
srcs: [
"url/android/java/src/org/chromium/url/IDNStringUtil.java",
@@ -18402,8 +25296,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -18428,10 +25320,13 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url_jni_headers__android_x86_64
-genrule {
+cc_genrule {
name: "cronet_aml_url_url_jni_headers__android_x86_64",
srcs: [
"url/android/java/src/org/chromium/url/IDNStringUtil.java",
@@ -18439,8 +25334,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -18465,5 +25358,8 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 000faf5..233e6f8 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -29,6 +29,7 @@
import collections
import json
import logging as log
+import operator
import os
import re
import sys
@@ -107,6 +108,9 @@
# Location of the protobuf src dir in the Android source tree.
android_protobuf_src = 'external/protobuf/src'
+# put all args on a new line for better diffs.
+NEWLINE = ' " +\n "'
+
# Compiler flags which are passed through to the blueprint.
cflag_allowlist = [
# needed for zlib:zlib
@@ -142,6 +146,9 @@
lambda x: None,
}
+# Name of tethering apex module
+tethering_apex = "com.android.tethering"
+
# ----------------------------------------------------------------------------
# End of configuration.
# ----------------------------------------------------------------------------
@@ -305,6 +312,8 @@
self.stubs = {}
self.cppflags = set()
self.rtti = False
+ # Name of the output. Used for setting .so file name for libcronet
+ self.stem = None
def to_string(self, output):
if self.comment:
@@ -351,6 +360,7 @@
self._output_field(output, 'proto')
self._output_field(output, 'linker_scripts')
self._output_field(output, 'cppflags')
+ self._output_field(output, 'stem')
if self.rtti:
self._output_field(output, 'rtti')
@@ -390,22 +400,36 @@
return write_blueprint_key_value(output, name, value, sort)
def is_compiled(self):
- return self.type not in ('genrule', 'filegroup', 'cc_defaults')
+ return self.type not in ('cc_genrule', 'filegroup', 'java_genrule')
+
+ def is_genrule(self):
+ return self.type == "cc_genrule"
def has_input_files(self):
- for target in self.target.values():
- if len(target.srcs) > 0:
- return True
return len(self.srcs) > 0 or any([len(target.srcs) > 0 for target in self.target.values()])
- def merge_key(self, parent_key, dep_module, archs_allowed, child_key = None):
- if not child_key:
- child_key = parent_key
- self.__dict__[parent_key].update(dep_module.__dict__[child_key])
- for arch_name, arch in dep_module.target.items():
- if arch_name in archs_allowed:
- self.target[arch_name].__dict__[parent_key].update(
- dep_module.target[arch_name].__dict__[child_key])
+ def merge_attribute(self, key, source_module, allowed_archs, source_key = None):
+ """
+ Merges the value of the attribute `source_key` for the `dep_module` with
+ the value of the attribute `key` for this module. If the value of the
+ `source_key` is equal to None. Then `key` is used for both modules.
+
+ This merges the attribute for both non-arch and archs
+ specified in `allowed_archs`.
+ :param key: The attribute used for merging in the calling module. Also
+ used for `dep_module` if the `source_key` is None.
+ :param source_module: The module where data is propagated from.
+ :param allowed_archs: A list of archs to merge the attribute on.
+ :param source_key: if the attribute merged from the `dep_module`
+ is different from the `key`
+ """
+ if not source_key:
+ source_key = key
+ self.__dict__[key].update(source_module.__dict__[source_key])
+ for arch_name in source_module.target.keys():
+ if arch_name in allowed_archs:
+ self.target[arch_name].__dict__[key].update(
+ source_module.target[arch_name].__dict__[source_key])
class Blueprint(object):
"""In-memory representation of an Android.bp file."""
@@ -485,7 +509,7 @@
cmd += ['--descriptor_set_out=$(out)']
cmd += ['$(in)']
- descriptor_module = Module('genrule', target_module_name, target.name)
+ descriptor_module = Module('cc_genrule', target_module_name, target.name)
descriptor_module.cmd = ' '.join(cmd)
descriptor_module.out = [out]
descriptor_module.tools = tools
@@ -508,12 +532,12 @@
# source files in 'srcs' and headers in 'generated_headers' -- and it's not
# valid to generate .h files from a source dependency and vice versa.
source_module_name = target_module_name + '_gen'
- source_module = Module('genrule', source_module_name, target.name)
+ source_module = Module('cc_genrule', source_module_name, target.name)
blueprint.add_module(source_module)
source_module.srcs.update(
gn_utils.label_to_path(src) for src in target.sources)
- header_module = Module('genrule', source_module_name + '_headers',
+ header_module = Module('cc_genrule', source_module_name + '_headers',
target.name)
blueprint.add_module(header_module)
header_module.srcs = set(source_module.srcs)
@@ -529,6 +553,9 @@
# without explictily exporting the include dir.
header_module.export_include_dirs.add(target.proto_in_dir)
+ # This function does not return header_module so setting apex_available attribute here.
+ header_module.apex_available.add(tethering_apex)
+
source_module.genrule_srcs.add(':' + source_module.name)
source_module.genrule_headers.add(header_module.name)
@@ -591,6 +618,334 @@
blueprint.add_module(module)
+
+class BaseActionSanitizer():
+ def __init__(self, target):
+ # Just to be on the safe side, create a deep-copy.
+ self.target = copy.deepcopy(target)
+ self.target.args = self._normalize_args()
+
+ def get_name(self):
+ return label_to_module_name(self.target.name)
+
+ def _normalize_args(self):
+ # Convert ['--param=value'] to ['--param', 'value'] for consistency.
+ # Escape quotations.
+ normalized_args = []
+ for arg in self.target.args:
+ arg = arg.replace('"', r'\"')
+ if arg.startswith('-'):
+ normalized_args.extend(arg.split('='))
+ else:
+ normalized_args.append(arg)
+ return normalized_args
+
+ # There are three types of args:
+ # - flags (--flag)
+ # - value args (--arg value)
+ # - list args (--arg value1 --arg value2)
+ # value args have exactly one arg value pair and list args have one or more arg value pairs.
+ # Note that the set of list args contains the set of value args.
+ # This is because list and value args are identical when the list args has only one arg value pair
+ # Some functions provide special implementations for each type, while others
+ # work on all of them.
+ def _has_arg(self, arg):
+ return arg in self.target.args
+
+ def _get_arg_indices(self, target_arg):
+ return [i for i, arg in enumerate(self.target.args) if arg == target_arg]
+
+ # Whether an arg value pair appears once or more times
+ def _is_list_arg(self, arg):
+ indices = self._get_arg_indices(arg)
+ return len(indices) > 0 and all([not self.target.args[i + 1].startswith('--') for i in indices])
+
+ def _update_list_arg(self, arg, func, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_list_arg(arg))
+ indices = self._get_arg_indices(arg)
+ for i in indices:
+ self._set_arg_at(i + 1, func(self.target.args[i + 1]))
+
+ # Whether an arg value pair appears exactly once
+ def _is_value_arg(self, arg):
+ return operator.countOf(self.target.args, arg) == 1 and self._is_list_arg(arg)
+
+ def _get_value_arg(self, arg):
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ return self.target.args[i + 1]
+
+ # used to check whether a function call should cause an error when an arg is
+ # missing.
+ def _should_fail_silently(self, arg, throw_if_absent):
+ return not throw_if_absent and not self._has_arg(arg)
+
+ def _set_value_arg(self, arg, value, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ self.target.args[i + 1] = value
+
+ def _update_value_arg(self, arg, func, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ self._set_value_arg(arg, func(self._get_value_arg(arg)))
+
+ def _set_arg_at(self, position, value):
+ self.target.args[position] = value
+
+ def _delete_value_arg(self, arg, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ self.target.args.pop(i)
+ self.target.args.pop(i)
+
+ def _append_arg(self, arg, value):
+ self.target.args.append(arg)
+ self.target.args.append(value)
+
+ def _sanitize_filepath_with_location_tag(self, arg):
+ if arg.startswith('../../'):
+ arg = self._sanitize_filepath(arg)
+ arg = self._add_location_tag(arg)
+ return arg
+
+ # wrap filename in location tag.
+ def _add_location_tag(self, filename):
+ return '$(location %s)' % filename
+
+ # applies common directory transformation that *should* be universally applicable.
+ # TODO: verify if it actually *is* universally applicable.
+ def _sanitize_filepath(self, filepath):
+ # Careful, order matters!
+ # delete all leading ../
+ filepath = re.sub('^(\.\./)+', '', filepath)
+ filepath = re.sub('^gen/jni_headers', '$(genDir)', filepath)
+ filepath = re.sub('^gen', '$(genDir)', filepath)
+ return filepath
+
+ # Iterate through all the args and apply function
+ def _update_all_args(self, func):
+ self.target.args = [func(arg) for arg in self.target.args]
+
+ def get_cmd(self):
+ arg_string = NEWLINE.join(self.target.args)
+ cmd = '$(location %s) %s' % (
+ gn_utils.label_to_path(self.target.script), arg_string)
+
+ if self.use_response_file:
+ # Pipe response file contents into script
+ cmd = 'echo \'%s\' |%s%s' % (self.target.response_file_contents, NEWLINE, cmd)
+ return cmd
+
+ def get_outputs(self):
+ return self.target.outputs
+
+ def get_srcs(self):
+ # gn treats inputs and sources for actions equally.
+ # soong only supports source files inside srcs, non-source files are added as
+ # tool_files dependency.
+ files = self.target.sources.union(self.target.inputs)
+ return {gn_utils.label_to_path(file) for file in files if is_supported_source_file(file)}
+
+ def get_tool_files(self):
+ # gn treats inputs and sources for actions equally.
+ # soong only supports source files inside srcs, non-source files are added as
+ # tool_files dependency.
+ files = self.target.sources.union(self.target.inputs)
+ tool_files = {gn_utils.label_to_path(file)
+ for file in files if not is_supported_source_file(file)}
+ tool_files.add(gn_utils.label_to_path(self.target.script))
+ return tool_files
+
+ def _sanitize_args(self):
+ # Handle passing parameters via response file by piping them into the script
+ # and reading them from /dev/stdin.
+
+ self.use_response_file = gn_utils.RESPONSE_FILE in self.target.args
+ if self.use_response_file:
+ # Replace {{response_file_contents}} with /dev/stdin
+ self.target.args = ['/dev/stdin' if it == gn_utils.RESPONSE_FILE else it
+ for it in self.target.args]
+
+ def _sanitize_outputs(self):
+ pass
+
+ def _sanitize_inputs(self):
+ pass
+
+ def sanitize(self):
+ self._sanitize_args()
+ self._sanitize_outputs()
+ self._sanitize_inputs()
+
+ # Whether this target generates header files
+ def is_header_generated(self):
+ return any(os.path.splitext(it)[1] == '.h' for it in self.target.outputs)
+
+class WriteBuildDateHeaderSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_arg_at(0, '$(out)')
+ super()._sanitize_args()
+
+class WriteBuildFlagHeaderSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('--gen-dir', '.')
+ self._set_value_arg('--output', '$(out)')
+ super()._sanitize_args()
+
+class JniGeneratorSanitizer(BaseActionSanitizer):
+ def _add_location_tag_to_filepath(self, arg):
+ if not arg.endswith('.class'):
+ # --input_file supports both .class specifiers or source files as arguments.
+ # Only source files need to be wrapped inside a $(location <label>) tag.
+ arg = self._add_location_tag(arg)
+ return arg
+
+ def _sanitize_args(self):
+ self._update_value_arg('--jar_file', self._sanitize_filepath, False)
+ self._update_value_arg('--jar_file', self._add_location_tag, False)
+ if self._has_arg('--jar_file'):
+ self._append_arg('--javap', '$$(find out/.path -name javap)')
+ self._update_value_arg('--output_dir', self._sanitize_filepath)
+ self._update_value_arg('--includes', self._sanitize_filepath, False)
+ self._delete_value_arg('--prev_output_dir', False)
+ self._update_list_arg('--input_file', self._sanitize_filepath)
+ self._update_list_arg('--input_file', self._add_location_tag_to_filepath)
+ super()._sanitize_args()
+
+ def _sanitize_outputs(self):
+ # fix target.output directory to match #include statements.
+ self.target.outputs = {re.sub('^jni_headers/', '', out) for out in self.target.outputs}
+ super()._sanitize_outputs()
+
+ def get_tool_files(self):
+ tool_files = super().get_tool_files()
+ # android_jar.classes should be part of the tools as it list implicit classes
+ # for the script to generate JNI headers.
+ tool_files.add("base/android/jni_generator/android_jar.classes")
+ return tool_files
+
+class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
+ def _sanitize_inputs(self):
+ self.target.inputs = [file for file in self.target.inputs if not file.startswith('//out/')]
+
+ def _sanitize_args(self):
+ self._update_value_arg('--depfile', self._sanitize_filepath)
+ self._update_value_arg('--srcjar-path', self._sanitize_filepath)
+ self._update_value_arg('--header-path', self._sanitize_filepath)
+ self._set_value_arg('--sources-files', '$(genDir)/java.sources')
+ # update_jni_registration_module removes them from the srcs of the module
+ # It might be better to remove sources by '--sources-exclusions'
+ self._delete_value_arg('--sources-exclusions')
+ super()._sanitize_args()
+
+ def get_cmd(self):
+ # jni_registration_generator.py doesn't work with python2
+ cmd = "python3 " + super().get_cmd()
+ # Path in the original sources file does not work in genrule.
+ # So creating sources file in cmd based on the srcs of this target.
+ # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
+ # whose path startswith(..)
+ commands = ["current_dir=`basename \\\`pwd\\\``;",
+ "for f in $(in);",
+ "do",
+ "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
+ "done;",
+ cmd]
+
+ # .h file jni_registration_generator.py generates has #define with directory name.
+ # With the genrule env that contains "." which is invalid. So replace that at the end of cmd.
+ commands.append(";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' ")
+ commands.append("$(genDir)/components/cronet/android/cronet_jni_registration.h")
+ return NEWLINE.join(commands)
+
+class JavaJniRegistrationGeneratorSanitizer(JniRegistrationGeneratorSanitizer):
+ def get_name(self):
+ return label_to_module_name(self.target.name) + "__java"
+
+ def _sanitize_outputs(self):
+ self.target.outputs = [out for out in self.target.outputs if
+ out.endswith(".srcjar")]
+ super()._sanitize_outputs()
+
+class VersionSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('-o', '$(out)')
+ # args for the version.py contain file path without leading --arg key. So apply sanitize
+ # function for all the args.
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('-e', "'%s'" % self._get_value_arg('-e'))
+ super()._sanitize_args()
+
+ def get_tool_files(self):
+ tool_files = super().get_tool_files()
+ # android_chrome_version.py is not specified in anywhere but version.py imports this file
+ tool_files.add('build/util/android_chrome_version.py')
+ return tool_files
+
+class JavaCppEnumSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class MakeDafsaSanitizer(BaseActionSanitizer):
+ def is_header_generated(self):
+ # This script generates .cc files but they are #included by other sources
+ # (e.g. registry_controlled_domain.cc)
+ return True
+
+class JavaCppFeatureSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class JavaCppStringSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class WriteNativeLibrariesJavaSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('--output', '$(out)')
+ super()._sanitize_args()
+
+def get_action_sanitizer(target, type):
+ if target.script == "//build/write_buildflag_header.py":
+ return WriteBuildFlagHeaderSanitizer(target)
+ elif target.script == "//build/write_build_date_header.py":
+ return WriteBuildDateHeaderSanitizer(target)
+ elif target.script == '//base/android/jni_generator/jni_generator.py':
+ return JniGeneratorSanitizer(target)
+ elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
+ if type == 'java_genrule':
+ return JavaJniRegistrationGeneratorSanitizer(target)
+ else:
+ return JniRegistrationGeneratorSanitizer(target)
+ elif target.script == "//build/util/version.py":
+ return VersionSanitizer(target)
+ elif target.script == "//build/android/gyp/java_cpp_enum.py":
+ return JavaCppEnumSanitizer(target)
+ elif target.script == "//net/tools/dafsa/make_dafsa.py":
+ return MakeDafsaSanitizer(target)
+ elif target.script == '//build/android/gyp/java_cpp_features.py':
+ return JavaCppFeatureSanitizer(target)
+ elif target.script == '//build/android/gyp/java_cpp_strings.py':
+ return JavaCppStringSanitizer(target)
+ elif target.script == '//build/android/gyp/write_native_libraries_java.py':
+ return WriteNativeLibrariesJavaSanitizer(target)
+ else:
+ # TODO: throw exception here once all script hacks have been converted.
+ return BaseActionSanitizer(target)
+
def create_action_foreach_modules(blueprint, target):
""" The following assumes that rebase_path exists in the args.
The args of an action_foreach contains hints about which output files are generated
@@ -622,166 +977,19 @@
new_args.append(arg)
target.args = new_args
- return create_action_module(blueprint, target)
+ return create_action_module(blueprint, target, 'cc_genrule')
-def create_action_module(blueprint, target):
- bp_module_name = label_to_module_name(target.name)
- module = Module('genrule', bp_module_name, target.name)
+def create_action_module(blueprint, target, type):
+ sanitizer = get_action_sanitizer(target, type)
+ sanitizer.sanitize()
- # Convert ['--param=value'] to ['--param', 'value'] for consistency.
- # TODO: we may want to only do this for python scripts arguments. If argparse
- # is used, this transformation is safe.
- target.args = [str for it in target.args for str in it.split('=')]
-
- if target.script == "//build/write_buildflag_header.py":
- # write_buildflag_header.py writes result to args.genDir/args.output
- # So, override args.genDir by '.' so that args.output=$(out) works
- for i, val in enumerate(target.args):
- if val == '--gen-dir':
- target.args[i + 1] = '.'
- elif val == '--output':
- target.args[i + 1] = '$(out)'
-
- elif target.script == '//build/write_build_date_header.py':
- target.args[0] = '$(out)'
-
- elif target.script == '//base/android/jni_generator/jni_generator.py':
- needs_javap = False
- for i, val in enumerate(target.args):
- if val == '--output_dir':
- # replace --output_dir gen/jni_headers/... with --output_dir $(genDir)/...
- target.args[i + 1] = re.sub('^gen/jni_headers', '$(genDir)', target.args[i + 1])
- elif val == '--input_file':
- # --input_file supports both .class specifiers or source files as arguments.
- # Only source files need to be wrapped inside a $(location <label>) tag.
- if re.match('.*\.class$', target.args[i + 1]):
- continue
- # replace --input_file ../../... with --input_file $(location ...)
- # TODO: put inside function
- filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
- target.args[i + 1] = '$(location %s)' % filename
- elif val == '--includes' and 'jni_generator_helper' in target.args[i + 1]:
- # delete all leading ../
- target.args[i + 1] = re.sub('^(\.\./)+', '', target.args[i + 1])
- elif val == '--prev_output_dir':
- # this is not needed for aosp builds.
- target.args[i] = ''
- target.args[i + 1] = ''
- elif val == '--jar_file':
- # delete leading ../../ and add path to javap
- filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
- target.args[i + 1] = '$(location %s)' % filename
- needs_javap = True
-
- if needs_javap:
- target.args.append('--javap')
- target.args.append('$$(find out/.path -name javap)')
- # fix target.output directory to match #include statements.
- target.outputs = [re.sub('^jni_headers/', '', out) for out in target.outputs]
-
- elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
- # jni_registration_generator.py pulls in some config dependencies that we
- # do not handle. Remove them.
- # TODO: find a better way to do this.
- target.deps.clear()
-
- target.inputs = [file for file in target.inputs if not file.startswith('//out/')]
- for i, val in enumerate(target.args):
- if val in ['--depfile', '--srcjar-path', '--header-path']:
- target.args[i + 1] = re.sub('^gen', '$(genDir)', target.args[i + 1])
- if val == '--sources-files':
- target.args[i + 1] = '$(genDir)/java.sources'
- elif val == '--sources-exclusions':
- # update_jni_registration_module removes them from the srcs of the module
- # It might be better to remove sources by '--sources-exclusions'
- target.args[i] = ''
- target.args[i + 1] = ''
- elif target.script == "//net/tools/dafsa/make_dafsa.py":
- # This script generates .cc files but source (registry_controlled_domain.cc) in the target that
- # depends on this target includes .cc file this script generates.
+ module = Module(type, sanitizer.get_name(), target.name)
+ module.cmd = sanitizer.get_cmd()
+ module.out = sanitizer.get_outputs()
+ if sanitizer.is_header_generated():
module.genrule_headers.add(module.name)
- elif target.script == "//build/util/version.py":
- # android_chrome_version.py is not specified in anywhere but version.py imports this file
- module.tool_files.add('build/util/android_chrome_version.py')
- for i, val in enumerate(target.args):
- if val.startswith('../../'):
- filename = re.sub('^\.\./\.\./', '', val)
- target.args[i] = '$(location %s)' % filename
- elif val == '-e':
- # arg for -e EVAL option should be passed in -e PATCH_HI=int(PATCH)//256 format.
- target.args[i + 1] = '%s=\'%s\'' % (target.args[i + 1], target.args[i + 2])
- target.args[i + 2] = ''
- elif val == '-o':
- target.args[i + 1] = '$(out)'
-
- script = gn_utils.label_to_path(target.script)
- module.tool_files.add(script)
-
- # Handle passing parameters via response file by piping them into the script
- # and reading them from /dev/stdin.
- response_file = '{{response_file_name}}'
- use_response_file = response_file in target.args
- if use_response_file:
- # Replace {{response_file_contents}} with /dev/stdin
- target.args = ['/dev/stdin' if it == response_file else it for it in target.args]
-
- # escape " and \$ in target.args.
- # once all actions are properly implemented, this may not be necessary anymore.
- # TODO: is this the right place to do this?
- target.args = [arg.replace('"', r'\"') for arg in target.args]
- target.args = [arg.replace(r'\$', r'\\$') for arg in target.args]
-
- # put all args on a new line for better diffs.
- NEWLINE = ' " +\n "'
- arg_string = NEWLINE.join(target.args)
- module.cmd = '$(location %s) %s' % (script, arg_string)
-
- if use_response_file:
- # Pipe response file contents into script
- module.cmd = 'echo \'%s\' |%s%s' % (target.response_file_contents, NEWLINE, module.cmd)
-
- if any(os.path.splitext(it)[1] == '.h' for it in target.outputs):
- module.genrule_headers.add(bp_module_name)
-
- # gn treats inputs and sources for actions equally.
- # soong only supports source files inside srcs, non-source files are added as
- # tool_files dependency.
- for it in target.sources or target.inputs:
- if is_supported_source_file(it):
- module.srcs.add(gn_utils.label_to_path(it))
- else:
- module.tool_files.add(gn_utils.label_to_path(it))
-
- # Actions using template "action_with_pydeps" also put script inside inputs.
- # TODO: it might make sense to filter inputs inside GnParser.
- if script in module.srcs:
- module.srcs.remove(script)
-
- module.out.update(target.outputs)
-
- if target.script == "//base/android/jni_generator/jni_generator.py":
- # android_jar.classes should be part of the tools as it list implicit classes
- # for the script to generate JNI headers.
- module.tool_files.add("base/android/jni_generator/android_jar.classes")
- elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
- # jni_registration_generator.py doesn't work with python2
- module.cmd = "python3 " + module.cmd
- # Path in the original sources file does not work in genrule.
- # So creating sources file in cmd based on the srcs of this target.
- # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
- # whose path startswith(..)
- commands = ["current_dir=`basename \\\`pwd\\\``;",
- "for f in $(in);",
- "do",
- "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
- "done;",
- module.cmd]
-
- # .h file jni_registration_generator.py generates has #define with directory name.
- # With the genrule env that contains "." which is invalid. So replace that at the end of cmd.
- commands.append(";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' ")
- commands.append("$(genDir)/components/cronet/android/cronet_jni_registration.h")
- module.cmd = NEWLINE.join(commands)
+ module.srcs = sanitizer.get_srcs()
+ module.tool_files = sanitizer.get_tool_files()
blueprint.add_module(module)
return module
@@ -826,7 +1034,6 @@
for d in include_dirs
if not re.match('^//out/.*', d)])
-
def create_modules_from_target(blueprint, gn, gn_target_name):
"""Generate module(s) for a given GN target.
@@ -866,7 +1073,7 @@
if module is None:
return None
elif target.type == 'action':
- module = create_action_module(blueprint, target)
+ module = create_action_module(blueprint, target, 'cc_genrule')
elif target.type == 'action_foreach':
module = create_action_foreach_modules(blueprint, target)
elif target.type == 'copy':
@@ -903,12 +1110,21 @@
# TODO: set_module_xxx is confusing, apply similar function to module and target in better way.
for arch_name, arch in target.arch.items():
set_module_flags(module.target[arch_name], arch.cflags, arch.defines)
+ # -Xclang -target-feature -Xclang +mte are used to enable MTE (Memory Tagging Extensions).
+ # Flags which does not start with '-' could not be in the cflags so enabling MTE by
+ # -march and -mcpu Feature Modifiers. MTE is only available on arm64. This is needed for
+ # building //base/allocator/partition_allocator:partition_alloc for arm64.
+ if '+mte' in arch.cflags and arch_name == 'android_arm64':
+ module.target[arch_name].cflags.add('-march=armv8-a+memtag')
set_module_include_dirs(module.target[arch_name], arch.cflags, arch.include_dirs)
- if module.is_compiled():
- module.host_supported = target.host_supported()
- module.device_supported = target.device_supported()
+ module.host_supported = target.host_supported()
+ module.device_supported = target.device_supported()
+ if module.is_genrule():
+ module.apex_available.add(tethering_apex)
+
+ if module.is_compiled():
# Don't try to inject library/source dependencies into genrules or
# filegroups because they are not compiled in the traditional sense.
module.defaults = [defaults_module]
@@ -927,6 +1143,17 @@
module.local_include_dirs = [d for d in module.local_include_dirs
if d not in local_include_dirs_denylist]
+ # If the module is a static library, export all the generated headers.
+ if module.type == 'cc_library_static':
+ module.export_generated_headers = module.generated_headers
+
+ if module.name == 'cronet_aml_components_cronet_android_cronet':
+ if target.output_name is None:
+ raise Error('Failed to get output_name for libcronet name')
+ # .so file name needs to match with CronetLibraryLoader.java (e.g. libcronet.109.0.5386.0.so)
+ # So setting the output name based on the output_name from the desc.json
+ module.stem = 'lib' + target.output_name
+
# dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
# Currently, only one module is generated from target even target has multiple toolchains.
# And module is generated based on the first visited target.
@@ -951,36 +1178,36 @@
# Following rule works for adding android_runtime_jni_headers to base:base.
# If this doesn't work for other target, hardcoding for specific target
# might be better.
- if module.type == "genrule" and dep_module.type == "genrule":
- module.genrule_headers.add(dep_module.name)
- module.genrule_headers.update(dep_module.genrule_headers)
+ if module.is_genrule() and dep_module.is_genrule():
+ module.genrule_headers.add(dep_module.name)
+ module.genrule_headers.update(dep_module.genrule_headers)
# For filegroups, and genrule, recurse but don't apply the
# deps.
- if not module.is_compiled():
+ if not module.is_compiled() or module.is_genrule():
continue
+
if dep_module.type == 'cc_library_shared':
module.shared_libs.add(dep_module.name)
elif dep_module.type == 'cc_library_static':
module.static_libs.add(dep_module.name)
elif dep_module.type == 'cc_object':
- module.merge_key('generated_headers', dep_module, target.arch.keys())
+ module.merge_attribute('generated_headers', dep_module, target.arch.keys())
if module.type != 'cc_object':
if dep_module.has_input_files():
# Only add it as part of srcs if the dep_module has input files otherwise
# this would throw an error.
module.srcs.add(":" + dep_module.name)
- module.merge_key('export_generated_headers', dep_module,
+ module.merge_attribute('export_generated_headers', dep_module,
target.arch.keys(), 'generated_headers')
- elif dep_module.type == 'genrule':
- for arch_name, arch in target.arch.items():
- if dep_module.name.endswith(arch_name):
- add_genrule_per_arch(module.target[arch_name], dep_module, module.type)
- if dep_module.name.endswith("_gen"):
- module.srcs.update(dep_module.genrule_srcs)
- module.generated_headers.update(dep_module.genrule_headers)
- if module.type != "cc_object":
- module.export_generated_headers.update(dep_module.genrule_headers)
+ elif dep_module.type == 'cc_genrule':
+ module.merge_attribute('generated_headers', dep_module, [], 'genrule_headers')
+ module.merge_attribute('srcs', dep_module, [], 'genrule_srcs')
+ module.merge_attribute('shared_libs', dep_module, [], 'genrule_shared_libs')
+ module.merge_attribute('header_libs', dep_module, [], 'genrule_header_libs')
+ if module.type not in ["cc_object"]:
+ module.merge_attribute('export_generated_headers', dep_module, [],
+ 'genrule_headers')
elif dep_module.type == 'cc_binary':
continue # Ignore executables deps (used by cmdline integration tests).
else:
@@ -994,6 +1221,15 @@
# Revisit this approach once we need to support more target types.
if dep_module.type == 'cc_library_static':
module.target[arch_name].static_libs.add(dep_module.name)
+ elif dep_module.type == 'cc_genrule':
+ if dep_module.name.endswith(arch_name):
+ module.target[arch_name].generated_headers.update(dep_module.genrule_headers)
+ module.target[arch_name].srcs.update(dep_module.genrule_srcs)
+ module.target[arch_name].shared_libs.update(dep_module.genrule_shared_libs)
+ module.target[arch_name].header_libs.update(dep_module.genrule_header_libs)
+ if module.type not in ["cc_object"]:
+ module.target[arch_name].export_generated_headers.update(
+ dep_module.genrule_headers)
else:
raise Error('Unsupported arch-specific dependency %s of target %s with type %s' %
(dep_module.name, target.name, dep_module.type))
@@ -1016,6 +1252,8 @@
bp_module_name = module_prefix + 'java'
module = Module('java_library', bp_module_name, '//gn:java')
module.srcs.update([gn_utils.label_to_path(source) for source in gn.java_sources])
+ for dep in gn.java_actions:
+ dep_module = create_action_module(blueprint, gn.get_target(dep), 'java_genrule')
blueprint.add_module(module)
def update_jni_registration_module(module, gn):
@@ -1028,7 +1266,8 @@
# TODO: java_sources might not contain all the required java files
module.srcs.update([gn_utils.label_to_path(source)
- for source in gn.java_sources if source not in deny_list])
+ for source in gn.java_sources
+ if source.endswith('.java') and source not in deny_list])
def create_blueprint_for_targets(gn, targets):
"""Generate a blueprint for a list of GN targets."""
@@ -1068,6 +1307,8 @@
'-UANDROID',
]
defaults.stl = 'none'
+ defaults.min_sdk_version = 29
+ defaults.apex_available.add(tethering_apex)
blueprint.add_module(defaults)
for target in targets:
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 6d2bf17..130f8ff 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -30,7 +30,20 @@
BUILDFLAGS_TARGET = '//gn:gen_buildflags'
GEN_VERSION_TARGET = '//src/base:version_gen_h'
LINKER_UNIT_TYPES = ('executable', 'shared_library', 'static_library', 'source_set')
-
+JAVA_BANNED_SCRIPTS = [
+ "//build/android/gyp/turbine.py",
+ "//build/android/gyp/compile_java.py",
+ "//build/android/gyp/filter_zip.py",
+ "//build/android/gyp/dex.py",
+ "//build/android/gyp/write_build_config.py",
+ "//build/android/gyp/create_r_java.py",
+ "//build/android/gyp/ijar.py",
+ "//build/android/gyp/create_r_java.py",
+ "//build/android/gyp/bytecode_processor.py",
+ "//build/android/gyp/prepare_resources.py",
+ "//build/android/gyp/aar.py",
+ "//build/android/gyp/zip.py",
+]
# TODO(primiano): investigate these, they require further componentization.
ODR_VIOLATION_IGNORE_TARGETS = {
'//test/cts:perfetto_cts_deps',
@@ -39,6 +52,8 @@
ARCH_REGEX = r'(android_x86_64|android_x86|android_arm|android_arm64|host)'
DEX_REGEX = '.*__dex__%s$' % ARCH_REGEX
COMPILE_JAVA_REGEX = '.*__compile_java__%s$' % ARCH_REGEX
+RESPONSE_FILE = '{{response_file_name}}'
+
def repo_root():
"""Returns an absolute path to the repository root."""
return os.path.join(
@@ -72,6 +87,11 @@
def _is_java_source(src):
return os.path.splitext(src)[1] == '.java' and not src.startswith("//out/test/gen/")
+def is_java_action(script, outputs):
+ return (script != "" and script not in JAVA_BANNED_SCRIPTS) and any(
+ [file.endswith(".srcjar") or file.endswith(".java")
+ for file in outputs])
+
class GnParser(object):
"""A parser with some cleverness for GN json desc files
@@ -155,6 +175,9 @@
self.is_finalized = False
self.arch = dict()
+ # This is used to get the name/version of libcronet
+ self.output_name = None
+
def host_supported(self):
return 'host' in self.arch
@@ -220,6 +243,7 @@
self.actions = {}
self.proto_libs = {}
self.java_sources = set()
+ self.java_actions = set()
def _get_response_file_contents(self, action_desc):
# response_file_contents are formatted as:
@@ -282,7 +306,9 @@
# genrule's do not allow to overload cmd per target OS / arch. Create a
# separate action for every architecture.
# Cover both action and action_foreach
- if type_.startswith('action'):
+ if type_.startswith('action') and \
+ not is_java_action(desc.get("script", ""), desc.get("outputs", [])):
+ # Don't meddle with the java actions name
target_name += '__' + arch
target = self.all_targets.get(target_name)
@@ -316,6 +342,14 @@
elif target.type in LINKER_UNIT_TYPES:
self.linker_units[gn_target_name] = target
target.arch[arch].sources.update(desc.get('sources', []))
+ elif desc.get("script", "") in JAVA_BANNED_SCRIPTS or self._is_java_target(target):
+ # java_group identifies the group target generated by the android_library
+ # or java_library template. A java_group must not be added as a dependency, but sources are collected
+ log.debug('Found java target %s', target.name)
+ if target.type == "action":
+ # Convert java actions into java_group and keep the inputs for collection.
+ target.inputs.update(desc.get('inputs', []))
+ target.type = 'java_group'
elif target.type in ['action', 'action_foreach']:
self.actions[gn_target_name] = target
target.inputs.update(desc.get('inputs', []))
@@ -328,11 +362,6 @@
elif target.type == 'copy':
# TODO: copy rules are not currently implemented.
self.actions[gn_target_name] = target
- elif self._is_java_target(target):
- # java_group identifies the group target generated by the android_library
- # or java_library template. A java_group must not be added as a dependency, but sources are collected
- log.debug('Found java target %s', target.name)
- target.type = 'java_group'
# Default for 'public' is //* - all headers in 'sources' are public.
# TODO(primiano): if a 'public' section is specified (even if empty), then
@@ -347,6 +376,7 @@
target.ldflags.update(desc.get('ldflags', []))
target.arch[arch].defines.update(desc.get('defines', []))
target.arch[arch].include_dirs.update(desc.get('include_dirs', []))
+ target.output_name = desc.get('output_name', None)
if "-frtti" in target.arch[arch].cflags:
target.rtti = True
@@ -365,14 +395,13 @@
target.update(dep, arch) # Bubble up groups's cflags/ldflags etc.
elif dep.type in ['action', 'action_foreach', 'copy']:
if proto_target_type is None:
- target.deps.add(dep.name)
+ target.arch[arch].deps.add(dep.name)
elif dep.type in LINKER_UNIT_TYPES:
target.arch[arch].deps.add(dep.name)
elif dep.type == 'java_group':
# Explicitly break dependency chain when a java_group is added.
# Java sources are collected and eventually compiled as one large
# java_library.
- #print(dep.name, target.deps)
pass
# Source set bubble up transitive source sets but can't be combined with this
@@ -399,8 +428,14 @@
log.debug('Adding java sources for %s', dep.name)
java_srcs = [src for src in dep.inputs if _is_java_source(src)]
self.java_sources.update(java_srcs)
- #if target.name == "//build/config:executable_deps":
- #print(target.name, arch, target.arch[arch].source_set_deps)
+ if dep.type in ["action"] and target.type == "java_group":
+ # //base:base_java_aidl generates srcjar from .aidl files. But java_library in soong can
+ # directly have .aidl files in srcs. So adding .aidl files to the java_sources.
+ # TODO: Find a better way/place to do this.
+ if dep.name == '//base:base_java_aidl':
+ self.java_sources.update(dep.arch[arch].sources)
+ else:
+ self.java_actions.add(dep.name)
return target
def get_proto_exports(self, proto_desc):
diff --git a/tools/gn2bp/update_results.sh b/tools/gn2bp/update_results.sh
index e86ecda..a464604 100755
--- a/tools/gn2bp/update_results.sh
+++ b/tools/gn2bp/update_results.sh
@@ -12,4 +12,5 @@
set -eux
BASEDIR=$(dirname "$0")
-$BASEDIR/gen_android_bp --desc $BASEDIR/desc_x64.json --desc $BASEDIR/desc_x86.json --out $BASEDIR/Android.bp
+$BASEDIR/gen_android_bp --desc $BASEDIR/desc_x64.json --desc $BASEDIR/desc_x86.json \
+--desc $BASEDIR/desc_arm.json --desc $BASEDIR/desc_arm64.json --out $BASEDIR/Android.bp