sysroot.py: add support for non-darwin platforms

CMAKE_SYSROOT works fine here, and `sysroot.py make-fake`
borders on trivial here, but I suppose it's still nice
to have a consistent script to set these up across platforms.

And these are the platforms where we can do real sysroot management one
day.

Differential Revision: https://reviews.llvm.org/D96882
This commit is contained in:
Nico Weber 2021-02-17 13:48:10 -05:00
parent 14bda035ab
commit 6073f87d7f
2 changed files with 13 additions and 5 deletions

View File

@ -285,9 +285,14 @@ config("compiler_defaults") {
}
}
if (sysroot != "") {
assert(current_os == "win", "FIXME: Make sysroot work on non-win")
assert(is_clang, "sysroot only works with clang-cl as host compiler")
cflags += [ "/winsysroot" + rebase_path(sysroot, root_build_dir) ]
assert(current_os != "mac" && current_os != "ios",
"FIXME: Make sysroot work on darwin")
if (current_os == "win") {
assert(is_clang, "sysroot only works with clang-cl as host compiler")
cflags += [ "/winsysroot" + rebase_path(sysroot, root_build_dir) ]
} else {
cflags += [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
}
}
if (use_ubsan) {

View File

@ -35,13 +35,16 @@ def make_fake_sysroot(out_dir):
os.path.join(vsinstalldir, 'VC'))
os.mkdir(os.path.join(out_dir, 'Windows Kits'))
mkjunction(os.path.join(out_dir, 'Windows Kits', '10'), winsdk)
elif sys.platform == 'darwin':
assert False, "FIXME: Implement on darwin"
else:
assert False, "FIXME: Implement on non-win"
os.symlink('/', out_dir)
print('Done.')
abs_out_dir = os.path.abspath(out_dir)
if sys.platform == 'win32':
# CMake doesn't like backslashes in commandline args.
abs_out_dir = os.path.abspath(out_dir).replace(os.path.sep, '/')
abs_out_dir = abs_out_dir.replace(os.path.sep, '/')
print('Pass -DLLVM_WINSYSROOT=' + abs_out_dir + ' to cmake.')
else:
print('Pass -DCMAKE_SYSROOT=' + abs_out_dir + ' to cmake.')