Update configuration for new sdk tooling

Change-Id: Id5ed05e972f192fce00f8a89a646b387a5d40a77
Reviewed-on: https://fuchsia-review.googlesource.com/c/template/driver/+/967488
Reviewed-by: Jerry Belton <jcecil@google.com>
diff --git a/.gitignore b/.gitignore
index 134dccc..037f64d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,8 @@
 
 # Tools
 tools/bazel
+
+# Files related to ffx
+.build-dir
+.fuchsia/
+.fuchsia-build-config.json
diff --git a/fuchsia_env.toml b/fuchsia_env.toml
index f85483e..96800b5 100644
--- a/fuchsia_env.toml
+++ b/fuchsia_env.toml
@@ -1,4 +1,8 @@
-[fuchsia.config]
-build_out_dir = "bazel-out"
+[fuchsia.project]
+build_out_dir = { path_ref = ".build-dir" }
 build_config_path = ".fuchsia-build-config.json"
+bootstrap_command = ["scripts/setup-config.sh"]
 
+[fuchsia.sdk]
+version_check_files = ["manifests/bazel_sdk.ensure"]
+version_check_command = ["tools/bazel", "build", "@fuchsia_sdk//:fuchsia_toolchain_sdk"]
diff --git a/manifests/bazel_sdk.ensure b/manifests/bazel_sdk.ensure
index 7a7cb18..8eb89bc 100644
--- a/manifests/bazel_sdk.ensure
+++ b/manifests/bazel_sdk.ensure
@@ -1,4 +1,4 @@
 $ResolvedVersions bazel_sdk.resolved
 $VerifiedPlatform linux-amd64 mac-amd64
-fuchsia/sdk/core/fuchsia-bazel-rules/${os=linux}-${arch} version:14.20230825.3.1
-fuchsia/sdk/core/fuchsia-bazel-rules/${os=mac}-amd64 version:14.20230825.3.1
+fuchsia/sdk/core/fuchsia-bazel-rules/${os=linux}-${arch} version:17.20240102.2.1
+fuchsia/sdk/core/fuchsia-bazel-rules/${os=mac}-amd64 version:17.20240102.2.1
diff --git a/manifests/bazel_sdk.resolved b/manifests/bazel_sdk.resolved
index c1ae053..ed5c2da 100644
--- a/manifests/bazel_sdk.resolved
+++ b/manifests/bazel_sdk.resolved
@@ -2,9 +2,9 @@
 # Do not modify manually. All changes will be overwritten.
 
 fuchsia/sdk/core/fuchsia-bazel-rules/linux-amd64
-	version:14.20230825.3.1
-	-8e0YUn0dXZzKSPmEJLVtzk2lijh1zC9A1kny0WwWEsC
+	version:17.20240102.2.1
+	GfmWB29BKhKDbfepo1VLNvRE8yZPzK7hrDpA7o0VU3gC
 
 fuchsia/sdk/core/fuchsia-bazel-rules/mac-amd64
-	version:14.20230825.3.1
-	d16iCfvEDT919buOe054wlxk0gATLK_GescQCMhrlaEC
+	version:17.20240102.2.1
+	lnHTCn8DwoL7iBY2YKcnWHAhIOpP_TXK_mgFc0RHhD8C
diff --git a/manifests/clang.ensure b/manifests/clang.ensure
index 7948d5c..d60ff44 100644
--- a/manifests/clang.ensure
+++ b/manifests/clang.ensure
@@ -1,4 +1,4 @@
 $ResolvedVersions clang.resolved
 $VerifiedPlatform linux-amd64 linux-arm64 mac-amd64 windows-amd64
-fuchsia/third_party/clang/${os=linux}-${arch} git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
-fuchsia/third_party/clang/${os=mac,windows}-amd64 git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
+fuchsia/third_party/clang/${os=linux}-${arch} git_revision:725656bdd885483c39f482a01ea25d67acf39c46
+fuchsia/third_party/clang/${os=mac,windows}-amd64 git_revision:725656bdd885483c39f482a01ea25d67acf39c46
diff --git a/manifests/clang.resolved b/manifests/clang.resolved
index ebc04ab..7865452 100644
--- a/manifests/clang.resolved
+++ b/manifests/clang.resolved
@@ -2,17 +2,17 @@
 # Do not modify manually. All changes will be overwritten.
 
 fuchsia/third_party/clang/linux-amd64
-	git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
-	8GgFsbo_UN7dwHkm4deOaZOCzhjeFnRNWYvGejpK0csC
+	git_revision:725656bdd885483c39f482a01ea25d67acf39c46
+	0W11iNLWzzp3mqEU00vxEjMJEjtSHkHf1l8UW0oRfV4C
 
 fuchsia/third_party/clang/linux-arm64
-	git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
-	magCqaEyxKWsVF5NWlWMbANN4kbU3MjrkGOrjSlx_k8C
+	git_revision:725656bdd885483c39f482a01ea25d67acf39c46
+	ZQVk89WDsH1KP9UmcowfFHKs-FHwINE-eBf8L2XbhdUC
 
 fuchsia/third_party/clang/mac-amd64
-	git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
-	cQg24HbE0o9RkNuSKF1Gq4kuvYodtnGCxXnJwFy3bXsC
+	git_revision:725656bdd885483c39f482a01ea25d67acf39c46
+	1WG1GpdWj8_mOY7AcHzYLQEX8mTva5W1iDydAZ5_6W8C
 
 fuchsia/third_party/clang/windows-amd64
-	git_revision:020d2fb7711d70e296f19d83565f8d93d2cfda71
-	4TSVd8X2QqiDuOMJ3lnrlsnum-I5QfAPraVYGKMlNZ8C
+	git_revision:725656bdd885483c39f482a01ea25d67acf39c46
+	tCjuhEjTRlEq95r5YDgu5d1wjqO6imRop8ayQRCXbE8C
diff --git a/scripts/setup-config.sh b/scripts/setup-config.sh
new file mode 100755
index 0000000..3b47d3a
--- /dev/null
+++ b/scripts/setup-config.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Copyright 2024 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+set -e
+
+REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/..
+readonly REPO_ROOT="${REPO_ROOT}"
+
+# Runs our bootstrap script to ensure we have bazel
+run_bootstrap() {
+  "${REPO_ROOT}/scripts/bootstrap.sh"
+}
+
+# Make sure we have a build config file at the root of out repo.
+ensure_build_config_file() {
+  cd "${REPO_ROOT}"
+
+  # Write out the build directory to be used by our config
+  tools/bazel info output_base > .build-dir
+
+  # Write out our build config entry.
+  tools/bazel run \
+    --run_under="cd $PWD && " \
+    --ui_event_filters=-info,-error,-debug,-stderr,-stdout \
+    @fuchsia_sdk//fuchsia/tools:ensure_build_config -- \
+      --config-file ".fuchsia-build-config.json"
+}
+
+main() {
+  run_bootstrap
+  ensure_build_config_file
+}
+
+main "$@"