// Copyright 2015 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "flag" "fmt" "os" "path/filepath" "github.com/google/blueprint" "github.com/google/blueprint/bootstrap" "android/soong/art" "android/soong/cc" "android/soong/common" "android/soong/genrule" "android/soong/java" ) func main() { flag.Parse() // The top-level Blueprints file is passed as the first argument. srcDir := filepath.Dir(flag.Arg(0)) ctx := blueprint.NewContext() // Module types ctx.RegisterModuleType("cc_library_static", cc.CCLibraryStaticFactory) ctx.RegisterModuleType("cc_library_shared", cc.CCLibrarySharedFactory) ctx.RegisterModuleType("cc_library", cc.CCLibraryFactory) ctx.RegisterModuleType("cc_object", cc.CCObjectFactory) ctx.RegisterModuleType("cc_binary", cc.CCBinaryFactory) ctx.RegisterModuleType("cc_test", cc.CCTestFactory) ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory) ctx.RegisterModuleType("ndk_prebuilt_library", cc.NdkPrebuiltLibraryFactory) ctx.RegisterModuleType("ndk_prebuilt_static_stl", cc.NdkPrebuiltStaticStlFactory) ctx.RegisterModuleType("ndk_prebuilt_shared_stl", cc.NdkPrebuiltSharedStlFactory) ctx.RegisterModuleType("cc_library_host_static", cc.CCLibraryHostStaticFactory) ctx.RegisterModuleType("cc_library_host_shared", cc.CCLibraryHostSharedFactory) ctx.RegisterModuleType("cc_binary_host", cc.CCBinaryHostFactory) ctx.RegisterModuleType("cc_test_host", cc.CCTestHostFactory) ctx.RegisterModuleType("gensrcs", genrule.GenSrcsFactory) ctx.RegisterModuleType("art_cc_library", art.ArtCCLibraryFactory) ctx.RegisterModuleType("art_cc_binary", art.ArtCCBinaryFactory) ctx.RegisterModuleType("java_library", java.JavaLibraryFactory) ctx.RegisterModuleType("java_library_static", java.JavaLibraryFactory) ctx.RegisterModuleType("java_library_host", java.JavaLibraryHostFactory) ctx.RegisterModuleType("java_binary", java.JavaBinaryFactory) ctx.RegisterModuleType("java_binary_host", java.JavaBinaryHostFactory) ctx.RegisterModuleType("prebuilt_java_library", java.JavaPrebuiltFactory) ctx.RegisterModuleType("prebuilt_sdk", java.SdkPrebuiltFactory) ctx.RegisterModuleType("android_app", java.AndroidAppFactory) // Mutators ctx.RegisterEarlyMutator("arch", common.ArchMutator) ctx.RegisterEarlyMutator("link", cc.LinkageMutator) ctx.RegisterEarlyMutator("test_per_src", cc.TestPerSrcMutator) // Singletons ctx.RegisterSingletonType("checkbuild", common.CheckbuildSingleton) ctx.RegisterSingletonType("env", common.EnvSingleton) ctx.RegisterSingletonType("logtags", java.LogtagsSingleton) configuration, err := common.NewConfig(srcDir) if err != nil { fmt.Fprintf(os.Stderr, "%s", err) os.Exit(1) } // Temporary hack //ctx.SetIgnoreUnknownModuleTypes(true) bootstrap.Main(ctx, configuration, common.ConfigFileName) }