platform_build_soong/android/env.go
Lukacs T. Berki f0b3b94bb3 Make GENERATE_BAZEL_FILES=true correct.
This is achieved by writing soong.environment.used in Main() instead of
as a side effect of a singleton. This makes a difference because build
actions are not generated when GENERATE_BAZEL_FILES=true is set,
therefore the side effect did not happen.

Arguably, Main() is made worse by this change, but I don't want to
tackle the problem of readably determining which mode soong_build is
running in in this change.

Test: Presubmits + the additional test.
Change-Id: I66af2429aedf008762173eaaa55b828b4cf4328b
2021-03-23 15:18:22 +01:00

40 lines
1.4 KiB
Go

// 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 android
import (
"android/soong/shared"
)
// This file supports dependencies on environment variables. During build
// manifest generation, any dependency on an environment variable is added to a
// list. At the end of the build, a JSON file called soong.environment.used is
// written containing the current value of all used environment variables. The
// next time the top-level build script is run, soong_ui parses the compare the
// contents of the used environment variables, then, if they changed, deletes
// soong.environment.used to cause a rebuild.
//
// The dependency of build.ninja on soong.environment.used is declared in
// build.ninja.d
var originalEnv map[string]string
func InitEnvironment(envFile string) {
var err error
originalEnv, err = shared.EnvFromFile(envFile)
if err != nil {
panic(err)
}
}