diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2018-05-29 12:28:14 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2018-06-04 10:43:21 +0200 |
commit | 0b305aca7de0c95e54bdfe26c342e4dce77f10bb (patch) | |
tree | 5fa16b39cb463a70a22d971ebd00647c2931c174 | |
parent | be66de6fcda643872311b21ba8fd5abc8302fc3e (diff) | |
download | qtlocation-mapboxgl-0b305aca7de0c95e54bdfe26c342e4dce77f10bb.tar.gz |
[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.
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | platform/linux/config.cmake | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c2f7134de7..7306179c25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.4) project(mbgl LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) -option(WITH_CXX11ABI "Use cxx11abi mason packages" OFF) +option(WITH_CXX11ABI "Use the C++11 ABI" OFF) option(WITH_COVERAGE "Enable coverage reports" OFF) option(WITH_OSMESA "Use OSMesa headless backend" OFF) option(WITH_EGL "Use EGL backend" OFF) diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake index 53683daef0..57411f916d 100644 --- a/platform/linux/config.cmake +++ b/platform/linux/config.cmake @@ -99,6 +99,14 @@ macro(mbgl_platform_core) target_link_libraries(mbgl-core PUBLIC -lz ) + + if(WITH_CXX11ABI) + # Statically link libstdc++ when we're using the new STL ABI + target_link_libraries(mbgl-core + PUBLIC -static-libstdc++ + PUBLIC -Wl,-Bsymbolic-functions + ) + endif() endmacro() |