================ @@ -0,0 +1,183 @@ +//===--- SYCL.cpp - SYCL Tool and ToolChain Implementations -----*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#include "SYCL.h" +#include "CommonArgs.h" +#include "llvm/Support/Path.h" + +using namespace clang::driver; +using namespace clang::driver::toolchains; +using namespace clang::driver::tools; +using namespace clang; +using namespace llvm::opt; + +SYCLInstallationDetector::SYCLInstallationDetector(const Driver &D) : D(D) { + InstallationCandidates.emplace_back(D.Dir + "/.."); +} + +void SYCLInstallationDetector::AddSYCLIncludeArgs( + const ArgList &DriverArgs, ArgStringList &CC1Args) const { + // Add the SYCL header search locations in the specified order. + // ../include/sycl/stl_wrappers + // ../include + SmallString<128> IncludePath(D.Dir); + llvm::sys::path::append(IncludePath, ".."); + llvm::sys::path::append(IncludePath, "include"); + // This is used to provide our wrappers around STL headers that provide + // additional functions/template specializations when the user includes those + // STL headers in their programs (e.g., <complex>). + SmallString<128> STLWrappersPath(IncludePath); + llvm::sys::path::append(STLWrappersPath, "sycl"); + llvm::sys::path::append(STLWrappersPath, "stl_wrappers"); + CC1Args.push_back("-internal-isystem"); + CC1Args.push_back(DriverArgs.MakeArgString(STLWrappersPath)); + CC1Args.push_back("-internal-isystem"); + CC1Args.push_back(DriverArgs.MakeArgString(IncludePath)); ---------------- mdtoguchi wrote:
Makes sense to do so, I'll make those adjustments. https://github.com/llvm/llvm-project/pull/107493 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits