Skip to content

Fix build presets with multiple targets #332

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 1 commit into from
Aug 8, 2025

Conversation

bornabesic
Copy link
Contributor

If a build preset from CMakePresets.json contained multiple targets, BuildPreset:get_build_target would concatenate target names into a single string which would be used as a single command line argument. The build system, such as Ninja, would then complain that the specified target is unknown.

This change modifies BuildPreset:get_build_target to return a table of targets instead, which is then unpacked after CMake's --target flag. That way, each target is a separate command line argument and the build system executes a proper multi-target build.

If a build preset from CMakePresets.json contained multiple
targets, BuildPreset:get_build_target would concatenate target
names into a single string which would be used as a single command
line argument. The build system, such as Ninja, would then
complain that the specified target is unknown.

This change modifies BuildPreset:get_build_target to return a
table of targets instead, which is then unpacked after CMake's
--target flag. That way, each target is a separate command line
argument and the build system executes a proper multi-target build.
@bornabesic bornabesic force-pushed the fix-build-preset-targets branch from 51251d7 to a06fb54 Compare July 27, 2025 21:26
@lceWolf lceWolf merged commit 90e4f16 into Civitasv:master Aug 8, 2025
2 checks passed
@lceWolf
Copy link
Collaborator

lceWolf commented Aug 8, 2025

lgtm. Thanks for your contribution

@bornabesic bornabesic deleted the fix-build-preset-targets branch August 9, 2025 07:35
lceWolf pushed a commit to lceWolf/cmake-tools.nvim that referenced this pull request Aug 11, 2025
PR Civitasv#332 introduced handling for multiple targets. Yet, old session data
still has the build_target stored as string resulting in an error when
trying to unpack the string when forming the --target arg.
This PR fixes this issue by converting old session data to the new
format, if needed
lceWolf pushed a commit that referenced this pull request Aug 11, 2025
PR #332 introduced handling for multiple targets. Yet, old session data
still has the build_target stored as string resulting in an error when
trying to unpack the string when forming the --target arg.
This PR fixes this issue by converting old session data to the new
format, if needed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants