Commit Graph

99 Commits

Author SHA1 Message Date
Konstantin Käfer
98cc7c6c5f [build] upgrade minimum CMake version 2019-01-21 17:00:31 +01:00
Jason Wray
9d7b774960 [core, build] Use -Os for RelWithDebInfo darwin builds
This makes a 17% difference in binary size.
2018-12-05 12:34:39 -05:00
Konstantin Käfer
a0b8f01c1b [build] use newer compiler versions for some builds 2018-11-28 14:49:44 +01:00
Bruno de Oliveira Abinader
00c71c89cb [build] Set C++11 ABI on by default 2018-11-26 12:42:14 +02:00
Bruno de Oliveira Abinader
06a51713f6 [build] Set CMAKE_EXPORT_COMPILE_COMMANDS=ON by default 2018-11-26 12:42:14 +02:00
Konstantin Käfer
f30429832e [build] use GLFW as a submodule and update to most recent version
this fixes https://github.com/glfw/glfw/issues/1334 for macOS Mojave
2018-11-21 10:12:59 +01:00
Ander Conselvan de Oliveira
ca21cedb84 [build] Use clcache in appveyor build
clcache is a cache for compiled C and C++ objects similar to ccache but
compatible with Microsoft compilers. Using it should result in faster
builds.
2018-11-01 13:49:15 +02:00
Thiago Marcos P. Santos
69960afb8d [build] Add build system for submodules
Vendorize the submodules and a simple CMake build
system for all them. The dependencies will inherit
compilation options for core.

The goal is to make Mapbox GL Core completely self
contained with a simple offline build.
2018-10-31 18:19:28 +02:00
Konstantin Käfer
282c71e8e9 [core] unify UTF-8/16 conversion to <boost/locale/encoding_utf.hpp> 2018-10-23 12:23:40 +02:00
Konstantin Käfer
30e570aae7 [core] add polyfill for codecvt for STLs that don't have it yet 2018-09-11 11:43:54 +02:00
Konstantin Käfer
679d66f36d [build] use vendored SQLite for LTO benefits + custom compile flags 2018-09-05 12:26:15 +02:00
Konstantin Käfer
1e454642c8 [build] allow WITH_EGL for macOS as well (SwiftShader) and enable EGL for GLFW 2018-08-27 14:07:40 -07:00
Bryan Haber
31bdb74f48 [build] fixed typo in list of configuration types; RelWithDebugInfo should be RelWithDebInfo
- added missing linker flags for Sanitize configuration type
- changed mason's download to use cmake's built-in support instead of directly calling curl
2018-08-20 21:24:12 +02:00
Konstantin Käfer
bded6c65d5 [build] use plain text files for file lists to simplify integration with other build systems 2018-08-20 19:11:31 +02:00
Konstantin Käfer
6e06e55b95 WIP: use expected<T, E> for passing on errors 2018-08-14 17:03:46 -07:00
Ivo van Dongen
946db666b9 [core] support windows compilation with msvc2017 and clang 6 2018-08-07 10:13:19 +03:00
Konstantin Käfer
93d37282d9 [build] organize CMake targets in folders for IDEs 2018-07-17 18:36:17 +02:00
John Firebaugh
ca9ba9cb43 [build] Move all mason_use statements to a single file
So its checksum can be used in a CI cache key name.
2018-07-13 11:50:39 -07:00
Chris Loer
251f5e605f [core, vendor] Create vendored nunicode 1.8.
- Version bump to 1.8 necessary for "unaccent" functionality
- Qt now depends on nunicode, ruling out use of precompiled binaries
2018-07-03 10:03:05 -07:00
Konstantin Käfer
0b305aca7d [linux] statically link the C++ standard library
Most of the STL is header-only anyway, and statically linking it only has a small overhead. On the other hand, it allows us to build more portable executables.
2018-06-04 10:43:21 +02:00
Konstantin Käfer
2694c0df03 [build] disable parts of the build that require node when WITH_NODEJS=OFF is set 2018-05-24 21:50:29 +02:00
Dane Springmeyer
29214902b5 Fix CXX11ABI builds with clang++
The intention of the `WITH_CXX11ABI` option is to allow the user to control toggle whether to compile against the CXX11ABI in libstdc++  (and whether to download a few specific CXX11ABI compatible mason packages as well).

This option is important if you are building binaries (like the node binaries) and you want to support a platform that is older and does not have a recent enough libstdc++ to support the CXX11ABI (like ubuntu:precise, centos6, etc).

But this was broken for clang++ builds due to the use of `MAKE_COMPILER_IS_GNUCXX`. That was preventing the correct flags from being set when using clang++ effectively making the option useless and resulting in the build defaulting to whatever the libstdc++-dev headers default is on the system (which varies per linux distribution based on how libstdc++-dev is packaged).

