Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[native_toolchain_c] Add linking on Linux #987

Merged
merged 32 commits into from
Jul 29, 2024
Merged

Conversation

mosuem
Copy link
Member

@mosuem mosuem commented Mar 11, 2024

Extend API by providing a CLinker, supporting development only on linux for now. Other platforms to be added in future PRs.


  • I’ve reviewed the contributor guide and applied the relevant portions to this PR.
Contribution guidelines:

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

Copy link

github-actions bot commented Mar 11, 2024

PR Health

Breaking changes ✔️

Details
Package Change Current Version New Version Needed Version Looking good?

Changelog Entry ✔️

Details
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

License Headers ✔️

Details
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
Files
no missing headers

All source files should start with a license header.

Unrelated files missing license headers
Files
pkgs/ffigen/example/libclang-example/generated_bindings.dart
pkgs/ffigen/example/shared_bindings/generate.dart
pkgs/ffigen/example/shared_bindings/lib/generated/a_gen.dart
pkgs/ffigen/example/shared_bindings/lib/generated/a_shared_b_gen.dart
pkgs/ffigen/example/shared_bindings/lib/generated/base_gen.dart
pkgs/ffigen/example/simple/generated_bindings.dart
pkgs/ffigen/lib/src/header_parser/clang_bindings/clang_bindings.dart
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_decl_collision_bindings.dart
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_reserved_keyword_collision_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_enum_int_mimic_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_varargs_bindings.dart
pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart
pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart
pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart
pkgs/ffigen/test/native_test/_expected_native_test_bindings.dart
pkgs/jni/lib/src/lang/jcharacter.dart
pkgs/jni/lib/src/third_party/generated_bindings.dart
pkgs/jni/lib/src/third_party/global_env_extensions.dart
pkgs/jni/lib/src/third_party/jni_bindings_generated.dart
pkgs/jnigen/android_test_runner/lib/main.dart
pkgs/jnigen/example/in_app_java/lib/android_utils.dart
pkgs/jnigen/example/kotlin_plugin/example/lib/main.dart
pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart
pkgs/jnigen/example/kotlin_plugin/lib/kotlin_plugin.dart
pkgs/jnigen/example/pdfbox_plugin/lib/pdfbox_plugin.dart
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/_package.dart
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/_package.dart
pkgs/jnigen/lib/src/bindings/descriptor.dart
pkgs/jnigen/lib/src/elements/elements.g.dart
pkgs/jnigen/test/jackson_core_test/third_party/bindings/com/fasterxml/jackson/core/_package.dart
pkgs/jnigen/tool/command_runner.dart
pkgs/swift2objc/lib/src/config.dart
pkgs/swift2objc/lib/src/generate_wrapper.dart
pkgs/swift2objc/lib/src/generator/_core/utils.dart
pkgs/swift2objc/lib/src/generator/generator.dart
pkgs/swift2objc/lib/src/generator/generators/class_generator.dart
pkgs/swift2objc/lib/src/transformer/_core/unique_namer.dart

Package publish validation ✔️

Details
Package Version Status
package:ffi 2.1.3-wip WIP (no publish necessary)
package:ffigen 13.0.0 already published at pub.dev
package:jni 0.11.0-wip WIP (no publish necessary)
package:jnigen 0.10.0 already published at pub.dev
package:native_assets_cli 0.7.3-wip WIP (no publish necessary)
package:objective_c 1.1.0 already published at pub.dev
package:swift2objc 0.0.1-wip WIP (no publish necessary)
package:swiftgen 0.0.1-wip WIP (no publish necessary)

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

@mosuem
Copy link
Member Author

mosuem commented Mar 11, 2024

@dcharkes if you want to take a first look.

@mosuem mosuem changed the title Add linking for native_toolchain_c Add linking for native_toolchain_c and linux Apr 10, 2024
@coveralls
Copy link

coveralls commented Apr 10, 2024

Coverage Status

coverage: 91.823% (-0.2%) from 92.067%
when pulling cbc364b on exposeLinkFromCtoolchain
into 695c065 on main.

@github-actions github-actions bot added type-infra A repository infrastructure change or enhancement package:native_assets_cli package:native_assets_builder labels Apr 10, 2024
@mosuem mosuem changed the base branch from main to addLinkingScript April 10, 2024 15:25
@mosuem mosuem marked this pull request as ready for review April 12, 2024 11:59
@mosuem mosuem requested a review from dcharkes April 15, 2024 11:48
Copy link
Collaborator

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add linking for native_toolchain_c and linux

[native_toolchain_c] Linker support for Linux

Base automatically changed from addLinkingScript to main May 8, 2024 13:31
@github-actions github-actions bot added type-infra A repository infrastructure change or enhancement package:native_assets_cli labels Jul 18, 2024
@github-actions github-actions bot removed the type-infra A repository infrastructure change or enhancement label Jul 18, 2024
@mosuem mosuem requested a review from dcharkes July 23, 2024 14:52
@github-actions github-actions bot added the type-infra A repository infrastructure change or enhancement label Jul 25, 2024
Copy link
Collaborator

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also need to do cross arch, not only cross OS. Please add support/tests or an unsupported error.

I think after that it's good to merge! 🚀

pkgs/native_toolchain_c/test/clinker/throws_test.dart Outdated Show resolved Hide resolved
pkgs/native_toolchain_c/test/clinker/throws_test.dart Outdated Show resolved Hide resolved
pkgs/native_toolchain_c/test/clinker/treeshake_test.dart Outdated Show resolved Hide resolved
@mosuem mosuem requested a review from dcharkes July 26, 2024 13:46
@dcharkes dcharkes changed the title Add linking for native_toolchain_c and linux [native_toolchain_c] Add linking on Linux Jul 26, 2024
@auto-submit auto-submit bot merged commit 7339ed1 into main Jul 29, 2024
37 checks passed
@auto-submit auto-submit bot deleted the exposeLinkFromCtoolchain branch July 29, 2024 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants