https://bugs.kde.org/show_bug.cgi?id=363184

            Bug ID: 363184
           Summary: reinstate building the default make target in project
                    subdirs
           Product: kdevelop
           Version: git master
          Platform: Compiled Sources
                OS: All
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: Buildtools: Make
          Assignee: kdevelop-bugs-n...@kde.org
          Reporter: rjvber...@gmail.com

KDevelop 4.x has a convenient feature where you can issue a build command (via
hotkey, context menu or the toplevel menu) with  a project's subdirectory
selected in the project manager. If the project uses Makefiles and one exists
in that particular directory, only the default target at that level would be
built. The implementation as far as I understand it from feedback in the Build
view is extremely simple: 

1) chdir into the target subdir
2) call make

Reproducible: Always

Steps to Reproduce:
1. Open a project that uses Unix Makefiles
2. Select a directory containing a Makefile (as indicated by the different
folder icon)
3. Issue a build command

Actual Results:  
KDevelop 4.7.3 will build only the source under the selected subdir, possibly
after building any dependencies from elsewhere in the project (depending on
whether that's required and the required information is available, which is
usually the case for CMake-based projects)

KDevelop 5 (4.90x) simply builds the full project

Expected Results:  
KDevelop 4.7 has the preferred behaviour, which is also the behaviour I'd
expect from a GUI IDE.

As pointed out on the mailing list, it is still possible to select a target in
the subdir of interest and build that. There are however several reasons why
the possibility of building a default target would be convenient - in addition
to the aforementioned fact that it's what you'd expect from a point-and-click
interface where you select an item and tell it to build :

1) building a target requires the targets to be visible, which is done via a
small icon at the top of the project manager
2) it isn't always that trivial to know what the default target is (or else
what specific target to build after a point edit), even in projects you
authored yourself after a certain time has passed
3) this is all the more true for autoconf based projects which tend to have
sometimes incredibly long lists of targets - per subdirectory.
4) finding the target of choice in a long scroll list isn't a very efficient
process, ditto for finding source files (IOW, long lists of build targets, say
more than 5 or 6 are best kept hidden).

As mentioned above, there shouldn't be any need for advanced parsing to
determine the default target. Executing the make command in the selected
directory should give the expected behaviour automatically (or else produce a
sufficiently clear error message).
The implementation thus seems something that doesn't require intimate knowledge
of KDevelop's internal architecture, and something I should be able to do in
parallel to my other occupations. 

I think I'd just need some pointers to figure out:
- the classes and/or files that require changes (cmake, qmake, custom make
project managers, which others, or is there a subclassed generic interface that
could provide the feature?)
- how to obtain the selected subdir in the method that handles the build
action.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to