nixpkgs-suyu/pkgs/tools/text/highlight/default.nix
Alyssa Ross 7e1a3d01d7 highlight: export Perl bindings
Fails to build on Darwin:

clang++ -shared -s highlight_wrap.o  -L../../src/ -lhighlight -L/nix/store/bi85dm5dqzjfm0i9qj3ijjj9w9xayy8w-lua-5.2.4/lib -llua -lm -o highlight.so
ld: warning: option -s is obsolete and being ignored
Undefined symbols for architecture x86_64:
  "_PL_markstack_max", referenced from:
      __wrap_DataDir_getLangPath in highlight_wrap.o
      __wrap_DataDir_getThemePath in highlight_wrap.o
      __wrap_DataDir_getFiletypesConfPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath in highlight_wrap.o
      __wrap_DataDir_guessFileType in highlight_wrap.o
      __wrap_SyntaxReader_initLuaState in highlight_wrap.o
      __wrap_new_RegexElement in highlight_wrap.o
      ...
  "_PL_markstack_ptr", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_DataDir_initSearchDirectories in highlight_wrap.o
      ...
  "_PL_stack_base", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_DataDir_initSearchDirectories in highlight_wrap.o
      ...
  "_PL_stack_sp", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_DataDir_initSearchDirectories in highlight_wrap.o
      ...
  "_PL_sv_immortals", referenced from:
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_1 in highlight_wrap.o
      SWIG_AsVal_bool(sv*, bool*) in highlight_wrap.o
      ...
  "_Perl_croak", referenced from:
      SWIG_croak_null() in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getLangPath in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      ...
  "_Perl_get_sv", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      SWIG_croak_null() in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      ...
  "_Perl_gv_add_by_type", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_gv_init_pvn", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_hv_common", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_hv_common_key_len", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_markstack_grow", referenced from:
      __wrap_DataDir_getLangPath in highlight_wrap.o
      __wrap_DataDir_getThemePath in highlight_wrap.o
      __wrap_DataDir_getFiletypesConfPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath in highlight_wrap.o
      __wrap_DataDir_guessFileType in highlight_wrap.o
      __wrap_SyntaxReader_initLuaState in highlight_wrap.o
      __wrap_new_RegexElement in highlight_wrap.o
      ...
  "_Perl_mg_find", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      _boot_highlight in highlight_wrap.o
  "_Perl_mg_get", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_AsVal_bool(sv*, bool*) in highlight_wrap.o
  "_Perl_newRV_noinc", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_newSV", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_newSV_type", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_newSViv", referenced from:
      __wrap_SyntaxReader_load in highlight_wrap.o
      __wrap_SyntaxReader_getKeywordListGroup in highlight_wrap.o
      __wrap_SyntaxReader_getPersistentSnippetsNum in highlight_wrap.o
      __wrap_SyntaxReader_getOpenDelimiterID in highlight_wrap.o
      __wrap_RegexElement_open_get in highlight_wrap.o
      __wrap_RegexElement_end_get in highlight_wrap.o
      __wrap_RegexElement_capturingGroup_get in highlight_wrap.o
      ...
  "_Perl_newSVuv", referenced from:
      __wrap_SyntaxReader_getRawStringPrefix in highlight_wrap.o
      __wrap_SyntaxReader_getContinuationChar in highlight_wrap.o
      __wrap_RegexElement_kwClass_get in highlight_wrap.o
      __wrap_RegexElement_priority_get in highlight_wrap.o
      __wrap_RegexElement_constraintLineNum_get in highlight_wrap.o
      __wrap_ReGroup_length_get in highlight_wrap.o
      __wrap_ReGroup_kwClass_get in highlight_wrap.o
      ...
  "_Perl_newXS", referenced from:
      _boot_highlight in highlight_wrap.o
  "_Perl_sv_2bool_flags", referenced from:
      SWIG_AsVal_bool(sv*, bool*) in highlight_wrap.o
  "_Perl_sv_2iv_flags", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_AsVal_unsigned_SS_int(sv*, unsigned int*) in highlight_wrap.o
      _boot_highlight in highlight_wrap.o
      SWIG_AsVal_long(sv*, long*) in highlight_wrap.o
      SWIG_AsVal_double(sv*, double*) in highlight_wrap.o
  "_Perl_sv_2mortal", referenced from:
      __wrap_SyntaxReader_load in highlight_wrap.o
      __wrap_SyntaxReader_getRawStringPrefix in highlight_wrap.o
      __wrap_SyntaxReader_getContinuationChar in highlight_wrap.o
      __wrap_SyntaxReader_getKeywordListGroup in highlight_wrap.o
      __wrap_SyntaxReader_getPersistentSnippetsNum in highlight_wrap.o
      __wrap_SyntaxReader_getOpenDelimiterID in highlight_wrap.o
      __wrap_RegexElement_open_get in highlight_wrap.o
      ...
  "_Perl_sv_2nv_flags", referenced from:
      SWIG_AsVal_double(sv*, double*) in highlight_wrap.o
  "_Perl_sv_2pv_flags", referenced from:
      SWIG_croak_null() in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_1 in highlight_wrap.o
      ...
  "_Perl_sv_2uv_flags", referenced from:
      SWIG_AsVal_unsigned_SS_int(sv*, unsigned int*) in highlight_wrap.o
      SWIG_AsVal_long(sv*, long*) in highlight_wrap.o
  "_Perl_sv_bless", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_sv_free2", referenced from:
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_sv_isobject", referenced from:
      SWIG_Perl_ConvertPtr(sv*, void**, swig_type_info*, int) in highlight_wrap.o
      SWIG_croak_null() in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      ...
  "_Perl_sv_magic", referenced from:
      _boot_highlight in highlight_wrap.o
      SWIG_Perl_MakePtr(sv*, void*, swig_type_info*, int) in highlight_wrap.o
  "_Perl_sv_newmortal", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_DataDir_initSearchDirectories in highlight_wrap.o
      ...
  "_Perl_sv_setiv", referenced from:
      _boot_highlight in highlight_wrap.o
  "_Perl_sv_setpvf", referenced from:
      __wrap_DataDir_assocByExtension_set in highlight_wrap.o
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_set in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_set in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_DataDir_initSearchDirectories in highlight_wrap.o
      ...
  "_Perl_sv_setpvn", referenced from:
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_2 in highlight_wrap.o
      ...
  "_Perl_sv_setref_pv", referenced from:
      __wrap_DataDir_assocByExtension_get in highlight_wrap.o
      __wrap_DataDir_assocByFilename_get in highlight_wrap.o
      __wrap_DataDir_assocByShebang_get in highlight_wrap.o
      __wrap_SyntaxReader_getKeywords in highlight_wrap.o
      __wrap_SyntaxReader_getKeywordClasses in highlight_wrap.o
      __wrap_SyntaxReader_getRegexElements in highlight_wrap.o
      __wrap_SyntaxReader_getPersistentSnippets in highlight_wrap.o
      ...
  "_Perl_sv_setsv_flags", referenced from:
      __wrap_DataDir_getLangPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getLangPath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getSystemDataPath in highlight_wrap.o
      __wrap_DataDir_getPluginPath__SWIG_0 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_1 in highlight_wrap.o
      __wrap_DataDir_getThemePath__SWIG_2 in highlight_wrap.o
      ...
