[CMake] Issues trying to use the Anaconda compiler tools with CMake

Ray Donnelly mingw.android at gmail.com
Wed Aug 15 04:57:07 EDT 2018


Docker is unnecessary overhead here and irrelevant to the question of which
compilers to use when building conda packages (use ours or risk binary
incompatibility with the rest of the ecosystems, please do not attempt to
use e.g. CentOS6 system compilers to compile modern software either!). Docker
doesn't come with modern compilers patched to support things like c++17 on
CentOS6, they are also slow and to not mitigate against Spectre.

Our compilation story is very good. We use fully isolated pdeudo cross
compilers that both target and run on CentOS6 in Linux and our own builds
of clang on macOS. We repackage CentOS6 rpms into the compiler sysroot for
the few packages that link to system libs.

I like and use for docker but conda has its own story here and docker and
compiler technology are orthogonal in this regard. To t, I still use our
computers on docker.

I honestly believe the isolation fans sometimes go far to far though and
will accept a lot of unnecessary complication and overhead chasing this
goal. Sufficient isolation is possible in other ways.

For testing the packages though (on Linux targets) I love using docker. I
can make sure our conda packages work on all the OSes we support.

You can if you want use our compilers in docker but it's pretty pointless
(and routing conda package building thorough something like docker is a
requirement the community, conda forge in particular does not need).

I dream of a day when docker is seen as one great tool with lots of useful
applications instead of the solution to everything but I don't see it
coming anytime soon.

On Aug 15, 2018 9:29 AM, "Eric Noulard" <eric.noulard at gmail.com> wrote:



Le mar. 14 août 2018 à 20:38, Sebastián Mancilla <smancill at jlab.org> a
écrit :

> I wanted to try Conda for normal day-to-day C++ development, while having
> all the dependencies isolated from other projects and the base system.
>
> - Change the sources
> - Build
> - Run the tests
> - Repeat
>

Hi Sebastian,

Just curious on why you would prefer conda over "real" container technology
like docker or rkt for the kind of usage you describe ?
Do you ultimately want to distribute your software as conda packages?

I'm not proficient in conda but AFAIK docker (or rkt) offers easier/better
isolation for the usage you describe.
The side-effect being that inside your container cmake should behave like
as expected.
At least this is my own experience.

Some people even try to automatize the container creation out of conda
packaged software:
https://github.com/BioContainers/mulled
I have no experience with that whatsoever, I usually craft my own
dockerfile and work with that.

If your goal includes the distrubution of your software as conda package
may be you can get in touch with people
at conda-forge: https://conda-forge.org/#about, I bet they build a lot of
cmake-based projects in there and may
have experienced same caveats with the conda compilers usage.


-- 
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180815/53eb3734/attachment-0001.html>


More information about the CMake mailing list