Commit Graph

1731 Commits

Author SHA1 Message Date
Dmitri Gribenko
ba6643c7a4 CMake: allow the build to succeed when the path to Xcode contains spaces
Tests still have issues in that setup.
2015-12-11 18:56:30 -08:00
Landon Fuller
a51494a146 Add comment to clarify the empty if block, as per gribozavr's review feedback. 2015-12-04 14:02:28 -07:00
Landon Fuller
a7ec794287 Add basic build system and Driver support for FreeBSD targets/hosts. 2015-12-04 12:24:46 -07:00
Lijun Xue
ab6890fa5e Fix typos in comments 2015-12-03 20:44:23 -08:00
Chris Willmore
872b8ac8b0 Linux cmake script env doesn't have pushd/popd. 2015-11-20 18:53:33 -07:00
Chris Willmore
df2fe71d15 Pull libswiftStdlibStubs.a, libswiftRuntime.a into libswiftCore.a
libswiftStdlibStubs.a is meant to be an intermediate built product
that's pulled into libswiftCore.a, not its own thing. Add a post-build
step for libswiftCore.a to pull all the object files into it from
libswiftStdlibStubs.a.

(Also, be careful only to do this for private link libraries that are
actually targets.)

<rdar://problem/23621157>
2015-11-20 17:26:33 -08:00
Chris Willmore
3d79008bbf Revert "Pull libswiftStdlibStubs.a, libswiftRuntime.a into libswiftCore.a"
This reverts commit 7dee5354f5 because it
broke the Linux build.
2015-11-20 17:12:10 -08:00
Chris Willmore
7dee5354f5 Pull libswiftStdlibStubs.a, libswiftRuntime.a into libswiftCore.a
libswiftStdlibStubs.a is meant to be an intermediate built product
that's pulled into libswiftCore.a, not its own thing. Add a post-build
step for libswiftCore.a to pull all the object files into it from
libswiftStdlibStubs.a.

<rdar://problem/23621157>
2015-11-20 17:04:52 -08:00
John McCall
5203a688f6 Pick up LLVM_PACKAGE_VERSION correctly in unified builds. 2015-11-17 12:33:17 -08:00
David Farler
d9bbb6caf0 Remove checks and references to internal Apple SDKs.
These aren't available for use outside of Apple.

rdar://problem/23302539
2015-11-16 16:07:55 -08:00
Jordan Rose
24b5136700 [CMake] Remove bogus dependency on "bin/swiftc".
When we're building the compiler, we already depend on the "swift" target.
When we're /not/ building the compiler, it had better already be there.

Squelches a CMake warning.
2015-11-13 16:25:34 -08:00
David Farler
ad95b5ff81 Use analogous rpath settings for Swift libraries on Linux
This was defaulting to the build directory, which isn't helpful
post-install. Set Swift libraries to look in the same directory
(ORIGIN) or /usr/lib/swift/linux.

rdar://problem/22766758
2015-11-12 17:15:20 -08:00
Argyrios Kyrtzidis
7c5de8fca5 [CMake] Make sure the standalone build enables the same warnings as the llvm/clang build. 2015-11-05 19:25:43 -08:00
Jordan Rose
6bc2234409 Revert "[cmake] Turn on the -Wbool-conversion flag." (r32925)
I complained about not having this to Michael, but it turns out it's on by
default and just doesn't catch the issue we ran into.

Swift SVN r32931
2015-10-28 01:13:41 +00:00
Michael Gottesman
4b63ffc136 [cmake] Turn on the -Wbool-conversion flag.
This would have caught a problem caused by an upstream source code change in the
merge.

Swift SVN r32925
2015-10-27 23:54:00 +00:00
Dmitri Hrybenko
2e51d23875 Un-ifdef object literals
Swift SVN r32880
2015-10-25 07:50:53 +00:00
Dmitri Hrybenko
de5fe48bc5 CMake: allow customizing install_name for standard library dylibs
<rdar://problem/23173251>

Swift SVN r32865
2015-10-24 04:56:32 +00:00
Dmitri Hrybenko
d679d9aa0b CMake: remove a feature to install stdlib dylibs
We're not using it.

Swift SVN r32864
2015-10-24 04:56:28 +00:00
Dave Abrahams
37f9dafd5a Include gyb source in build dependencies
Otherwise you can't fix gyb bugs and see the result.  We were including
the top-level driver, but not the Python module file, gyb.py

Swift SVN r32860
2015-10-24 04:47:53 +00:00
Jordan Rose
2a1a6edf9e [CMake] Update for changes to LLVM CMake API (LLVM r248911).
This (mostly coincidentally) only affects Xcode users.

Swift SVN r32853
2015-10-24 00:42:40 +00:00
Argyrios Kyrtzidis
f3b8a5898f [CMake/build-presets] Add 'clang-libclang' install component that installs libclang and pass the clang version via darwin-llvm-submit-version.
rdar://22907181

