youcompleteme: fix compilation
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.
This commit is contained in:
parent
2cac374241
commit
f37c7e01d5
|
@ -1309,17 +1309,18 @@ rec {
|
||||||
dependencies = [];
|
dependencies = [];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
python go cmake
|
python go cmake
|
||||||
(if stdenv.isDarwin then llvmPackages.clang else llvmPackages.clang-unwrapped)
|
|
||||||
llvmPackages.llvm
|
|
||||||
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
|
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
|
||||||
|
|
||||||
propagatedBuildInputs = stdenv.lib.optional (!stdenv.isDarwin) rustracerd;
|
propagatedBuildInputs = stdenv.lib.optional (!stdenv.isDarwin) rustracerd;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./patches/youcompleteme/1-top-cmake.patch
|
|
||||||
./patches/youcompleteme/2-ycm-cmake.patch
|
./patches/youcompleteme/2-ycm-cmake.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# YCM requires path to external libclang 3.9
|
||||||
|
# For explicit use and as env variable for ../third_party/ycmd/build.py
|
||||||
|
EXTRA_CMAKE_ARGS="-DEXTERNAL_LIBCLANG_PATH=${llvmPackages.clang.cc}/lib/libclang.${if stdenv.isDarwin then "dylib" else "so"}";
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
substituteInPlace plugin/youcompleteme.vim \
|
substituteInPlace plugin/youcompleteme.vim \
|
||||||
|
@ -1327,9 +1328,10 @@ rec {
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
cmake -G "Unix Makefiles" . ../third_party/ycmd/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7 -DUSE_CLANG_COMPLETER=ON -DUSE_SYSTEM_LIBCLANG=ON
|
cmake -G "Unix Makefiles" . ../third_party/ycmd/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7 -DUSE_CLANG_COMPLETER=ON \
|
||||||
|
$EXTRA_CMAKE_ARGS
|
||||||
make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
|
make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
|
||||||
${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer --system-libclang
|
${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer
|
||||||
popd
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
--- ./third_party/ycmd/cpp/CMakeLists.txt
|
|
||||||
+++ ./third_party/ycmd/cpp/CMakeLists.txt
|
|
||||||
@@ -121,8 +121,8 @@
|
|
||||||
set( CPP11_AVAILABLE true )
|
|
||||||
endif()
|
|
||||||
elseif( COMPILER_IS_CLANG )
|
|
||||||
- set( CPP11_AVAILABLE true )
|
|
||||||
- set( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
|
|
||||||
+ #set( CPP11_AVAILABLE true )
|
|
||||||
+ # set( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
|
|
||||||
set( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
|
|
||||||
endif()
|
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
python go cmake
|
python go cmake
|
||||||
(if stdenv.isDarwin then llvmPackages.clang else llvmPackages.clang-unwrapped)
|
|
||||||
llvmPackages.llvm
|
|
||||||
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
|
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
|
||||||
|
|
||||||
propagatedBuildInputs = stdenv.lib.optional (!stdenv.isDarwin) rustracerd;
|
propagatedBuildInputs = stdenv.lib.optional (!stdenv.isDarwin) rustracerd;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./patches/youcompleteme/1-top-cmake.patch
|
|
||||||
./patches/youcompleteme/2-ycm-cmake.patch
|
./patches/youcompleteme/2-ycm-cmake.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# YCM requires path to external libclang 3.9
|
||||||
|
# For explicit use and as env variable for ../third_party/ycmd/build.py
|
||||||
|
EXTRA_CMAKE_ARGS="-DEXTERNAL_LIBCLANG_PATH=${llvmPackages.clang.cc}/lib/libclang.${if stdenv.isDarwin then "dylib" else "so"}";
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
substituteInPlace plugin/youcompleteme.vim \
|
substituteInPlace plugin/youcompleteme.vim \
|
||||||
|
@ -18,9 +19,10 @@
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
cmake -G "Unix Makefiles" . ../third_party/ycmd/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7 -DUSE_CLANG_COMPLETER=ON -DUSE_SYSTEM_LIBCLANG=ON
|
cmake -G "Unix Makefiles" . ../third_party/ycmd/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7 -DUSE_CLANG_COMPLETER=ON \
|
||||||
|
$EXTRA_CMAKE_ARGS
|
||||||
make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
|
make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
|
||||||
${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer --system-libclang
|
${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer
|
||||||
popd
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue