gradle / gradle-native

The home of Gradle's support for natively compiled languages
https://blog.gradle.org/introducing-the-new-cpp-plugins
Apache License 2.0
92 stars 8 forks source link

Native import via Tooling API for build with varied operating system and architecture #919

Closed big-guy closed 5 years ago

big-guy commented 5 years ago

Expected Behavior

Current Behavior

Context

Steps to Reproduce (for bugs)

Your Environment

lacasseio commented 5 years ago

For this issue, I added test coverage for libraries and application: https://github.com/gradle/gradle/pull/8090

I'm unsure how we want to expose the architecture name and operating system as they both not used by anyone or anything really. Clion behaves properly with the current tooling API.

big-guy commented 5 years ago

I think the other important thing to check here is what happens when you have a project that targets multiple OSes or does not target the host.

adammurdoch commented 5 years ago

The answers to these questions should be the same for all IDE integrations, that is for Xcode, VS, tapi, and whatever we add later. So, if we add some tests for this for the tapi model, perhaps also add the same tests for Xcode and VS.

lacasseio commented 5 years ago

The answer to the questions are:

  • Do you see all of the choices? I think you don't/shouldn't.

Partly, if the operating system match, then we try to "realize" all the architecture for the specific operating system. If the architecture isn't buildable by any toolchain, the import will simply fail. Any operating system that isn't the current host is ignored.

If the project does not target the host OS, do you have any choices?

If there aren't any buildable options, nothing is shown in Clion. The import succeeds but shows nothing can be built.

To answer's @adammurdoch questions, the experience is no the same for Xcode with regards to the first question. The IDE plugin creates a bit of a broken Xcode workspace. I haven't try VS. We should address this as a separate issue. There's already some overlapping issue with this work on the board. Let's stick for this one to add the test coverage and fix anything deeper than the test coverage as part of another issue.