Swift SVN r32707
2015-10-15 16:52:22 +00:00
Todd Fiala
711c76e1ae Add gold linker support for Swift executables and shared libraries on Linux.
This skips the Swift standard library due to the linker script incompatibility
issue.

As before for other related projects, the build-script-impl option
'--use-gold-linker' triggers usage of this.


Swift SVN r32706
2015-10-15 15:26:12 +00:00
Dmitri Hrybenko
0c1b6f8760 CMake: fix separate overlay builds
When building overlay separately, look for dylibs in the overlay
build directory first, and only then fall back to the compiler resource
directory.

If the overlay changes the ABI, we shouldn't even try the dylibs in the
compiler resource directory, that is certain to fail the build or
result in miscompiles.

rdar://22866170

Swift SVN r32382
2015-10-01 22:14:49 +00:00
Dmitri Hrybenko
c1678ff361 CMake: DARWIN_USE_INTERNAL_SDK: Actually use the internal SDK
Swift SVN r32361
2015-10-01 03:21:54 +00:00
Dmitri Hrybenko
e475fa0ae2 CMake: when looking for an internal SDK, check for the 'PrivateFrameworks' dir
Swift SVN r32333
2015-09-30 01:50:38 +00:00
Dmitri Hrybenko
26e5be03b7 CMake: add an option that forces the use of internal SDK
rdar://22866512

Swift SVN r32316
2015-09-29 22:59:00 +00:00
David Farler
2a0f027317 Review changes for _compiler_version
A couple of small tweaks to _compiler_version based on review comments:
- Fix &&/|| rejection to work with _compiler_version on either side of the
expression. Also add some test cases around this.
- Use clang/LLVM facilities for isdigit and atoi.
- Assert if parsing an invalid version string and there is no diagnostic
engine.
- Clean up some crumbs in the CMake configs.

rdar://problem/22730282

Swift SVN r32212
2015-09-24 22:47:01 +00:00
David Farler
9d373d0fc7 Add _compiler_version build configuration
This configuration clause will suppress lex diagnostics and skip parsing
altogether if the code under the clause isn't active - the compiler must
have a repository version greater than or equal to the version given to
_compiler_version.

This option is only meant to be used sparingly and not to track the
Swift *language* version.

Example, if using a compiler versioned 700.0.28:

  #if _compiler_version("700.0.23")
    print("This code will compile for versions 700.0.23 and later.")
  #else
    This + code + will + not + be + parsed
  #endif

Included are new diagnostics for checking that the version is formatted
correctly and isn't empty.

New tests:
- Compiler version comparison unit tests
- Build configuration diagnostics
- Skipping parsing of code under inactive clauses

rdar://problem/22730282

Swift SVN r32195
2015-09-24 02:14:47 +00:00
Jordan Rose
68b6a442ae [CMake] Make .def files show up in Xcode even if they're in lib/.
...instead of include/. LLVM already takes care of .h files, but not .def.

Swift SVN r31632
2015-09-02 18:31:47 +00:00
Jordan Rose
9f7a750f2a [CMake] Restore code that was previously guarded by "NOT MSVC_IDE".
Swift SVN r31549
2015-08-27 22:48:36 +00:00
Jordan Rose
765fab169a [CMake] Don't pretend to support MSVC.
These might very well be the right things to do, but no one's tested that.

Swift SVN r31537
2015-08-27 18:47:27 +00:00
Sonny Falk
a24c051e52 CMake: Cross compiling requires internal SDK.
Refactor configure_sdk_darwin(), remove the "internal" parameter since all calls are the same, make it respect SWIFT_USE_INTERNAL_SDK instead.

Make it use the internal SDK only if cross compiling tools, since it's required.

Swift SVN r31509
2015-08-26 22:43:01 +00:00
Dmitri Hrybenko
7f09fbc63d Revert "CMake: don't hide symbol names in bitcode for debuggability"
This reverts commit r31313.

This change caused an unacceptable dylib size increase:
- watchOS core dylib size increased from 13 Mb to 25 Mb,
- iOS dylib size increased 40 Mb to 76 Mb.

The size change is due to change of the bitcode section size.  It can be
attributed to:
- actual symbol strings that we have started to include;
- full debug info.  Symbol obfuscation was also changing full debug info
  in LLVM metadata into line tables.

rdar://22330874, again.

Swift SVN r31473
2015-08-26 03:20:01 +00:00
Arnold Schwaighofer
f6224bd3f0 Allow libraries to specify to be compiled against the internal variant of the SDKs
We will need this to switch the darwin targets over to use ICU instead of going
to NSString for string operations. The public SDK does not contain the headers
for ICU - only the dylib.

For builds using a public SDK users can specify the path to an ICU install where
the headers can be found. If this path is specified the logic will not use
internal SDK variants.

Swift SVN r31471
2015-08-26 02:55:45 +00:00
Michael Gottesman
d074d6f646 [cmake] Add an option SWIFT_EXPERIMENTAL_EXTRA_NEGATIVE_REGEXP_FLAGS
This is a negative version of the flag
SWIFT_EXPERIMENTAL_EXTRA_REGEXP_FLAGS. The reason why an additional flag
is needed is that cmake does not support negative regexes in the regex
string itself. Instead you need to do:

