Skip to content

The active Launch Target is now saved in the ICBuildConfiguration #1076

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

Merged
merged 2 commits into from
Feb 12, 2025

Conversation

betamaxbandit
Copy link
Contributor

In addition to the active launch mode and toolchain, the active Launch Target is now used to determine the Core Build Configuration (ICBuildConfiguration).

The build output folder name now ends with the name of the Launch Target (eg: cmake.debug.win32.x86_64.Local)

Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-016 Launch Targets used in ICBuildConfiguration

Copy link

github-actions bot commented Feb 4, 2025

Test Results

   635 files  +   35     635 suites  +35   35m 43s ⏱️ + 22m 17s
11 427 tests +1 220  11 284 ✅ +1 100  143 💤 +120  0 ❌ ±0 
11 442 runs  +1 197  11 301 ✅ +1 079  141 💤 +118  0 ❌ ±0 

Results for commit 73ea9ae. ± Comparison against base commit f0c74ed.

♻️ This comment has been updated with latest results.

jonahgraham

This comment was marked as resolved.

@betamaxbandit

This comment was marked as resolved.

@jonahgraham

This comment was marked as resolved.

@betamaxbandit

This comment was marked as resolved.

jonahgraham

This comment was marked as resolved.

@betamaxbandit

This comment was marked as outdated.

jonahgraham

This comment was marked as resolved.

betamaxbandit

This comment was marked as outdated.

In addition to the active launch mode and toolchain, the active Launch
Target is now used to determine the Core Build Configuration
(ICBuildConfiguration).

The build output folder name now ends with the name of the Launch Target
(eg: cmake.debug.win32.x86_64.Local)

Additionally, API added to allow the ISV to configure the build output
folder name.

The ICBuildConfigurationProvider implementations, shown below, have been
tidied up to use common code.

  CMakeBuildConfigurationProvider
  AutotoolsBuildConfigurationProvider
  MakefileBuildConfigurationProvider
  MesonBuildConfigurationProvider

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-016 Launch
Targets used in ICBuildConfiguration
Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-018 Build
output folder name
@betamaxbandit

This comment was marked as resolved.

@betamaxbandit

This comment was marked as resolved.

@betamaxbandit
Copy link
Contributor Author

@jonahgraham ,

I see the "Code Cleanliness Checks / build (pull_request) Failing after 3m" job failed for my PR, but in the detail I don't see what the problem is. Can you help please?

@betamaxbandit betamaxbandit marked this pull request as ready for review February 11, 2025 21:52
Copy link
Member

@jonahgraham jonahgraham left a comment

Choose a reason for hiding this comment

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

@betamaxbandit There are a few small changes which I will apply manually. Please have a look and let me know if they are ok. And if so I will merge them

I did test autotools and it looks fine.

/*
* Note, this extra test uses getName on CBuildConfiguration rather than the API ICBuildConfiguration
*/
String name = cbc.getName();
Copy link
Member

Choose a reason for hiding this comment

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

Is this the place you were mentioning that you wanted me to check about use of non-API?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, that's it

@jonahgraham
Copy link
Member

@betamaxbandit here is a link to to my application of the changes in the review tab. It can also be seen by clicking on the commit in the timeline above:

image

Copy link
Contributor Author

@betamaxbandit betamaxbandit left a comment

Choose a reason for hiding this comment

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

LGTM.
Hi @jonahgraham ,
thank you for all your suggestions. I agree with all of them.
I see "Apply review comments", but can't click it.
Please go ahead and commit these if that is what you meant.
Thanks John

@betamaxbandit
Copy link
Contributor Author

@betamaxbandit There are a few small changes which I will apply manually. Please have a look and let me know if they are ok. And if so I will merge them

I did test autotools and it looks fine.

Great, thank you. I'm happy with all the changes you suggest.
Thanks for testing autotools.

@jonahgraham jonahgraham added the noteworthy Pull requests and fixed issues that should be highlighted to users label Feb 12, 2025
@jonahgraham jonahgraham added this to the 12.0.0 M3 milestone Feb 12, 2025
@jonahgraham
Copy link
Member

@betamaxbandit I think this is ready to squash and merge. Let me know when you are done your final check.

@betamaxbandit
Copy link
Contributor Author

@betamaxbandit I think this is ready to squash and merge. Let me know when you are done your final check.

Hi @jonahgraham ,
I've tested the latest commit and all looks fine. Please go ahead and merge.

@jonahgraham jonahgraham merged commit fc083da into eclipse-cdt:main Feb 12, 2025
5 of 6 checks passed
@jonahgraham
Copy link
Member

Thanks @betamaxbandit for this significant contribution.

@betamaxbandit betamaxbandit deleted the IDE-82683-REQ-016 branch February 12, 2025 19:37
betamaxbandit added a commit to betamaxbandit/cdt that referenced this pull request Feb 13, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other projects the build output folder is
sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR eclipse-cdt#1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-024 Default
CMake build folder
betamaxbandit added a commit to betamaxbandit/cdt that referenced this pull request Feb 18, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other Core Build projects the build output
folder is sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR eclipse-cdt#1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-024 Default
CMake build folder
betamaxbandit added a commit to betamaxbandit/cdt that referenced this pull request Feb 18, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other Core Build projects the build output
folder is sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR eclipse-cdt#1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-024 Default
CMake build folder
betamaxbandit added a commit to betamaxbandit/cdt that referenced this pull request Feb 19, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other Core Build projects the build output
folder is sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR eclipse-cdt#1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-024 Default
CMake build folder
jonahgraham pushed a commit to betamaxbandit/cdt that referenced this pull request Feb 20, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other Core Build projects the build output
folder is sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR eclipse-cdt#1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements eclipse-cdt#1000, IDE-82683-REQ-024 Default
CMake build folder
jonahgraham pushed a commit that referenced this pull request Feb 20, 2025
The default IBuildConfiguration is no longer used by projects that use
ICBuildConfigurationProvider.

For CMake, Makefile and other Core Build projects the build output
folder is sometimes named "default" rather than the pattern
toolName.launchMode.toolchain OS.toolchain Arch.launchTarget Id (eg:
cmake.debug.win32.x86_64.Local). PR #1076 exposes new API
(ICBuildConfigurationProvider.getCBuildConfigName) to encourage this
naming pattern.

The "sometimes" is variable and often happens when a project is first
created when the active launch target is Local and the launch mode is
"run", but not always. This gives a random, inconsistent impression to
CDT.

The Platform project always contains a IBuildConfiguration with the name
IBuildConfiguration.DEFAULT_CONFIG_NAME. It seems the original Core
Build system design went to some length to fit in with this and always
make use of this IBuildConfiguration when pairing it with a new
ICBuildConfiguration.

With this PR, this no longer happens, allowing CDT code to be simplified
and the build folder naming made consistent, always adhering to
ICBuildConfigurationProvider.getCBuildConfigName.

Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-024 Default
CMake build folder
@jonahgraham jonahgraham modified the milestones: 12.0.0 M3, 12.0.0 Mar 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
noteworthy Pull requests and fixed issues that should be highlighted to users
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants