Commit Graph

1633 Commits

Author SHA1 Message Date
Saleem Abdulrasool
202ee5b020 build: help pave the road for a mixed Python build
LLDB requires python3, however, gyb is a python2 tool.  Use the fact
that we have a newer CMake at our disposal and use the `Python2` package
in CMake to locate a viable python interpreter.  This allows us to have
references to both versions of python simultaneously.
2020-02-12 19:07:01 -08:00
Saleem Abdulrasool
b46ddbe982 build: make building with VS2017 15.8+ work again
This causes an ABI break on VS2017, but it is acceptable as there is no
guaranteed stability.
2020-02-12 11:15:56 -08:00
Saleem Abdulrasool
97df90fbf1 Merge pull request #29581 from drexin/wip-fix-atomics
Remove dependency on libatomic on Linux
2020-02-11 20:03:10 -08:00
Dario Rexin
29749e64d7 Update AddSwiftUnittests.cmake 2020-02-05 08:51:00 -08:00
swift-ci
fd9a388db9 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-02-05 07:43:43 -08:00
Eric Miotto
8a76358b88 [build] avoid use generator expression to add linker parameter (#29636)
* [build] use generator expression only on CMake > 3.15

In CMake < 3.16, Generator expressions seem not to allow the `LINKER:` prefix to be
expanded correctly when used in `target_link_options`.

To account for this, account for two code paths according to CMake version -- use the generator expression when detecting we are on 3.16 and resort to an if statement otherwise

Addresses rdar://problem/59117166
2020-02-05 07:26:58 -08:00
swift-ci
782b4e1bfa Merge remote-tracking branch 'origin/master' into master-rebranch 2020-02-03 15:42:56 -08:00
Dario Rexin
62a5ebb6a2 Update AddSwift.cmake 2020-02-03 13:45:47 -08:00
Dario Rexin
ddd003fd4d Update AddSwiftUnittests.cmake 2020-02-03 13:44:27 -08:00
Xi Ge
51d6243d24 cmake: avoid emitting .swiftsourceinfo files for overlays
rdar://problem/58611222
2020-02-03 13:27:10 -08:00
Dario Rexin
525f408445 Update AddSwiftUnittests.cmake 2020-02-03 11:28:22 -08:00
swift-ci
075242f30c Merge remote-tracking branch 'origin/master' into master-rebranch 2020-02-03 10:43:51 -08:00
Saleem Abdulrasool
f300b80665 build: prevent FILE_DEPENDS from being used
The `FILE_DEPENDS` option is used in exactly one location: swiftCore.
This prevention sets the groundwork for removing the option.
Dependencies should be tracked at the target level.
2020-02-02 20:32:52 -08:00
swift-ci
2d9227da4c Merge remote-tracking branch 'origin/master' into master-rebranch 2020-02-02 13:23:57 -08:00
Dario Rexin
feb7bb1a06 one more try 2020-02-02 09:53:18 -08:00
Saleem Abdulrasool
c5c7ed17b8 build: hoist LINK_LIBRARIES out of _add_swift_executable_single
Hoist the responsibility for adding the linked libraries out of
`_add_swift_executable_single` to the invoker.  This impacts only
`swift_add_target_executable`.  This continues to bring the computation
of the properties nearer the site of definition.
2020-02-02 08:58:41 -08:00
Dario Rexin
34a331eb4d Fix march flag in unittest 2020-02-02 00:29:09 -08:00
Dario Rexin
6db05fdbca Set march for unittest on Linux 2020-02-01 23:25:31 -08:00
Dario Rexin
d913eefcc9 Remove dependency on libatomic on Linux
Due to some unfortunate interplay between clang and libstdc++, clang was
not able to correctly identify to alignment of PoolRange and
SideTableRefCountBits, causing it to emit library calls instead of
inlining atomic operations. This was fixed by adding the appropriate
alignment to those types. In addition to that the march for the Linux
target was set to 'core2', which is the earliest architecture to support
cx16, which is necessary for the atomic operations on PoolRange.
2020-01-31 15:59:54 -08:00
swift-ci
b5c8853f3f Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-29 10:23:57 -08:00
Eric Miotto
0bd1e61a20 [build][gardening] adjust one more framework path (#29529)
This is a follow to #29507 addressing one more place in which we need to
collate -F with the framework path

Addresses rdar://problem/58934566
2020-01-29 10:09:32 -08:00
swift-ci
e6085cb5cb Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-28 11:23:21 -08:00
Saleem Abdulrasool
1fff12f663 Merge pull request #29511 from compnerd/cohabitation
build: move `compute_library_subdir` to where it is used
2020-01-28 11:08:16 -08:00
swift-ci
10cc7cfcfc Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-28 09:24:15 -08:00
Eric Miotto
5428060ca8 [build][gardening] adjust framework paths (#29507)
Collate -F with the framework path to avoid unwanted deduplication of options by `target_compile_options` (which is the case after #29451) -- this way no undesired side effects are introduced should a new search path be added.

Addresses rdar://problem/58934566
2020-01-28 09:23:46 -08:00
Saleem Abdulrasool
049e384436 build: move compute_library_subdir to where it is used
This function is only used in SwiftSource.cmake.  Locate the function
there to make it easier to find.
2020-01-28 09:22:12 -08:00
swift-ci
0373bc26c1 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-28 08:03:20 -08:00
Saleem Abdulrasool
02b6161aef Merge pull request #29483 from compnerd/duplication-is-good-for-you
build: repair the Windows build
2020-01-28 07:58:12 -08:00
Daniel Rodríguez Troitiño
8777a873a5 Merge pull request #29502 from drodriguez/android-escape-include-paths-correctly
[android] Escape include paths in Android.
2020-01-28 07:53:13 -08:00
swift-ci
e4f3574c7f Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-27 23:04:17 -08:00
Daniel Rodríguez Troitiño
3e42a0f1ca [android] Escape include paths in Android.
Before the result of `_add_variant_c_compile_flags` was a string, so appending several "-isystem" was not a problem. With #29451 the rules have changed since the list is now handled by CMake, and it deduplicates the repeated members in the list. Thanks, CMake.

Should fix the Android CI builds that were failing since the merging of #29451.
2020-01-27 22:51:25 -08:00
Saleem Abdulrasool
a1c971907b build: repair the Windows build
This should repair the Windows build after #29451.  The quoting
behaviour was incorrect and was constructing an invalid compiler
invocation.  Solve the issue by using `target_include_directories`
instead.  However, since this needs the target, hoist the flag
computation to the local sites.  This replicates more logic because of
the custom build trying to replicate the CMake build logic in CMake.
2020-01-27 22:35:28 -08:00
Yuta Saito
68730053f5 Fix mismatch use of target_link_options 2020-01-28 03:58:25 +00:00
swift-ci
91799178d3 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-27 15:43:24 -08:00
Saleem Abdulrasool
fbcb41facf build: simplify the ICU include handling
This simplifies the ICU flags handling.  This inlines the use into just
the library case, as the ICU usage is for the standard library targets
only.  It uses CMake to properly add the include paths as a system
search path.  This should fix the Linux builds as the include flags were
being de-duplicated as we are now using CMake more than we were
previously.
2020-01-27 13:48:09 -08:00
swift-ci
8c23dec23e Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-27 09:04:20 -08:00
Saleem Abdulrasool
efa526ea71 Merge pull request #29451 from compnerd/someone-else-can-do-it
build: use modern target property handling
2020-01-27 08:49:20 -08:00
swift-ci
3137a0acab Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-27 08:44:11 -08:00
Saleem Abdulrasool
e80bb6717c build: remove a hack for clang dependencies
This was introduced in 2014.  This should not be needed any longer,
especially with the use of the clang dependencies being satisfied by
export targets through `Clang_DIR`.
2020-01-26 12:25:46 -08:00
swift-ci
26ab9840a4 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-26 09:03:30 -08:00
Saleem Abdulrasool
80d9e0aab6 Merge pull request #29450 from compnerd/inclusive-builds
build: begin rooting out `EXCLUDE_FROM_ALL`
2020-01-26 08:56:26 -08:00
Saleem Abdulrasool
729ad36b80 build: delegate rpath handling to CMake
This moves the rpath handling to the build system rather than trying to
figure out the correct flags to pass to the driver.
2020-01-25 17:01:07 -08:00
Saleem Abdulrasool
d8b3b626fe build: use modern target property handling
Use specific operations for setting the compile flags, link flags,
linked libraries, and library search paths.  This allows us to use CMake
more effectively, simplifies the logic, and will ensure that flags are
not duplicated.
2020-01-25 16:08:51 -08:00
Saleem Abdulrasool
183de849d4 build: begin rooting out EXCLUDE_FROM_ALL
`EXCLUDE_FROM_ALL` should be discouraged.  `ALL` should build *all*
targets.  If a subset of targets are desired to be built, we should
provide targets which make sense.  Sink the single use of this flag
into the standard library setup.  The custom cross-compilation was
the reason that the flag was plumbed all the way through.  Cleaning
up the macros that have been built up is needed to migrate towards
proper cross-compilation support.
2020-01-24 22:20:07 -08:00
Mike Ash
cd2b54f74e Merge branch 'master' into master-rebranch 2020-01-24 11:30:32 -05:00
Saleem Abdulrasool
07ea64bb9d Merge pull request #29404 from compnerd/edit-your-patterns
build: add imported library for libedit
2020-01-24 08:17:03 -08:00
swift-ci
f324eb6a1e Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-23 15:04:45 -08:00
Saleem Abdulrasool
9d9a5ce340 build: add imported library for libedit
This allows us to use CMake more effectively rather than proliferating
the linking and header search path logic.
2020-01-23 14:14:43 -08:00
Saleem Abdulrasool
a8df8ef03c build: remove FORCE_BUILD_OPTIMIZED
This is used in two places.  Rather than plumbing the option through
everywhere, set the two locations to use compiler-specific optimization
flags.  Note that this improves the optimizations enabled for the debug
build with an optimized type-checker.

This also clears the way to have `add_swift_host_library` be entirely a
trivial wrapper over `add_library` enabling us to finally move towards
more standard CMake rules.
2020-01-23 13:17:25 -08:00
Erik Eckstein
bbfaccda4b Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-22 08:25:23 +01:00