if (NOT "..." MATCHES "...")
  ...
endif()

This suggests that we either needed to introduce more complexity into
SWIFT_EXPERIMENTAL_EXTRA_REGEXP_FLAGS or just introduce another flag. I
decided to go with the later.

Swift SVN r31417
2015-08-23 04:14:27 +00:00
Jordan Rose
53b1cf2b09 [CMake] Fix dependencies for CloudKit.
...which unfortunately meant splitting tvOS out from iOS.

Swift SVN r31343
2015-08-19 20:57:02 +00:00
Dmitri Hrybenko
167f4faa0d CMake: don't hide symbol names in bitcode for debuggability
rdar://22330874

Swift SVN r31313
2015-08-18 22:03:01 +00:00
David Farler
9e4d52c9cb Reinstate watchOS and other SDK overlays to build against the public SDKs.
Un-revert the below commits with the following addition:
add declarations for posix_spawn related APIs to SwiftPrivateDarwinExtras.
posix_spawn-related APIs aren't available in the public SDKs, so force past
the availability by creating our own stubs in the internal DarwinExtras
library.

r31244, r31245

CMake: build all platforms except watchOS using the public SDK

Covers rdar://problem/21145996.
A step towards rdar://problem/21099318.

Switch SDK overlays to use the public SDK

I had to cut the dependency on CrashReporterClient.h and reimplement
some of that code inline in the Swift runtime.  This shoud be OK (even
though not very clean), since the layout of CrashReporter sections is
ABI.

rdar://21099318

Swift SVN r31252
2015-08-14 22:09:49 +00:00
Dmitri Hrybenko
c75fc00cec Revert "CMake: build all platforms except watchOS using the public SDK"
This reverts commit r31244.  It broke the buildbot.

Swift SVN r31247
2015-08-14 18:56:15 +00:00
Dmitri Hrybenko
dd38372fb7 CMake: build all platforms except watchOS using the public SDK
Covers rdar://problem/21145996.
A step towards rdar://problem/21099318.

Swift SVN r31244
2015-08-14 17:26:04 +00:00
Jordan Rose
f5b1efb354 Move client-affecting configuration options into a generated Config.h.
This way they can be used from other projects, like LLDB. The downside
is we now have to make sure the header is included consistently in all
the places we care about, but I think in practice that won't be a problem,
especially not with tests.

rdar://problem/22240127

Swift SVN r31173
2015-08-12 17:50:13 +00:00
Mish Awadah
10bdef0936 Revert "CMake: build all platforms except watchOS using the public SDK"
This reverts commit cd3f1ba7d1ee2397817e1a165209fdeab8a1c004.

Reverting this b/c it is breaking buildbots with the following:
CMake Error at CMakeLists.txt:522 (message):
  CrashReporterClient library is required, but it was not found

Swift SVN r31047
2015-08-06 06:12:23 +00:00
Dmitri Hrybenko
271acdfcab CMake: build all platforms except watchOS using the public SDK
Covers rdar://problem/21145996.
A step towards rdar://problem/21099318.

Swift SVN r31041
2015-08-06 04:28:05 +00:00
Jordan Rose
953424072e Guard "object literals" feature with SWIFT_ENABLE_OBJECT_LITERALS.
This is not a feature we're releasing at the moment, so provide a way
to turn it off.

rdar://problem/21935551

Swift SVN r30966
2015-08-04 00:16:52 +00:00
Michael Gottesman
c551ec6e17 Add support for emitting sib files to _compile_swift_files.
I am going to use this to enable the perftestsuite to compile .sib files next to
.o files. It will make it easier to work with the PerfTestSuite for the perf
engineers.

Swift SVN r30885
2015-07-31 21:29:44 +00:00
Dmitri Hrybenko
3b4e8cecca CMake: use the just-built libLTO to link the bitcode
The compiler in the toolchain might be too old, and might not be able to
parse the new bitcode format from llvm trunk.

rdar://21014369

Swift SVN r30047
2015-07-09 23:25:00 +00:00
Dmitri Hrybenko
7cdcb16cc4 CMake: LLVMParseArguments.cmake was removed, migrate to cmake_parse_arguments
Swift SVN r29699
2015-06-25 22:01:37 +00:00
Jordan Rose
99768eb346 Revert "Switch overlays from using @exported to -import-underlying-module."
This reverts r29441 because it breaks the Linux build. I'll talk to Dmitri
about this tomorrow.

See rdar://problem/21254367

Swift SVN r29444
2015-06-17 05:02:21 +00:00
Jordan Rose
c8bfc87c4e Switch overlays from using @exported to -import-underlying-module.
Some day we'll close the hole for @exported in the previous commit.

Swift SVN r29441
2015-06-17 04:48:06 +00:00
Doug Gregor
ffe4de6d6e Small fixes per Jordan's review
Swift SVN r29396
2015-06-16 00:05:12 +00:00