Emerge: Add --compile-fast option
AbandonedPublic

Authored by kfunk on Dec 30 2015, 11:42 PM.

Details

Summary

This simple skips the make step (useful in case make install already
takes care of executing targets part of a simple make invocation)

Diff Detail

Lint
No Linters Available
Unit
No Unit Test Coverage
kfunk updated this revision to Diff 1676.Dec 30 2015, 11:42 PM
kfunk retitled this revision from to Emerge: Add --compile-fast option.
kfunk updated this object.
kfunk edited the test plan for this revision. (Show Details)
vonreth added inline comments.Dec 31 2015, 10:56 AM
bin/EmergeBase.py
94

I would Prefer Compilefast, I once wanted to rename all vars but its so much effort.
But it would bne great if new variables don't look like env vars but like CamelCase ini settings :) .

kfunk added inline comments.Dec 31 2015, 11:29 AM
bin/EmergeBase.py
94

Can do. Rest okay? Then I'll push

vonreth accepted this revision.Dec 31 2015, 11:34 AM
vonreth edited edge metadata.
vonreth added inline comments.
bin/EmergeBase.py
94

Ship it!

This revision is now accepted and ready to land.Dec 31 2015, 11:34 AM
sengels requested changes to this revision.Jan 1 2016, 10:59 PM
sengels edited edge metadata.

hey, hey, stop, stop. There might be a better solution:
CMake itself has a target nmake install/fast which doesn't retest whether files have been modified and simply runs the install step.
I am against the change in this way, for the following reasons:

  1. Your option doesn't "compile fast" but simply skips the make step (and redoes it in the install step)
  2. If you would have that option enabled, running emerge --compile will result in emerge --configure only (which I would call broken)
  3. If you run emerge --qmerge you would get make, install, and qmerge at the same time.

My proposal would be instead:

  1. Make emerge --install more flexible: If you run it inside e.g. emerge packagename, it should simply run nmake install/fast instead of nmake install.
  2. find an option that does the most useful step: run make, and install the executables into the kderoot: as this is the behaviour a normal!!! nmake install would have if you'd run it inside the build directory, we could do this from inside emerge as well.

Based on that last idea, we could also stop using image directories for vanilla cmake packages (those that do not make modifications in their build directory), and thus make the qmerge step for those packages a null operation.

This revision now requires changes to proceed.Jan 1 2016, 10:59 PM
kfunk added a comment.Jan 1 2016, 11:29 PM
In D725#13659, @sengels wrote:

hey, hey, stop, stop. There might be a better solution:
CMake itself has a target nmake install/fast which doesn't retest whether files have been modified and simply runs the install step.
I am against the change in this way, for the following reasons:

  1. Your option doesn't "compile fast" but simply skips the make step (and redoes it in the install step)
  2. If you would have that option enabled, running emerge --compile will result in emerge --configure only (which I would call broken)
  3. If you run emerge --qmerge you would get make, install, and qmerge at the same time.

    My proposal would be instead:
  4. Make emerge --install more flexible: If you run it inside e.g. emerge packagename, it should simply run nmake install/fast instead of nmake install.
  5. find an option that does the most useful step: run make, and install the executables into the kderoot: as this is the behaviour a normal!!! nmake install would have if you'd run it inside the build directory, we could do this from inside emerge as well. Based on that last idea, we could also stop using image directories for vanilla cmake packages (those that do not make modifications in their build directory), and thus make the qmerge step for those packages a null operation.

For the record:

I've reverted this change, I've just found EMERGE_NOFAST=False, which has the similar effect, but is implement in a much cleaner way.

Thanks for your remarks.

kfunk abandoned this revision.Jan 3 2016, 5:39 PM

Got reverted.