[MacPorts] #47904: cmake @3.2.2_0: variants are a confusing mess
MacPorts
noreply at macports.org
Sat May 30 19:04:51 PDT 2015
#47904: cmake @3.2.2_0: variants are a confusing mess
-----------------------+-------------------------
Reporter: larryv@… | Owner: michaelld@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.3
Resolution: | Keywords:
Port: cmake |
-----------------------+-------------------------
Description changed by larryv@…:
Old description:
> I won’t mince words: `cmake`’s variants make no sense. Half of them only
> exist if one of the other half are selected. This is not discoverable at
> all, and I suspect most users only realize that they had a choice after
> they install `cmake`.
>
> ----
>
> Say I want to install CMake.
> {{{
> % port variants cmake
> cmake has the variants:
> docs: Build documentation: HTML and manpages
> gui: Build Qt-based cmake-gui
> universal: Build for multiple architectures
> }}}
>
> Looks like I have three choices. Cool. I decide to build cmake-gui and
> the documentation.
> {{{
> % sudo port install cmake +docs +gui
> ---> Computing dependencies for cmake
> The following dependencies will be installed:
> dbus
> lcms
> libmng
> py27-alabaster
> py27-babel
> py27-docutils
> py27-jinja2
> py27-pygments
> py27-roman
> py27-six
> py27-snowballstemmer
> py27-sphinx
> py27-sphinx_rtd_theme
> py27-tz
> python27
> qt4-mac
> sphinx_select
> Continue? [Y/n]:
> }}}
>
> Eh. Maybe I already have Python 3.4 installed, and I’d rather not install
> Python 2.7, but it doesn’t look like I have a choice, so I’ll just go
> with it. But the `+gui` variant seems to require `qt4-mac`. What if I
> have `qt5-mac` installed? Those conflict, so I guess I’ll just go without
> the GUI.
>
> Except that that wasn’t necessary at all. Turns out I do have choices,
> but they’re utterly undiscoverable. I’d have to check the list variants
> //after already selecting a variant//, which is something I never think
> to do.
> {{{
> % port variants cmake +docs +gui
> cmake has the variants:
> +docs: Build documentation: HTML and manpages
> +gui: Build Qt-based cmake-gui
> [+]python27: Build documentation using Sphinx from Python 2.7
> * conflicts with python34
> python34: Build documentation using Sphinx from Python 3.4
> * conflicts with python27
> [+]qt4: Build Qt GUI using Qt4
> * conflicts with qt5
> qt5: Build Qt GUI using Qt5
> * conflicts with qt4
> universal: Build for multiple architectures
> }}}
>
> `cmake` should eliminate this weird two-level thing and instead present
> all its variants up front. Something like this.
> {{{
> % port variants cmake
> cmake has the variants:
> docs_py27: Build HTML docs and manpages using Sphinx from Python 2.7
> * conflicts with docs_py34
> docs_py34: Build HTML docs and manpages using Sphinx from Python 3.4
> * conflicts with docs_py27
> gui_qt4: Build cmake-gui with Qt4
> * conflicts with gui_qt5
> gui_qt5: Build cmake-gui with Qt5
> * conflicts with gui_qt4
> universal: Build for multiple architectures
> }}}
>
> ----
>
> No patch to offer, I’m afraid. Sorry for the anticlimax. Feel free to let
> this lie fallow until I whip up something.
New description:
I won’t mince words: `cmake`’s variants make no sense. Half of them only
exist if one of the other half are selected. This is not discoverable at
all, and I suspect most users only realize that they had a choice after
they install `cmake`.
----
Say I want to install CMake.
{{{
% port variants cmake
cmake has the variants:
docs: Build documentation: HTML and manpages
gui: Build Qt-based cmake-gui
universal: Build for multiple architectures
}}}
Looks like I have three choices. Cool. I decide to build cmake-gui and the
documentation.
{{{
% sudo port install cmake +docs +gui
---> Computing dependencies for cmake
The following dependencies will be installed:
dbus
lcms
libmng
py27-alabaster
py27-babel
py27-docutils
py27-jinja2
py27-pygments
py27-roman
py27-six
py27-snowballstemmer
py27-sphinx
py27-sphinx_rtd_theme
py27-tz
python27
qt4-mac
sphinx_select
Continue? [Y/n]:
}}}
Eh. Maybe I already have Python 3.4 installed, and I’d rather not install
Python 2.7, but it doesn’t look like I have a choice, so I’ll just go with
it. But the `+gui` variant seems to require `qt4-mac`. What if I have
`qt5-mac` installed? Those conflict, so I guess I’ll just go without the
GUI.
Except that that wasn’t necessary at all. Turns out I do have choices, but
they’re utterly undiscoverable. I’d have to check the list of variants
//after already selecting a variant//, which is something I never think to
do.
{{{
% port variants cmake +docs +gui
cmake has the variants:
+docs: Build documentation: HTML and manpages
+gui: Build Qt-based cmake-gui
[+]python27: Build documentation using Sphinx from Python 2.7
* conflicts with python34
python34: Build documentation using Sphinx from Python 3.4
* conflicts with python27
[+]qt4: Build Qt GUI using Qt4
* conflicts with qt5
qt5: Build Qt GUI using Qt5
* conflicts with qt4
universal: Build for multiple architectures
}}}
`cmake` should eliminate this weird two-level thing and instead present
all its variants up front. Something like this.
{{{
% port variants cmake
cmake has the variants:
docs_py27: Build HTML docs and manpages using Sphinx from Python 2.7
* conflicts with docs_py34
docs_py34: Build HTML docs and manpages using Sphinx from Python 3.4
* conflicts with docs_py27
gui_qt4: Build cmake-gui with Qt4
* conflicts with gui_qt5
gui_qt5: Build cmake-gui with Qt5
* conflicts with gui_qt4
universal: Build for multiple architectures
}}}
----
No patch to offer, I’m afraid. Sorry for the anticlimax. Feel free to let
this lie fallow until I whip up something.
--
--
Ticket URL: <https://trac.macports.org/ticket/47904#comment:1>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list