buildInputs = [ python go cmake ] ++ stdenv.lib.optional stdenv.isDarwin Cocoa; propagatedBuildInputs = stdenv.lib.optional (!stdenv.isDarwin) rustracerd; patches = [ ./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 = '' patchShebangs . substituteInPlace plugin/youcompleteme.vim \ --replace "'ycm_path_to_python_interpreter', '''" "'ycm_path_to_python_interpreter', '${python}/bin/python'" mkdir 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 \ $EXTRA_CMAKE_ARGS make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}} ${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer popd ''; meta = { description = "Fastest non utf-8 aware word and C completion engine for Vim"; homepage = http://github.com/Valloric/YouCompleteMe; license = stdenv.lib.licenses.gpl3; maintainers = with stdenv.lib.maintainers; [marcweber jagajaga]; platforms = stdenv.lib.platforms.unix; };