forked from Slicer/SlicerGitSVNArchive
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ENH: Create a functional install target
Update Artichoke to commontk/Artichoke@b0cf6fc85d5a. Use new ExternalProject_Install_CMake to install external projects when doing a superbuild build of slicer, so that there is a functional install target for the same. This change is made synchronously with the merge of commontk/CTK#466 which no longer installs QtTesting to the build tree, and instead installs it as part of the install target for CTK; thus, SlicerBlockInstallQtTesting.cmake is (and indeed, must be, as there is no longer an install path being exported) removed. At least on Fedora, this is sufficient to produce a Slicer that can be successfully run after building the 'install' target.
- Loading branch information
1 parent
be6b4d4
commit 97679dd
Showing
13 changed files
with
215 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mentioned
no longer installs QtTesting to the build tree, and instead installs it as part of the install target for CTK
, it probably mean that CTK install rule like the one in [1] should be changed to deal with the superbuild folder instead of the inner build one. Indeed, the install script statement like [2] are only added in the superbuild.should be changed into
Same remarks for
Slicer/CMake/SlicerBlockInstallCMakeProjects.cmake
Line 65 in 97679dd
[1]
Slicer/CMake/SlicerCPack.cmake
Line 24 in 97679dd
[2] https://github.com/mwoehlke-kitware/CTK/blob/8a0a9c7d96495d946f2f6913be13a20b61779498/CMakeExternals/QtTesting.cmake#L71
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest we keep the installation of QtTesting. Use of
ExternalProject_Install_CMake
should impact the only the superbuild project and not the inner build one.97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Obviously we want it installed. Do you mean to keep
SlicerBlockInstallQtTesting.cmake
and instead rewrite it to work from the build dir like e.g.SlicerBlockInstallPythonQt.cmake
? Or are you still proposing to make the changes as in your previous comment?If the latter, should SlicerBlockInstallPythonQt.cmake also go away? (And similar for anything else we get via CTK superbuild?)
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, right... PythonQt is still locally installed. In general, I'm not in favor of doing that unnecessarily (i.e. I'm not fond of CTK doing local installs only for Slicer's benefit). IIRC it wasn't as trivial to use PythonQt from the build dir, but now I'm not sure how much time I actually spent looking at it, vs. that I knew QtTesting is usable from the build dir.
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean by having
SlicerBlockInstallQtTesting.cmake
work from the build dir ?Both [SlicerBlockInstallQtTesting.cmake](https://github.com/Slicer/Slicer/blob/master/CMake/SlicerBlockInstallQtTesting.cmake and) and SlicerBlockInstallPythonQt.cmake are already doing the same things.
For the approach where we installed from Superbuild tree,
SlicerBlockInstallPythonQt.cmake
would have to be removed. This implies that both QtTesting and PythonQt have their libraries associated with components.To clarify things, are you trying to
make install
working from:I am assuming you addressed the Superbuild folder case ?
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re 97679dd#commitcomment-6406562
Let's not change how project are used, can we keep that for later ? That means we would have to an insane amount of testing on MacOSX and windows ... and I don't feel comfortable doing such change now.
97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Disregard this (seem my other comment).
Yes; to install slicer and all requisite dependencies built as part of the superbuild.
I don't expect this to install any external dependencies, but only slicer itself. To at least that extent, it is already working, and at least VTK and CTK must be separately installed (as expected). However, I'm not entirely clear where the
package
target picks up external dependencies, since it exists here and not in the superbuild.97679dd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CPack provide you with a variable named
CPACK_INSTALL_CMAKE_PROJECTS
allowing to specify additional project to install. For example see [1] and [2]On MacOSX, we install only the executable and plugins and we let the fixup script copying over dependencies.
[1] https://github.com/Slicer/Slicer/blob/daeeacad1b60300f866fe3ae2a1172609ea32052/CMake/SlicerCPack.cmake#L24
[2] https://github.com/Slicer/Slicer/blob/master/CMake/SlicerBlockInstallCMakeProjects.cmake