blob: cf78c9ffdef1696551f6f5899ff39107e5da787a [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright 2024 - The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the', help="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', help="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.
from __future__ import absolute_import, division, print_function
import argparse
import os
from pathlib import Path
import platform
import shutil
from environment import get_default_environment
from utils import (
AOSP_ROOT,
cmake_toolchain,
config_logging,
log_system_info,
run,
)
def main():
config_logging()
log_system_info()
parser = argparse.ArgumentParser(
description=(
"Configures the android netsim cmake project so it can be build"
)
)
parser.add_argument(
"--out_dir",
type=str,
default=Path("objs").absolute(),
help="The output directory",
)
parser.add_argument(
"--target",
type=str,
default=platform.system(),
help="The build target, defaults to current os",
)
parser.add_argument(
"--enable_system_rust",
action="store_true",
help="Build the netsim with the System Rust on the host machine",
)
parser.add_argument(
"--with_debug", action="store_true", help="Build debug instead of release"
)
args = parser.parse_args()
os.environ["GIT_DISCOVERY_ACROSS_FILESYSTEM"] = "1"
os.environ["CMAKE_EXPORT_COMPILE_COMMANDS"] = "1"
target = platform.system().lower()
if args.target:
target = args.target.lower()
if not os.path.isabs(args.out_dir):
args.out_dir = os.path.join(AOSP_ROOT, args.out_dir)
out = Path(args.out_dir)
if out.exists():
shutil.rmtree(out)
out.mkdir(exist_ok=True, parents=True)
cmake = shutil.which(
"cmake",
path=str(
AOSP_ROOT
/ "prebuilts"
/ "cmake"
/ f"{platform.system().lower()}-x86"
/ "bin"
),
)
launcher = [
cmake,
f"-B{out}",
"-G Ninja",
f"-DCMAKE_TOOLCHAIN_FILE={cmake_toolchain(target)}",
AOSP_ROOT / "tools" / "netsim",
]
# Configure
run(launcher, get_default_environment(AOSP_ROOT), "bld")
if __name__ == "__main__":
main()