Commit Graph

14 Commits

Author SHA1 Message Date
Jordan Rose
1d3bdfae7f Separate dependency tracking from Make-style .d file generation.
This refactoring is groundwork for saving the cross-module dependencies
in the swiftdeps files as well, so that we know to rebuild files if an
outside file changes (such as a bridging header, another framework's
headers, or another framework's swiftmodule).

Part of rdar://problem/19270920

Swift SVN r24258
2015-01-08 03:02:17 +00:00
Dmitri Hrybenko
6670bb76ec Rewrite the CMake build system
Swift SVN r24124
2014-12-23 22:15:30 +00:00
Connor Wakamo
2d6c9e9062 Moved Swift's option table from swiftDriver into a new swiftOption library.
This allows swiftFrontend to drop its dependency on swiftDriver, and could
someday allow us to move the integrated frontend's option parsing out of
swiftFrontend (which would allow other tools which use swiftFrontend to
exclude the option table entirely).

Swift SVN r19824
2014-07-10 20:51:50 +00:00
Jordan Rose
2877bd0854 Add support for dependency file generation with -emit-dependencies.
This performs very conservative dependency generation for each compile task
within a full compilation. Any source file, swiftmodule, or Objective-C
header file that is /touched/ gets added to the dependencies list, which
is written out on a per-input basis at the end of compilation.

This does /not/ handle dependencies for the aggregated swiftmodule, swiftdoc,
generated header, or linked binary. This is just the minimum needed to get
Xcode to recognize what needs to be rebuilt when a header or Swift source
file changes. We can revisit this later.

This finishes <rdar://problem/14899639> for now.

Swift SVN r18045
2014-05-14 00:34:11 +00:00
Connor Wakamo
9861019cc5 [frontend] Add a member function to FrontendOptions which returns whether or not the RequestedAction has output.
Swift SVN r11393
2013-12-17 21:34:24 +00:00
Connor Wakamo
02c1532d27 Initial support for an integrated frontend in swift_driver.
- Added support for invoking the Swift frontend via "swift_driver -frontend".
- Added frontend_main.cpp, which implements the main entry point for the
  integrated frontend. (Currently, this supports compiling an input Swift file
  into an object file.)
- Removed lib/Frontend/FrontendOptions.td, and replaced its functionality with
  options in include/Swift/Driver/Options.td and a new
  include/Swift/Driver/FrontendOptions.td. Options supported by the frontend
  are denoted by the FrontendOption flag; options which are not supported by
  the driver are denoted by the NoDriverOption flag.
- Updated CompilerInvocation::parseArgs() to use the option table returned from
  createDriverOptTable(), including renaming a handful of options. (-triple is
  now -target, and -Xclang is now -Xcc.)

Swift SVN r11082
2013-12-10 18:06:54 +00:00
Connor Wakamo
2b3a922aa5 Move SerializedDiagnosticConsumer into swiftFrontend.
This matches where Clang implements its equivalent, and this makes it available to both swift and the new driver.

Swift SVN r10047
2013-11-08 19:26:13 +00:00
Argyrios Kyrtzidis
8c9a7a581f Introduce parsing of frontend options using LLVM's tablegen'ed Options infrastructure.
Implement CompilerInvocation::parseArgs(), which parses a list of arguments and initializes
the CompilerInvocation object.

Swift SVN r7473
2013-08-22 20:21:07 +00:00
Argyrios Kyrtzidis
7b3988f74b [frontend] Put CompilerInvocation implementation into its own file.
Swift SVN r7464
2013-08-22 18:29:54 +00:00
Chris Lattner
121e70f4fa Refactor diagnostic verification (-verify mode) out to its own file
in libFrontend.


Swift SVN r6985
2013-08-07 17:53:09 +00:00
Jordan Rose
ecc47bad85 Frontend no longer depends on ClangImporter. Weakly link the entry point.
This closes out <rdar://problem/14513108> -- sil-opt no longer depends on
ClangImporter or any Clang libraries. In theory, however, forcing a load
of a libSwiftClangImporter.dylib would allow sil-opt to process SIL files
containing Clang imports.

Swift SVN r6700
2013-07-29 18:57:10 +00:00
Dmitri Hrybenko
e62a251701 Move PrintingDiagnosticConsumer to libFrontend so that it can be resued in
swift-ide-test.


Swift SVN r6120
2013-07-10 18:20:41 +00:00
Dmitri Hrybenko
c7421211a3 Factor out logic that creates and configures all objects required for
compilation into a 'Frontend' library.

This library is still not in its best shape, but now it can be reused in
swift-index-test.


Swift SVN r6040
2013-07-06 00:46:19 +00:00
Dmitri Hrybenko
70246e8b89 Move swift::buildSingleTranslationUnit to a new library, libFrontend
It should be split and/or generalized in order to become reusable.


Swift SVN r5974
2013-07-03 20:50:21 +00:00