-
Notifications
You must be signed in to change notification settings - Fork 460
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
Incorrect run folder #1395
Comments
I am not sure that this makes sense, but can provide a simple patch:
|
Test snippet code:
|
Will this work for |
For 'run without debug'
|
Thank you a lot! This is just what I need. Should I send a PR for it? |
Yes, please test it out and send a PR. We will be happy to review it. |
Done! |
Closed by #1397. |
This is available in 1.4.2 |
@bobbrow How can that behavior be changed again (For both debug and normal run) e.g. in the That change completely messed up my setup, because I have a huge amount of data located in my working directory that I don't want to copy to my build directories. |
You should be able to override the working directory with the setting:
|
@bobbrow thank you for the fast response, it works now in debug with the settings
|
@bobbrow Yes, I know how to change that. Thanks again. |
@grapland0, it is bad practice to use files relative to the source folder and not expected behavior. Just use configure_file to copy data that will be used by the application / unit tests. {
"version": "0.2.0",
"configurations": [
{
"name": "CMake Launch",
"type": "cppdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
}
]
} And you can choose a target using this plugin and run the selected target by the built-in VSCode commands. |
I think it is more important(and urgent) that this change breaks existing setups. Current user of this plugin will find its target failed to run mysteriously, and has to spend minutes or hours to find the root cause. Furthermore I don't think using files relative to the current workspace is a bad practice. At *nix, when you start anything executable, the working folder is by-default your current folder, not the folder that executable installed in. |
I agree. This is not good. When I suggested this, I didn't think that someone was using the path relative to the source code folder.
But here I cannot agree. In other IDE the launch path is always executable folder. |
@Shatur95 @grapland0 it is not that uncommon in the field of research (But I agree that the default should be the build directory). My project code and the data are versioned with GIT and LFS in one project folder (to keep everything consistent and reproducible), copying all the data to a build directory, especially if you have a distinct build directory for debugging and release to save compilation time, is really time and space consuming (roughly 500k files with a total size of 80GB). Furthermore, changes to the data that are written back by the application, should then be tracked in the VCS again, which is another problem if the data is copied to the build directory. Another possibility would be to create a config file with CMake, and set there the working directory as a config value and read that when the application is started. But in any IDE I used it was not a problem to set the working directory for Debug and Release builds, so there was never a need for that and as of that the change came quite unexpected. Using the |
Yes, unfortunately toolbar run button are from plugin and executes target not from |
Brief Issue Summary
Running application from
CMake: Run without debugging
andCMake: Debug
uses project project workspace folder as run directory instead of the application build directory.Expected:
CMake: Run without debugging
${workspaceRoot}/build/gui/app.exe
runned in${workspaceRoot}/build/gui/
)This how it works in QtCreator.
Apparent Behavior:
It runs in the workspace folder. This is very unconvinient because project may use plugins that need to be taken from executable folder.
Platform and Versions
The text was updated successfully, but these errors were encountered: