Skip to content

Commit 76eefd6

Browse files
authored
[swiftgen] Initial version of swiftgen (#2372)
1 parent 9ce8585 commit 76eefd6

29 files changed

+5121
-10
lines changed

.github/workflows/ffigen.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ jobs:
106106
- name: Upload coverage
107107
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
108108
with:
109-
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc"
109+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
110110
github-token: ${{ secrets.GITHUB_TOKEN }}
111111
parallel-finished: true
112112

.github/workflows/jnigen.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,6 @@ jobs:
447447
- name: Coveralls finished
448448
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
449449
with:
450-
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc"
450+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
451451
github-token: ${{ secrets.github_token }}
452452
parallel-finished: true

.github/workflows/native.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ jobs:
8282
- name: Upload coverage
8383
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
8484
with:
85-
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc"
85+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
8686
github-token: ${{ secrets.GITHUB_TOKEN }}
8787
parallel-finished: true

.github/workflows/objective_c.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
- name: Upload coverage
7979
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
8080
with:
81-
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc"
81+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
8282
github-token: ${{ secrets.GITHUB_TOKEN }}
8383
parallel-finished: true
8484

.github/workflows/swift2objc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ jobs:
6969
- name: Upload coverage
7070
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
7171
with:
72-
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc"
72+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
7373
github-token: ${{ secrets.GITHUB_TOKEN }}
7474
parallel-finished: true

.github/workflows/swiftgen.yaml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: swiftgen
2+
3+
on:
4+
# Run on PRs and pushes to the default branch.
5+
push:
6+
branches: [main, stable]
7+
paths:
8+
- '.github/workflows/swiftgen.yaml'
9+
- 'pkgs/swiftgen/**'
10+
pull_request:
11+
branches: [main, stable]
12+
paths:
13+
- '.github/workflows/swiftgen.yaml'
14+
- 'pkgs/ffigen/**'
15+
- 'pkgs/objective_c/**'
16+
- 'pkgs/swift2objc/**'
17+
- 'pkgs/swiftgen/**'
18+
schedule:
19+
- cron: "0 0 * * 0"
20+
21+
env:
22+
PUB_ENVIRONMENT: bot.github
23+
24+
jobs:
25+
# Check code formatting and static analysis.
26+
analyze:
27+
runs-on: macos-latest
28+
defaults:
29+
run:
30+
working-directory: pkgs/swiftgen/
31+
strategy:
32+
fail-fast: false
33+
steps:
34+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
35+
- uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046
36+
with:
37+
channel: 'stable'
38+
- id: install
39+
name: Install dependencies
40+
run: flutter pub get
41+
- name: Check formatting
42+
run: dart format --output=none --set-exit-if-changed .
43+
if: always() && steps.install.outcome == 'success'
44+
- name: Analyze code
45+
run: dart analyze --fatal-infos
46+
if: always() && steps.install.outcome == 'success'
47+
48+
test-mac:
49+
needs: analyze
50+
runs-on: 'macos-latest'
51+
defaults:
52+
run:
53+
working-directory: pkgs/swiftgen/
54+
steps:
55+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
56+
- uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046
57+
with:
58+
channel: 'stable'
59+
- name: Install dependencies
60+
run: flutter pub get
61+
- name: Install ObjC dependencies
62+
working-directory: pkgs/objective_c/
63+
run: flutter pub get
64+
- name: Build ObjC test dylib
65+
working-directory: pkgs/objective_c/
66+
# TODO(https://github.com/dart-lang/native/issues/1068): Remove this.
67+
run: dart test/setup.dart
68+
- name: Install coverage
69+
run: dart pub global activate coverage
70+
- name: Run VM tests and collect coverage
71+
run: dart pub global run coverage:test_with_coverage --scope-output=swiftgen
72+
- name: Upload coverage
73+
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
74+
with:
75+
flag-name: swiftgen
76+
github-token: ${{ secrets.GITHUB_TOKEN }}
77+
parallel: true
78+
path-to-lcov: pkgs/swiftgen/coverage/lcov.info
79+
- name: Upload coverage
80+
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b
81+
with:
82+
carryforward: "ffigen,jni,jnigen,native_pkgs_macos,native_pkgs_ubuntu,native_pkgs_windows,objective_c,swift2objc,swiftgen"
83+
github-token: ${{ secrets.GITHUB_TOKEN }}
84+
parallel-finished: true

pkgs/ffigen/lib/ffigen.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,21 @@
88
/// https://pub.dev/packages/ffigen for details.
99
library ffigen;
1010

11+
export 'src/code_generator/imports.dart' show ImportedType, LibraryImport;
1112
export 'src/config_provider.dart'
1213
show
14+
CommentType,
15+
CompoundDependencies,
1316
Config,
17+
Declaration,
1418
DeclarationFilters,
1519
ExternalVersions,
20+
FfiNativeConfig,
1621
Language,
22+
PackingValue,
23+
SymbolFile,
24+
VarArgFunction,
1725
Versions,
18-
YamlConfig;
26+
YamlConfig,
27+
defaultCompilerOpts;
1928
export 'src/ffigen.dart' show FfiGen;

pkgs/ffigen/lib/src/config_provider.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ library config_provider;
77

88
export 'config_provider/config.dart';
99
export 'config_provider/config_types.dart';
10+
export 'config_provider/path_finder.dart';
1011
export 'config_provider/yaml_config.dart';

pkgs/ffigen/lib/src/config_provider/config.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ abstract interface class Config {
200200
Uri? outputObjC,
201201
SymbolFile? symbolFile,
202202
Language language = Language.c,
203-
required List<Uri> entryPoints,
203+
List<Uri> entryPoints = const <Uri>[],
204204
bool Function(Uri header)? shouldIncludeHeaderFunc,
205205
List<String>? compilerOpts,
206206
Map<String, List<VarArgFunction>> varArgFunctions =

pkgs/ffigen/test/large_integration_tests/large_objc_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import 'dart:io';
1313

1414
import 'package:ffigen/ffigen.dart';
1515
import 'package:ffigen/src/code_generator/utils.dart';
16-
import 'package:ffigen/src/config_provider/config_types.dart';
1716
import 'package:logging/logging.dart';
1817
import 'package:path/path.dart' as path;
1918
import 'package:pub_semver/pub_semver.dart';

0 commit comments

Comments
 (0)