This fixes the problem by ensuring that clang++ builds still support toggling control over this option.

Note: clang++ > 3.9 supports targeting both the new CXX11ABI in libstdc++ (with `-D_GLIBCXX_USE_CXX11_ABI=1`) and targeting the old one (with `-D_GLIBCXX_USE_CXX11_ABI=0`).
2018-05-02 10:28:40 -07:00
Dane Springmeyer
de8fd3f97b allow disabling -Werror (#11589) 2018-04-19 17:36:19 -04:00
Konstantin Käfer
aba733dc72 [core] update vector-tile dependency to 1.0.1 2018-01-10 22:17:44 -08:00
Thiago Marcos P. Santos
d7d73a26ac [build] Do not override CMake build configuration flags
These flags are set, for instance, by Ninja on Windows.
2018-01-10 21:42:20 +02:00
Thiago Marcos P. Santos
f391271532 [windows][build] Make nodejs/npm optional 2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
6a6b451ac0 [core] Bump Boost version to 1.65.1
Fixes a build error when building for Windows with clang.
2018-01-08 22:58:20 +02:00
Bruno de Oliveira Abinader
f2d781ad55 [build] linux-clang39-debug → linux-clang-3.8-libcxx-debug 2017-12-19 12:20:48 +02:00
Konstantin Käfer
8757164ac8 [build] standardize on -fvisibility=hidden for all targets
Enables -fvisibility=hidden for iOS and Linux, and adds a workaround for GCC 6.3-7.1
Adds a GCC 6 build
Enables diagnostics for C files
Fixes a shadow warning in parsedate.c
2017-11-29 17:31:33 +01:00
Asheem Mamoowala
3067b77c65 [core, ios, macos] Implement unique_any and remove linb::any 2017-11-22 13:56:38 -08:00
Bruno de Oliveira Abinader
0062c7103f [build] Bump earcut to 0.12.4 2017-10-20 00:43:34 +02:00
Asheem Mamoowala
068ed9496c [core] Use geojsonvt 6.3.0 2017-09-28 15:47:21 -07:00
Konstantin Käfer
64c75b442c [build] split out DefaultFileSource and dependents to a separate target
We don't want to link it into the node bindings, so keep it in a separate target
2017-09-28 13:48:36 -04:00
Asheem Mamoowala
a2712f6fa4 Update to gejson 0.4.2 and add StyleParser test to verify that GeoJSON without properties field can be loaded 2017-08-28 15:43:18 -07:00
Thiago Marcos P. Santos
edd7948893 [core] Bump vector-tile to v1.0.0-rc7
This version builds on Android + GCC.
2017-08-08 15:22:59 +03:00
Thiago Marcos P. Santos
d7b5a298d4 [core] Update dependencies
Bump to a new version that old compilers can build.
2017-08-07 17:20:33 +03:00
Jason Wray
05df451f3c [build] Add ccache install reminder and docs (#9520) 2017-07-18 12:36:22 -04:00
Konstantin Käfer
698542cf45 [build] make Xcode use the correct compiler when it is installed in a non-standard location 2017-07-18 11:54:14 +02:00
Bruno de Oliveira Abinader
460643b213 [build] Publish node packages with RelWithDebInfo 2017-07-14 15:28:36 +03:00
Konstantin Käfer
6ca7b28e60 [build] add ccache + Circle CI caching 2017-07-13 15:11:12 +02:00
Konstantin Käfer
92354bdc25 [build] add address, undefined behavior + thread sanitizer 2017-07-13 15:11:12 +02:00
Bruno de Oliveira Abinader
2954a2a40d [build] OSX build fix for GCC 4.9 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
c163402f64 [build] Added Linux GCC 4.9 CI bot 2017-07-12 20:42:29 +03:00
Konstantin Käfer
e364f24570 [build] Don't fail hard for unknown warning groups 2017-07-11 16:23:19 +02:00
Konstantin Käfer
fc48ca1801 [build] use CMake to generate Xcode schemes 2017-07-06 11:45:09 +02:00
Konstantin Käfer
2cc330463d [core] switch to vector-tile library for decoding Mapbox vector tiles 2017-06-21 17:18:08 -07:00
Bruno de Oliveira Abinader
12279b5dcc [glfw] Added extrusions (E) and route (R) shortcuts 2017-06-14 16:39:07 +03:00
John Firebaugh
bb544136f3 [core] Update to shelf-pack 2.1.0 2017-06-13 10:18:43 -07:00
Tobrun
f1598ff07e [core] - bump earcut version dependency to handle unused lamba warning (#9242) 2017-06-12 14:35:08 +02:00
John Firebaugh
d766af44c8 [core] Auto-growable SpriteAtlas using shelf-pack 2017-05-26 11:21:56 -07:00