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

Maxim, STM32 makefiles overwrite VS Code configuration files #2181

Closed
trupples opened this issue May 14, 2024 · 1 comment
Closed

Maxim, STM32 makefiles overwrite VS Code configuration files #2181

trupples opened this issue May 14, 2024 · 1 comment

Comments

@trupples
Copy link
Contributor

Behaviour

The $(PROJECT_TARGET)_configure targets in tools/scripts/stm32.mk and tools/scripts/maxim.mk use the GNU Make file function to set up a default VS Code configuration for projects, with no regard to the contents of those files.

$(PROJECT_TARGET)_configure:
$(file > $(CPP_PROP_JSON),$(CPP_FINAL_CONTENT))
$(file > $(SETTINGSJSON),$(VSC_SET_CONTENT))
$(file > $(LAUNCHJSON),$(VSC_LAUNCH_CONTENT))
$(file > $(TASKSJSON),$(VSC_TASKS_CONTENT))

For context, the content of the files is generated in vsc_intellisense.mk, vsc_openocd_debug.mk, and vsc_tasks.mk.

Impact

With the current makefiles, one may not change their VS Code config without it being reset to the no-OS defaults during the next build, which greatly hinders development. For instance, my WSL dev setup requires changing the gdb options in launch.json, but doing so is futile because the makefile resets my changes when building.

Options

I suggest (and will shortly open a PR) adding a condition to only write to these files if they are empty or don't exist (i.e., during project setup), but keep their current content otherwise, to allow for customization of the config.

Despite some effort, I didn't manage to do it using just GNU Make syntax, but rather by changing the file call from filename.json to filename.json.default, and having some shell commands conditionally copy filename.json.default to filename.json if the latter doesn't exist. Finally, shell commands remove the .default files to keep the directory tidy.

trupples added a commit to trupples/no-OS that referenced this issue May 14, 2024
Referencing issue analogdevicesinc#2181. $(PROJECT_TARGET)_configure targets in maxim.mk and stm32.mk
don't check if .vscode config files already exist and forcefully overwrite them with
the defaults during every build.

This adds some shell commands to only write the defaults if the files don't exist or
are empty = when setting up the project = when we actually need those defaults.

Signed-off-by: Ioan Dragomir <ioan.dragomir@analog.com>
dbogdan pushed a commit that referenced this issue May 21, 2024
Referencing issue #2181. $(PROJECT_TARGET)_configure targets in maxim.mk and stm32.mk
don't check if .vscode config files already exist and forcefully overwrite them with
the defaults during every build.

This adds some shell commands to only write the defaults if the files don't exist or
are empty = when setting up the project = when we actually need those defaults.

Signed-off-by: Ioan Dragomir <ioan.dragomir@analog.com>
@CiprianRegus
Copy link
Contributor

The commits were merged.

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

No branches or pull requests

2 participants