ld: symbol(s) not found for architecture x86_64
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
2019-12-20 19:47:42 +00:00

58 lines
1.6 KiB
Nix

{ stdenv, fetchFromGitLab, getopt, lua, boost, pkgconfig, swig, perl, gcc }:
with stdenv.lib;
let
self = stdenv.mkDerivation rec {
pname = "highlight";
version = "3.54";
src = fetchFromGitLab {
owner = "saalen";
repo = "highlight";
rev = "v${version}";
sha256 = "1144qv3c02hd3qrnms9cxfprdmkvz06vy4zjq500wg4iz7r8654m";
};
enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig swig perl ] ++ optional stdenv.isDarwin gcc;
buildInputs = [ getopt lua boost ];
prePatch = stdenv.lib.optionalString stdenv.cc.isClang ''
substituteInPlace src/makefile \
--replace 'CXX=g++' 'CXX=clang++'
'';
preConfigure = ''
makeFlags="PREFIX=$out conf_dir=$out/etc/highlight/ CXX=$CXX AR=$AR"
'';
# This has to happen _before_ the main build because it does a
# `make clean' for some reason.
preBuild = optionalString (!stdenv.isDarwin) ''
make -C extras/swig $makeFlags perl
'';
postCheck = optionalString (!stdenv.isDarwin) ''
perl -Iextras/swig extras/swig/testmod.pl
'';
preInstall = optionalString (!stdenv.isDarwin) ''
mkdir -p $out/${perl.libPrefix}
install -m644 extras/swig/highlight.{so,pm} $out/${perl.libPrefix}
make -C extras/swig clean # Clean up intermediate files.
'';
meta = with stdenv.lib; {
description = "Source code highlighting tool";
homepage = "http://www.andre-simon.de/doku/highlight/en/highlight.php";
platforms = platforms.unix;
maintainers = with maintainers; [ ndowens willibutz ];
};
};
in
if stdenv.isDarwin then self
else perl.pkgs.toPerlModule self