Skip to content
This repository was archived by the owner on Jun 25, 2020. It is now read-only.

How to select which executable to run #339

Open
underdoeg opened this issue Jun 20, 2017 · 12 comments
Open

How to select which executable to run #339

underdoeg opened this issue Jun 20, 2017 · 12 comments

Comments

@underdoeg
Copy link

I have the following CMakeLists.txt:

FILE(GLOB_RECURSE SOURCES "src/*")
add_executable(server ${SOURCES})

## SAMPLE APP
FILE(GLOB_RECURSE SOURCES_SAMPLE "sample/*")
add_executable(sample ${SOURCES_SAMPLE})

Compile and Run opens the server executable. Is there a way to select which one is executed?

@eidheim
Copy link
Member

eidheim commented Jun 20, 2017

It should depend on which buffer is active, but if a file is used in two executables, the first executable is selected. You can however use Set Run Arguments in the Build/Debug menu.

@underdoeg
Copy link
Author

Thanks. Set run argument worked for me. The active buffer did always open the first project. Even when only having the main.cpp of the second executable open.

@eidheim
Copy link
Member

eidheim commented Jun 20, 2017

Thank you, I think I got this fixed in eidheim@99cb3f6. Pushing this commit to master in a few days, but feel free to try it out.

@underdoeg
Copy link
Author

Yes that almost works for me. It does detect the right executable now but tries to run it in a subfolder. So samples tries to open an executable at build/sample/sample instead of build/sample and server is trying to execute build/src/server.
selection_238

@eidheim
Copy link
Member

eidheim commented Jun 21, 2017

Thank you, I'll have a look at this and figure out where I messed up. build/src/server is correct I take it or?

@eidheim
Copy link
Member

eidheim commented Jun 21, 2017

Oh never mind, both sample and server executables lies within the build folder. I'll fix this in a day or so.

edit: typo

@eidheim
Copy link
Member

eidheim commented Jun 21, 2017

I think the issue is fixed in eidheim@786b6b8.

@underdoeg
Copy link
Author

yes that works! thanks. Only "issue" now is that I have another directory with code that is compiled to a static lib which is shared between sample and server. When I have one of those files open, then nothing is executed. (Propably because it is a static lib?) Would be nice if the IDE remembered my last exec and then run this instead?

@eidheim
Copy link
Member

eidheim commented Jun 22, 2017

Commits fixing the original issue above is pushed to master, but leaving this issue open a bit further for discussion on how to chose executable when for instance working on an library.

@underdoeg
Copy link
Author

I feel like having some sort of drop down selector that lists all available executables would be the most intuitive? first option could be auto which behaves the way it does now.

@eidheim
Copy link
Member

eidheim commented Jan 25, 2018

For the time being you can use Set Run Arguments in the Project menu to set project wide executable that will be run no matter which file you have open.

Regarding providing alternatives, I would have to add this to my TODO list. If it was only for Meson project, it would be easy, but the issue is within CMake projects since it is harder to identify executables here. The reason behind the CMake difficulties is that one would have to parse all CMakeLists.txt files in the project, not only the ones in the source folder and its parents. On the other hand, with Meson, one could merely look into the build/compile_commands.json file.

@eidheim
Copy link
Member

eidheim commented Feb 5, 2018

The Run Arguments settings are now also stored between sessions: 8a4cab0

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants