This also fixes breakage on darwin due to LLVM4.0 migration.
I had to enable opengl because otherwise macOS build is broken.
See root commit 23f8871c7 ('Do not include OpenGL directly but use our
TGLIncludes for that purpose.')
I've enabled xml because TUnfold depends on it.
Original error:
$ nix-shell -p jekyll --command "jekyll new test"
Running bundle install in /private/tmp/test...
Bundler: There was an error while trying to write to
Bundler:
`/nix/store/l67429rhvrmr7c4c1msb7s8zjq4fx7ad-gemfile-and-lockfile/.bundle/config`.
Bundler: It is likely that you need to grant write permissions for
that path.
1) Replace --system-libclang with an explicit setting for the path to
nix libclang 3.9. Otherwise it will find system's libclang on darwin.
2) Remove clang/llvm from build inputs. This prevents ycm itself from
being compiled by clang 3.9. stdenv's standard compiler (gcc or
clang 3.7) will suffice.
3) Enable C++11 again as #16212 is caused by incopatibility between
clang 3.9 and libc++ 3.7, but we don't compile YCM with clang 3.9, so
this is not needed anymore.
Modern compiler will issue a following error whenever '#include <string>'
is done:
/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1938:44:
error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification 'noexcept(is_nothrow_copy_constructible<allocator_type>::value)'
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
^
/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1326:40:
note: previous declaration is here
_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
^
1 error generated.
This happens because modern clang is more strict about checking
exception specification for forward declaration and definition.
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?r1=242056&r2=242623&diff_format=h
Without this one gets a lot of build time warnings like:
ld: warning: object file (/tmp/strip.2OzFn8) was built for newer OSX
version (10.9) than being linked (10.7)
Compiling Fl_cocoa.mm...
Fl_cocoa.mm:4079:30: error: use of undeclared identifier 'version'; did
you mean 'Fl::version'?
NSOperatingSystemVersion version = [[NSProcessInfo processInfo]
operatingSystemVersion];
^~~~~~~
Fl::version
../FL/Fl.H:262:17: note: 'Fl::version' declared here
static double version();
^
Fl_cocoa.mm:4079:5: error: use of undeclared identifier
'NSOperatingSystemVersion'
NSOperatingSystemVersion version = [[NSProcessInfo processInfo]
operatingSystemVersion];
^
Fl_cocoa.mm:4080:9: error: use of undeclared identifier 'version'
M = version.majorVersion;
^
Fl_cocoa.mm:4081:9: error: use of undeclared identifier 'version'
m = version.minorVersion;
^
Fl_cocoa.mm:4082:9: error: use of undeclared identifier 'version'
b = version.patchVersion;
^
5 errors generated.
* move compiler detection logic from nix to bash
* robust inheritance of isGNU/isClang
Fixes: d3274e8ae3 ('ccache: support clang in ccache.links')
Fixes: 634824d50b ('ccache: fix references to stdenv.cc.cc.isClang')
1) add pcre dependency (for some reason builtin_pcre doesn't work)
2) Disable dependencies that are currently not supported by the
expression. Most users should not need those. These are disabled to
prevent cmake from picking them up from system and causing impurities.
Once there is a user who needs these they will have to update the
expression.
3) disable some OSX detection code that relies on /usr/bin/sw_vers
that chooses c++ library, silences warnings and sets macosx-version-min.
macosx-version-min is already set by nix using MACOSX_DEPLOYMENT_TARGET
environment variable.
root: compile against external gsl
Revert "Revert "root: enable parallel building""
This reverts commit ee1a10ee6b.
ROOT has no problems with parallel build. The problems that caused the
original commit were not related to parallel building.