mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Now that we can pick up search paths from frameworks (necessary to debug them properly), we can end up with exponential explosions leading to the same search path coming up thousands of times, which destroys compilation time /and/ debugger responsiveness. This is already hitting people with frameworks compiled for app extensions (due to a mistaken approximation of whether or not something is a framework), but we're turning this on for all frameworks in the immediate future. rdar://problem/20291720 Swift SVN r27087
60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
//===--- SearchPathOptions.h ------------------------------------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See http://swift.org/LICENSE.txt for license information
|
|
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_AST_SEARCHPATHOPTIONS_H
|
|
#define SWIFT_AST_SEARCHPATHOPTIONS_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace swift {
|
|
|
|
/// Options for controlling search path behavior.
|
|
class SearchPathOptions {
|
|
public:
|
|
/// Path to the SDK which is being built against.
|
|
std::string SDKPath;
|
|
|
|
/// Path(s) which should be searched for modules.
|
|
///
|
|
/// Do not add values to this directly. Instead, use
|
|
/// \c ASTContext::addSearchPath.
|
|
std::vector<std::string> ImportSearchPaths;
|
|
|
|
/// Path(s) which should be searched for frameworks.
|
|
///
|
|
/// Do not add values to this directly. Instead, use
|
|
/// \c ASTContext::addSearchPath.
|
|
std::vector<std::string> FrameworkSearchPaths;
|
|
|
|
/// Path(s) which should be searched for libraries.
|
|
///
|
|
/// This is used in immediate modes. It is safe to add paths to this directly.
|
|
std::vector<std::string> LibrarySearchPaths;
|
|
|
|
/// Path to search for compiler-relative header files.
|
|
std::string RuntimeResourcePath;
|
|
|
|
/// Path to search for compiler-relative stdlib dylibs.
|
|
std::string RuntimeLibraryPath;
|
|
|
|
/// Path to search for compiler-relative stdlib modules.
|
|
std::string RuntimeLibraryImportPath;
|
|
|
|
/// Don't look in for compiler-provided modules.
|
|
bool SkipRuntimeLibraryImportPath = false;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|