gjtorikian / mathematical

Convert mathematical equations to SVGs, PNGs, or MathML. A general wrapper to Lasem and mtex2MML.
https://gjtorikian.github.io/mathematical/
MIT License
166 stars 31 forks source link

Failed to build native extensions on macos 10.14.3 #89

Closed harrygallagher4 closed 4 years ago

harrygallagher4 commented 5 years ago

When I try to install this gem on macos 10.14.3 it seems that it can't find glib. I've tried using the system lasem which fixes the gem install, but actually using the mathematical gem still doesn't work.

Here's what I'm assuming is the important part of the output:

[100%] Linking C shared library liblasem.dylib
ld: library not found for -lglib-2.0
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [liblasem.dylib] Error 1
make[1]: *** [CMakeFiles/lasem.dir/all] Error 2
make: *** [all] Error 2
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

glib is installed, and package config can find it

> pkg-config --cflags --libs glib-2.0
-I/usr/local/Cellar/glib/2.58.3/include/glib-2.0 -I/usr/local/Cellar/glib/2.58.3/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pcre/8.43/include -L/usr/local/Cellar/glib/2.58.3/lib -L/usr/local/opt/gettext/lib -lglib-2.0 -lintl -Wl,-framework -Wl,CoreFoundation
> ruby --version
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]

> gem --version
2.7.6

Full gem install output:

Building native extensions. This could take a while...
ERROR:  Error installing mathematical:
    ERROR: Failed to build gem native extension.

    current directory: /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical
