mapbox / mapnik-vector-tile

Mapnik implemention of Mapbox Vector Tile specification
BSD 3-Clause "New" or "Revised" License
552 stars 117 forks source link

Unable to build on MacOS #292

Closed robhawkes closed 5 years ago

robhawkes commented 5 years ago

I'm having some trouble installing on MacOS using the instructions in the readme. The Mac is only a few days old so there shouldn't be much else that could pollute the installation.

I've included the logs below. Any ideas?

➜ make
./install_mason.sh
* Downloading binary package https://mason-binaries.s3.amazonaws.com/headers/protozero/1.6.4.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/protozero/1.6.4
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/protozero/1.6.4
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/protozero/1.6.4
* Downloading binary package https://mason-binaries.s3.amazonaws.com/headers/geometry/1.0.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/geometry/1.0.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/geometry/1.0.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/geometry/1.0.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/headers/wagyu/0.4.3.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/wagyu/0.4.3
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/wagyu/0.4.3
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/wagyu/0.4.3
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/protobuf/3.5.1.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/protobuf/3.5.1
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/protobuf/3.5.1
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/protobuf/3.5.1
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/jpeg_turbo/1.5.2.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/jpeg_turbo/1.5.2
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/jpeg_turbo/1.5.2
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/jpeg_turbo/1.5.2
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/libpng/1.6.32.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libpng/1.6.32
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libpng/1.6.32
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libpng/1.6.32
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/libtiff/4.0.8.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libtiff/4.0.8
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libtiff/4.0.8
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libtiff/4.0.8
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/icu/58.1-brkitr.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/icu/58.1-brkitr
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/icu/58.1-brkitr
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/icu/58.1-brkitr
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/proj/4.9.3.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/proj/4.9.3
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/proj/4.9.3
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/proj/4.9.3
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/pixman/0.34.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/pixman/0.34.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/pixman/0.34.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/pixman/0.34.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/cairo/1.14.8.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/cairo/1.14.8
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/cairo/1.14.8
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/cairo/1.14.8
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/webp/0.6.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/webp/0.6.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/webp/0.6.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/webp/0.6.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/libgdal/2.2.3.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libgdal/2.2.3
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libgdal/2.2.3
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/libgdal/2.2.3
* Downloading binary package https://mason-binaries.s3.amazonaws.com/headers/boost/1.66.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/boost/1.66.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/boost/1.66.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/headers/boost/1.66.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/boost_libsystem/1.66.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libsystem/1.66.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libsystem/1.66.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libsystem/1.66.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/boost_libfilesystem/1.66.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libfilesystem/1.66.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libfilesystem/1.66.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libfilesystem/1.66.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/boost_libregex_icu58/1.66.0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libregex_icu58/1.66.0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libregex_icu58/1.66.0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/boost_libregex_icu58/1.66.0
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/freetype/2.7.1.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/freetype/2.7.1
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/freetype/2.7.1
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/freetype/2.7.1
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/harfbuzz/1.4.4-ft.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/harfbuzz/1.4.4-ft
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/harfbuzz/1.4.4-ft
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/harfbuzz/1.4.4-ft
* Downloading binary package https://mason-binaries.s3.amazonaws.com/osx-x86_64/mapnik/abcd96be0.tar.gz
* Installed binary package at /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/mapnik/abcd96be0
* Linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/mapnik/abcd96be0
* Links will be inside /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/
* Using bash fallback for symlinking (GNU cp needed for faster symlinking)
* Done linking /Users/hawkro/Documents/mapnik-vector-tile/mason_packages/osx-x86_64/mapnik/abcd96be0
CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 " /Applications/Xcode.app/Contents/Developer/usr/bin/make release_base
CXXFLAGS="-isystem `pwd`/mason_packages/.link/include -D_GLIBCXX_USE_CXX11_ABI=0 " \
         LDFLAGS="-L`pwd`/mason_packages/.link/lib " \
         PATH="`pwd`/mason_packages/.link/bin/:/Users/hawkro/.nvm/versions/node/v10.15.1/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" \
         BUILDTYPE=Release /Applications/Xcode.app/Contents/Developer/usr/bin/make build/Makefile
Looking for mapnik-config on your PATH...
mapnik-config -v
4.0.0
git clone https://chromium.googlesource.com/external/gyp.git ./deps/gyp && cd ./deps/gyp && git checkout 3464008
Cloning into './deps/gyp'...
remote: Sending approximately 12.05 MiB ...
remote: Total 18403 (delta 11400), reused 18403 (delta 11400)
Receiving objects: 100% (18403/18403), 12.05 MiB | 15.08 MiB/s, done.
Resolving deltas: 100% (11400/11400), done.
Note: checking out '3464008'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 34640080 ninja/posix: Introduce support for arflags variable.
deps/gyp/gyp gyp/build.gyp -Denable_sse=true --depth=. -DMAPNIK_PLUGINDIR=\"/Users/hawkro/Documents/mapnik-vector-tile/mason_packages/.link/lib/mapnik/input\" -Goutput_dir=. --generator-output=./build -f make
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C build/ V=
  ACTION gyp_build_gyp_make_vector_tile_target_run_protoc Release/obj/gen/vector_tile.pb.cc
  TOUCH Release/obj.target/gyp/make_vector_tile.stamp
  CXX(target) Release/obj.target/vector_tile/gen/vector_tile.pb.o
  LIBTOOL-STATIC Release/libvector_tile.a
  CXX(target) Release/obj.target/mapnik_vector_tile_impl/src/vector_tile_raster_clipper.o
  CXX(target) Release/obj.target/mapnik_vector_tile_impl/src/vector_tile_processor.o
In file included from ../src/vector_tile_processor.cpp:2:
In file included from ../src/vector_tile_processor.ipp:4:
In file included from ../src/vector_tile_geometry_simplifier.hpp:6:
../src/vector_tile_douglas_peucker.hpp:193:58: error: reinterpret_cast from scalar 'std::size_t' (aka 'unsigned long') to vector '__m64'
      (vector of 1 'long long' value) of different size
        __m128d md_idx = _mm_castsi128_pd(_mm_set1_epi64(reinterpret_cast<__m64>(i)));
                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/vector_tile_douglas_peucker.hpp:200:61: error: reinterpret_cast from scalar 'unsigned long' to vector '__m64' (vector of 1 'long long' value) of
      different size
            __m128d it_idx = _mm_castsi128_pd(_mm_set_epi64(reinterpret_cast<__m64>(i+1), reinterpret_cast<__m64>(i)));
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/vector_tile_douglas_peucker.hpp:200:91: error: reinterpret_cast from scalar 'std::size_t' (aka 'unsigned long') to vector '__m64'
      (vector of 1 'long long' value) of different size
            __m128d it_idx = _mm_castsi128_pd(_mm_set_epi64(reinterpret_cast<__m64>(i+1), reinterpret_cast<__m64>(i)));
                                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
make[3]: *** [Release/obj.target/mapnik_vector_tile_impl/src/vector_tile_processor.o] Error 1
make[2]: *** [build/Makefile] Error 2
make[1]: *** [release_base] Error 2
make: *** [release] Error 2
flippmoke commented 5 years ago

For some reason it seems that gyp is wanting to build the latest version of xcode as i386 rather then x86_64. This the reason for this occurring. I am attempting to determine the best way to fix this currently.

flippmoke commented 5 years ago

@robhawkes please confirm this fix works -- you might need to make distclean first after the update from #293

robhawkes commented 5 years ago

Looks like that worked, thanks!