All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.android.build.gradle.ndk.internal.NdkExtensionConvention Maven / Gradle / Ivy

There is a newer version: 0.9.0
Show newest version
package com.android.build.gradle.ndk.internal;

import com.android.build.gradle.internal.core.Toolchain;
import com.android.build.gradle.managed.NdkConfig;
import com.google.common.primitives.Ints;

import org.gradle.api.InvalidUserDataException;

/**
 * Action to setup default values for NdkExtension.
 */
public class NdkExtensionConvention {

    public static final String DEFAULT_STL = "system";

    /**
     * Validate the NdkExtension and provide default values.
     */
    public static void setExtensionDefault(NdkConfig ndkConfig) {
        if (ndkConfig.getToolchain().isEmpty()) {
            ndkConfig.setToolchain(Toolchain.getDefault().getName());
        } else {
            if (!ndkConfig.getToolchain().equals("gcc") &&
                    !ndkConfig.getToolchain().equals("clang")) {
                throw new InvalidUserDataException(String.format(
                        "Invalid toolchain '%s'.  Supported toolchains are 'gcc' and 'clang'.",
                        ndkConfig.getToolchain()));
            }
        }

        if (ndkConfig.getStl().isEmpty()) {
            ndkConfig.setStl(DEFAULT_STL);
        } else {
            StlConfiguration.checkStl(ndkConfig.getStl());
        }

        if (ndkConfig.getPlatformVersion() != null
                && !ndkConfig.getPlatformVersion().startsWith("android-")
                && Ints.tryParse(ndkConfig.getPlatformVersion()) != null) {
            ndkConfig.setPlatformVersion("android-" + ndkConfig.getPlatformVersion());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy