Commit Graph

45 Commits

Author SHA1 Message Date
Xi Ge
e937184b99 swift-api-checker.py: add framework search path for XCTest 2020-04-03 16:32:00 -07:00
Xi Ge
419b14772c swift-api-checker.py: add -swift-only flag when checking ABI stability
The existing logic of ABI checking only works for Swift symbols. We need to
add this flag so the script can work with Swift overlays.

rdar://60786484
2020-04-03 16:24:05 -07:00
Xi Ge
0aea09fa14 ABI checker: remove assert-only decls from the generated stdlib ABI baseline
rdar://59772479
2020-03-02 14:01:53 -08:00
Xi Ge
71a73a9551 test: update ABI/API baselines for stdlib 2020-02-24 12:23:24 -08:00
Jordan Rose
998d2ed739 [CMake] Include API checker nil baseline even when not building all (#27098) 2019-09-10 09:26:26 -07:00
Xi Ge
75b3dfb865 cmake: using PROGRAMS instead of providing permission bits for swift-api-checker.py 2019-09-06 17:14:49 -07:00
Xi Ge
1d5aaa8509 cmake: ensure swift-api-dhecker.py is executable in the toolchain 2019-09-06 14:52:29 -07:00
Xi Ge
d8b611d060 ABI/API checker: teach the tool to diagnose against a builtin empty baseline
Framework authors may be interested in comparing the current framework build
against an empty baseline to find public APIs without @available attributes. This
change makes such exercise easier.
2019-09-04 11:07:39 -07:00
Xi Ge
115569f0de swift-api-checker.py: introduce a sub directory under framework name for ABI baselines
In case we need to also include framework API baselines in the future, we should have
an additional layer of directory for ABI baseline files.
2019-09-03 10:50:13 -07:00
Xi Ge
cc6a246deb Revert "Revert "swift-api-digester: teach the tool to find framework-specific baselines from relative path"" 2019-09-01 09:19:43 -07:00
eeckstein
63a3cee0bf Revert "swift-api-digester: teach the tool to find framework-specific baselines from relative path" 2019-09-01 09:51:06 +02:00
Xi Ge
178e5d5ecf swift-api-digester: teach the tool to find framework-specific baselines from relative path
The framework baselines are installed at 'lib/swift/FrameworkABIBaseline' and the
tool is inside 'bin'. This patch teaches the executable to locate baselines
from the relative path.

In addition, this patch moves the stdlib ABI/API baselines to the canonical
location so we don't have to check the stability of the stdlib using a
different mechanism from other Swift frameworks.
2019-08-30 23:14:03 -07:00
Xi Ge
4f7ade9e8a cmake: symlink framework ABI baseline data into the build directory
When running the ABI checker from the build artifact, the executable
should be able to find baselines in the same relative paths as if
it's running from a toolchain.
2019-08-30 14:44:15 -07:00
Xi Ge
d09329676b swift-api-checker.py: teach the script to generate target-specific baseline for a single module
This allows us to generate baselines for the Swift stdlib using an Xcode release.
2019-08-30 12:42:10 -07:00
Xi Ge
cdd4eed3ea swift-api-checker.py: remove unnecessary framework search paths 2019-08-26 11:30:53 -07:00
Xi Ge
eab0c55b16 swift-api-checker.py: allow users to specify json file names when dumping framework content 2019-08-26 10:57:58 -07:00
Xi Ge
6e45f89381 cmake: set up installing framework ABI baselines into toolchain 2019-08-22 17:00:29 -07:00
Xi Ge
1857a37e3b Merge pull request #26773 from nkcsgexi/abort-compiler-error
ABI/API checker: abort after error occurs while importing a module
2019-08-21 19:01:55 -07:00
Xi Ge
d4bfae8595 ABI/API checker: abort after error occurs while importing a module 2019-08-21 15:57:39 -07:00
Xi Ge
7a19538cb0 swift-api-checker: pass down --catalyst to infer-imports.py when looking for them 2019-08-21 11:48:10 -07:00
Xi Ge
6562fa47a3 Merge pull request #26748 from nkcsgexi/fixed-modules-swift
swift-api-checker: rename existing fixed-module lists to fixed-clang-modules
2019-08-20 16:25:54 -07:00
Xi Ge
362ece8445 swift-api-checker: add support for invoking low-level executable using iosmac target 2019-08-20 15:39:09 -07:00
Xi Ge
d388bac43a swift-api-checker: rename existing fixed-module lists to fixed-clang-modules
This patch also adds fixed-swift-modules to hard-code CreateML, which could
not be found in the regular framework search path.
2019-08-20 12:19:46 -07:00
Xi Ge
756be16664 swift-api-checker: teach infer-imports to find all catalyst-supporting Swift frameworks 2019-08-20 10:51:30 -07:00
Xi Ge
3914452ecf Revert "Revert "swift-api-checker: update target triples for the tool to use"" 2019-08-01 11:48:27 -07:00
Mishal Shah
f4f3113d38 Revert "swift-api-checker: update target triples for the tool to use" 2019-08-01 11:10:31 -07:00
Xi Ge
79554093a4 swift-api-checker: update target triples for the tool to use 2019-07-31 18:13:48 -07:00
Xi Ge
2908c491f6 swift-api-checker: teach the script to collect all frameworks with Swift overlay in SDKs 2019-07-08 13:14:07 -07:00
Xi Ge
5d906e643a swift-api-checker: teach the script to dump entire SDK content to files separated by modules 2019-07-03 12:56:19 -07:00
Xi Ge
4ac14ea0d5 swift-api-checker: print framework names when diagnosing breakages 2019-06-17 16:19:40 -07:00
Xi Ge
06c958e6af swift-api-checker: teach the script to collect Swift only frameworks from the SDK.
This will only include frameworks like SwiftUI, Combine, etc.

Related: rdar://48456712
2019-06-13 12:36:56 -07:00
Argyrios Kyrtzidis
ea978d9dc3 [api_checker/infer-imports.py] Look for Swift-only frameworks as well 2019-06-12 17:11:44 -07:00
Xi Ge
f5853ba44f swift-api-digester: avoid adding MissingMemberDecl to the json file
We explicitly ignore these ABI placeholders to fix an unreachable hit.
2019-05-22 18:09:42 -07:00
Xi Ge
f7881eed66 cmake: specify only one component toolchain-tools for swift-api-digester 2019-05-14 15:04:11 -07:00
Alex Langford
3d9a28925b [CMake] Modify swift_install_in_component to support cmake install components
CMake supports the notion of installation components. Right now we have some
custom code for supporting swift components. I think that for installation
purposes, it would be nice to use the CMake component system.

This should be a non-functional change. We should still only be generating
install rules for targets and files in components we want to install, and we
still use the install ninja target to install everything.
2019-04-19 14:06:11 -07:00
Xi Ge
f720459b0c Merge pull request #23664 from nkcsgexi/install-oss-digester
cmake: install swift-api-digester and swift-api-checker into the OSS toolchain. SR-10220
2019-03-29 14:26:34 -07:00
Xi Ge
db0f39fc9a cmake: install swift-api-digester and swift-api-checker into the OSS toolchain. SR-10220 2019-03-29 11:47:17 -07:00
Xi Ge
dc3261f14b swift-api-checker: avoiding empty file for fixed module list. rdar://49382586 2019-03-28 15:37:21 -07:00
Xi Ge
246bfbcc4c linting 2019-03-21 20:29:33 -07:00
Xi Ge
80330d6ee4 swift-api-checker: allow the script to take additional flags to pass down to the executable 2019-03-21 17:25:01 -07:00
Xi Ge
c280dab306 Merge pull request #23447 from nkcsgexi/diagnose-api-checker
swift-api-checker: teach the script to also diagnose the breakages between two previous dumps
2019-03-20 17:38:46 -07:00
Xi Ge
6a502aaefd swift-api-checker: allow users to specify the path of a swift-api-digester 2019-03-20 14:49:16 -07:00
Xi Ge
51bd604a1a swift-api-checker: teach the script to also diagnose the breakages between two previous dumps 2019-03-20 12:26:35 -07:00
Xi Ge
5c0013e371 cmake: install swift-api-checker into the tools component. 2019-03-20 11:24:33 -07:00
Xi Ge
6c0e0ee4f5 utils: add a convenient python wrapper for swift-api-digester
Based on the same concept of swift-api-dump, this python wrapper
provides framework authors a convenient way to generate baseline or
diagnose ABI/API breakages from an existing toolchain where it has
swift-api-digester installed.

cmake installation part will be added in a separate PR.

rdar://problem/29649661
2019-03-19 17:48:16 -07:00