[MacPorts] #47904: cmake @3.2.2_0: variants are a confusing mess
MacPorts
noreply at macports.org
Sat May 30 19:04:08 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
Keywords: | Port: cmake
----------------------+-------------------------
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.
--
Ticket URL: <https://trac.macports.org/ticket/47904>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list