/Users/harry/.rbenv/versions/2.5.3/bin/ruby -r ./siteconf20190227-13149-8ueogw.rb extconf.rb
checking for cmake... yes
checking for -lxml2... yes
checking for -lpangocairo-1.0... yes
checking for libxml/tree.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2... no
checking for libxml/parser.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2... no
checking for libxml/xpath.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2... no
checking for libxml/xpathInternals.h in /include/libxml2,/usr/include/libxml2,/usr/local/include/libxml2... no
-- The C compiler identification is AppleClang 10.0.0.10001044
-- The CXX compiler identification is AppleClang 10.0.0.10001044
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found BISON: /usr/bin/bison (found version "2.3") 
-- Found FLEX: /usr/bin/flex (found version "2.5.35") 
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found PythonInterp: /usr/local/bin/python (found version "2.7.15") 
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/mtex2MML/build
[ 10%] [FLEX][MTEX2MMLSCANNER] Building scanner with flex 2.5.35
[ 20%] [BISON][MTEX2MMLPARSER] Building parser with bison 2.3
conflicts: 5280 shift/reduce, 613 reduce/reduce
Scanning dependencies of target libmtex2MML_static
[ 30%] Building C object CMakeFiles/libmtex2MML_static.dir/src/colors.c.o
[ 40%] Building C object CMakeFiles/libmtex2MML_static.dir/src/em.c.o
[ 50%] Building C object CMakeFiles/libmtex2MML_static.dir/src/environment.c.o
[ 60%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_dup.c.o
[ 70%] Building C object CMakeFiles/libmtex2MML_static.dir/src/string_extras.c.o
[ 80%] Building C object CMakeFiles/libmtex2MML_static.dir/parser.c.o
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/mtex2MML/src/parser.y:56:30: warning: unused parameter 'ret_str' [-Wunused-parameter]
 static void yyerror (char **ret_str, const char * s)
                             ^
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/mtex2MML/src/parser.y:68:14: warning: unused function 'mtex2MML_default_write' [-Wunused-function]
 static void mtex2MML_default_write (const char * buffer, unsigned long length)
             ^
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/mtex2MML/src/parser.y:79:14: warning: unused function 'mtex2MML_default_write_mathml' [-Wunused-function]
 static void mtex2MML_default_write_mathml (const char * mathml)
             ^
3 warnings generated.
[ 90%] Building C object CMakeFiles/libmtex2MML_static.dir/lexer.c.o
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/mtex2MML/build/lexer.c:8203:16: warning: function 'input' is not needed and will not be emitted [-Wunneeded-internal-declaration]
    static int input  (void)
               ^
1 warning generated.
[100%] Linking C static library libmtex2MML.a
[100%] Built target libmtex2MML_static
-- The C compiler identification is AppleClang 10.0.0.10001044
-- The CXX compiler identification is AppleClang 10.0.0.10001044
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.58.3
-- Checking for module 'cairo'
--   Found cairo, version 1.16.0
-- Checking for module 'pango'
--   Found pango, version 1.42.4
-- Checking for module 'gdk-pixbuf-2.0'
--   Found gdk-pixbuf-2.0, version 2.38.0
-- Checking for module 'libxml-2.0'
--   Found libxml-2.0, version 2.9.9
-- Checking for module 'gio-2.0'
--   Found gio-2.0, version 2.58.3
-- Checking for module 'pangocairo'
--   Found pangocairo, version 1.42.4
-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   lasem

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/lasem/build
Scanning dependencies of target lasem
[  0%] Building C object CMakeFiles/lasem.dir/lasem/src/lsm.c.o
[  1%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmattributes.c.o
[  2%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmcairo.c.o
[  3%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdebug.c.o
[  4%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomcharacterdata.c.o
[  5%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomdocument.c.o
[  6%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomdocumentfragment.c.o
[  7%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomelement.c.o
[  8%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomentities.c.o
[  9%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomimplementation.c.o
[  9%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomnamednodemap.c.o
[ 10%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomnode.c.o
[ 11%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomnodelist.c.o
[ 12%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomparser.c.o
[ 13%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomtext.c.o
[ 14%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmdomview.c.o
[ 15%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlactionelement.c.o
[ 16%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlaligngroupelement.c.o
[ 17%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlalignmarkelement.c.o
[ 18%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlattributes.c.o
[ 18%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmldocument.c.o
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/lasem/src/lsmmathmldocument.c:259:52: warning: passing 'gssize *' (aka 'long *') to parameter of type 'gsize *' (aka 'unsigned long *') converts between pointers to integer types with different sign [-Wpointer-sign]
        if (!g_file_load_contents (file, NULL, &contents, &size, NULL, error))
                                                          ^~~~~
/usr/local/Cellar/glib/2.58.3/include/glib-2.0/gio/gfile.h:1190:36: note: passing argument to parameter 'length' here
                                              gsize                  *length,
                                                                      ^
1 warning generated.
[ 19%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlelement.c.o
[ 20%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlencloseelement.c.o
[ 21%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlenums.c.o
[ 22%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlerrorelement.c.o
[ 23%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlfencedelement.c.o
[ 24%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlfractionelement.c.o
[ 25%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlglyphtableams.c.o
[ 26%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlitexelement.c.o
[ 27%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmllayoututils.c.o
[ 27%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlmathelement.c.o
[ 28%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmloperatordictionary.c.o
[ 29%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmloperatorelement.c.o
[ 30%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlpaddedelement.c.o
[ 31%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlphantomelement.c.o
[ 32%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlpresentationcontainer.c.o
[ 33%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlpresentationtoken.c.o
[ 34%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlradicalelement.c.o
[ 35%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlrowelement.c.o
[ 36%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlscriptelement.c.o
[ 36%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlsemanticselement.c.o
[ 37%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlspaceelement.c.o
[ 38%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlstringelement.c.o
[ 39%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlstyle.c.o
[ 40%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlstyleelement.c.o
[ 41%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmltablecellelement.c.o
[ 42%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmltableelement.c.o
[ 43%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmltablerowelement.c.o
[ 44%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmltraits.c.o
[ 45%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlunderoverelement.c.o
[ 45%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlutils.c.o
[ 46%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmmathmlview.c.o
[ 47%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmproperties.c.o
[ 48%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmstr.c.o
[ 49%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgaelement.c.o
[ 50%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgcircleelement.c.o
[ 51%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgclippathelement.c.o
[ 52%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgcolors.c.o
[ 53%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgdefselement.c.o
[ 54%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgdocument.c.o
[ 54%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgelement.c.o
[ 55%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgellipseelement.c.o
[ 56%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgenums.c.o
[ 57%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterblend.c.o
[ 58%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltercolormatrix.c.o
[ 59%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltercomposite.c.o
[ 60%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterconvolvematrix.c.o
[ 61%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterdisplacementmap.c.o
[ 62%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterelement.c.o
[ 63%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterflood.c.o
[ 63%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltergaussianblur.c.o
[ 64%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterimage.c.o
[ 65%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltermerge.c.o
[ 66%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltermergenode.c.o
[ 67%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltermorphology.c.o
[ 68%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilteroffset.c.o
[ 69%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterprimitive.c.o
[ 70%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterspecularlighting.c.o
[ 71%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltersurface.c.o
[ 72%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfiltertile.c.o
[ 72%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgfilterturbulence.c.o
[ 73%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvggelement.c.o
[ 74%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvggradientelement.c.o
[ 75%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgimageelement.c.o
[ 76%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvglength.c.o
[ 77%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvglineargradientelement.c.o
[ 78%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvglineelement.c.o
[ 79%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgmarkerelement.c.o
[ 80%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgmaskelement.c.o
[ 81%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgmatrix.c.o
[ 81%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgpathelement.c.o
[ 82%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgpatternelement.c.o
[ 83%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgpolygonelement.c.o
[ 84%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgpolylineelement.c.o
[ 85%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgradialgradientelement.c.o
[ 86%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgrectelement.c.o
[ 87%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgstopelement.c.o
[ 88%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgstyle.c.o
[ 89%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgsvgelement.c.o
[ 90%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgswitchelement.c.o
[ 90%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgsymbolelement.c.o
[ 91%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgtextelement.c.o
[ 92%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgtraits.c.o
[ 93%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgtransformable.c.o
[ 94%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgtspanelement.c.o
[ 95%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvguseelement.c.o
[ 96%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmsvgview.c.o
[ 97%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmtraits.c.o
[ 98%] Building C object CMakeFiles/lasem.dir/lasem/src/lsmutils.c.o
[ 99%] Building C object CMakeFiles/lasem.dir/lasem_overrides.c.o
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/lasem_overrides.c:20:54: warning: control reaches end of non-void function [-Wreturn-type]
lsm_itex_to_mathml (const char *itex, gssize size) { }
                                                     ^
1 warning generated.
[100%] Linking C shared library liblasem.dylib
ld: library not found for -lglib-2.0
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [liblasem.dylib] Error 1
make[1]: *** [CMakeFiles/lasem.dir/all] Error 2
make: *** [all] Error 2
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/harry/.rbenv/versions/2.5.3/bin/$(RUBY_BASE_NAME)
    --with-xml2lib
    --without-xml2lib
    --with-pangocairo-1.0lib
    --without-pangocairo-1.0lib
    --use-system-mtex2MML
    --use-system-lasem
/Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1227:in `stat': No such file or directory @ rb_file_s_stat - /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12/ext/mathematical/lasem/build/liblasem.dylib (Errno::ENOENT)
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1227:in `lstat'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1256:in `copy'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:418:in `block in copy_entry'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1390:in `wrap_traverse'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:415:in `copy_entry'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:393:in `block in cp_r'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1463:in `block in fu_each_src_dest'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1477:in `fu_each_src_dest0'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:1461:in `fu_each_src_dest'
    from /Users/harry/.rbenv/versions/2.5.3/lib/ruby/2.5.0/fileutils.rb:392:in `cp_r'
    from extconf.rb:98:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-18/2.5.0-static/mathematical-1.6.12/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/mathematical-1.6.12 for inspection.
Results logged to /Users/harry/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-18/2.5.0-static/mathematical-1.6.12/gem_make.out
gjtorikian commented 5 years ago

Hmm. I have the same platform, and cmake clearly sees that glib-2.0 is installed... I am not sure what the problem could be.

I don't think this is a fix, but could you clone this repository and try running bundle exec compile ?

jtkorb commented 5 years ago

I'm having the same (or similar) problem. I tried cloning the repository and running bundle exec compile, but got an error...

bundler: command not found: compile
Install missing gem executables with `bundle install`

Not sure what I need to install.

mimoo commented 4 years ago

Same here, cannot build it, it seems to be because of libxml which it cannot find in /include/libxml which makes sense as there is no /include directory in macos

jtkorb commented 4 years ago

I needed to do these two things to get mathematical to install...

  1. Fix the MacOS header file location by running this command in a terminal window: open Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

  2. Add the Homebrew package path to PKG_CONFIG_PATH (e.g., in .bash_profile): export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

gjtorikian commented 4 years ago

What version(s) of macOS are you all running? I wonder if some recent updates changed directory locations.

jtkorb commented 4 years ago

The problem appears to have started with an include directory reorg in some version of MacOS 10.14.x and/or Xcode 10. There is a discussion in the Xcode 10 release notes. It's a weird problem because it only seems to affect users who installed Xcode and Mojave, including their upgrades, in a particular sequence.

gjtorikian commented 4 years ago

Well that's just super. 😞 Thanks for the doc link. I'll see if I can suss out a fix as well.

harrygallagher4 commented 4 years ago

Oh, wow I totally forgot I opened this issue. I wish I could be more help but a few days after this I tried compiling again and it worked fine, same for just installing the gem. Also, I had already installed the headers @jtkorb linked when I first ran into this :\

lorrden commented 4 years ago

This is a major problem now since Catalina does not supply the workaround package to install the system headers in /usr/include.

This is triggered when looking for the libxml-headers among other things as the search paths for headers specified in the script do not exist on macOS anymore: To get the correct paths for searching you should look in the sysroot produced by xcrun --show-sdk-path (under which you will find usr/include including the libxml2 headers).