summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMolly Lloyd <molly@mapbox.com>2018-08-22 10:57:02 -0700
committerMolly Lloyd <mollymerp@users.noreply.github.com>2018-08-31 13:08:47 -0700
commit2cdbe934c2df8e4efbadbda5d20eac0d59d24b05 (patch)
tree4e8c568dd43e92deee97066a14e776702320768d
parent4a5dc37245d23805d13865f5ef9c5f26e539a9ca (diff)
downloadqtlocation-mapboxgl-2cdbe934c2df8e4efbadbda5d20eac0d59d24b05.tar.gz
[windows, qt] fix windows compiler errors, remove tao + tuple polyfill
-rw-r--r--cmake/core-files.txt1
-rw-r--r--cmake/mason-dependencies.cmake1
-rw-r--r--include/mbgl/util/indexed_tuple.hpp19
-rw-r--r--include/mbgl/util/tuple.hpp19
-rw-r--r--platform/node/test/ignores.json1
-rw-r--r--platform/qt/config.cmake2
-rw-r--r--platform/qt/qt.cmake1
7 files changed, 15 insertions, 29 deletions
diff --git a/cmake/core-files.txt b/cmake/core-files.txt
index a1e43d2357..d2bc0b96d8 100644
--- a/cmake/core-files.txt
+++ b/cmake/core-files.txt
@@ -694,7 +694,6 @@ include/mbgl/util/thread.hpp
include/mbgl/util/tileset.hpp
include/mbgl/util/timer.hpp
include/mbgl/util/traits.hpp
-include/mbgl/util/tuple.hpp
include/mbgl/util/type_list.hpp
include/mbgl/util/unitbezier.hpp
include/mbgl/util/util.hpp
diff --git a/cmake/mason-dependencies.cmake b/cmake/mason-dependencies.cmake
index 4a886bef21..f869fe2fdc 100644
--- a/cmake/mason-dependencies.cmake
+++ b/cmake/mason-dependencies.cmake
@@ -49,7 +49,6 @@ elseif(MBGL_PLATFORM STREQUAL "macos")
endif()
elseif(MBGL_PLATFORM STREQUAL "qt")
mason_use(optional VERSION f27e7908 HEADER_ONLY)
- mason_use(tao_tuple VERSION 28626e99 HEADER_ONLY)
if(NOT WITH_QT_DECODERS)
mason_use(libjpeg-turbo VERSION 1.5.0)
diff --git a/include/mbgl/util/indexed_tuple.hpp b/include/mbgl/util/indexed_tuple.hpp
index d1a9e226b1..99d73d1e19 100644
--- a/include/mbgl/util/indexed_tuple.hpp
+++ b/include/mbgl/util/indexed_tuple.hpp
@@ -1,8 +1,8 @@
#pragma once
#include <mbgl/util/type_list.hpp>
-#include <mbgl/util/tuple.hpp>
+#include <tuple>
#include <type_traits>
namespace mbgl {
@@ -24,22 +24,22 @@ template <class...> class IndexedTuple;
// for motivation.
//
template <class... Is, class... Ts>
-class IndexedTuple<TypeList<Is...>, TypeList<Ts...>> : public tuple_polyfill<Ts...> {
+class IndexedTuple<TypeList<Is...>, TypeList<Ts...>> : public std::tuple<Ts...> {
public:
static_assert(sizeof...(Is) == sizeof...(Ts), "IndexedTuple size mismatch");
template <class I>
auto& get() {
- return get_polyfill<TypeIndex<I, Is...>::value>(*this);
+ return std::get<TypeIndex<I, Is...>::value, Ts...>(*this);
}
template <class I>
const auto& get() const {
- return get_polyfill<TypeIndex<I, Is...>::value>(*this);
+ return std::get<TypeIndex<I, Is...>::value, Ts...>(*this);
}
template <class... Us>
- IndexedTuple(Us&&... other) : tuple_polyfill<Ts...>(std::forward<Us>(other)...) {}
+ IndexedTuple(Us&&... other) : std::tuple<Ts...>(std::forward<Us>(other)...) {};
template <class... Js, class... Us>
IndexedTuple<TypeList<Is..., Js...>, TypeList<Ts..., Us...>>
@@ -49,6 +49,15 @@ public:
other.template get<Js>()...
};
}
+
+ // Help out MSVC++
+ bool operator==(const IndexedTuple<TypeList<Is...>, TypeList<Ts...>>& other) const {
+ return static_cast<const std::tuple<Ts...>&>(*this) == static_cast<const std::tuple<Ts...>&>(other);
+ }
+
+ bool operator!=(const IndexedTuple<TypeList<Is...>, TypeList<Ts...>>& other) const {
+ return !(*this == other);
+ }
};
template <class, class T>
diff --git a/include/mbgl/util/tuple.hpp b/include/mbgl/util/tuple.hpp
deleted file mode 100644
index 3f6e80a8c7..0000000000
--- a/include/mbgl/util/tuple.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-// Polyfill needed by Windows because MSVC STL
-// is not compatible with our IndexedTuple code
-#if defined(_WINDOWS)
-
-#include <tao/tuple/tuple.hpp>
-
-#define get_polyfill tao::get
-#define tuple_polyfill tao::tuple
-
-#else
-
-#include <tuple>
-
-#define get_polyfill std::get
-#define tuple_polyfill std::tuple
-
-#endif
diff --git a/platform/node/test/ignores.json b/platform/node/test/ignores.json
index fcc9d88c88..fe6ead7722 100644
--- a/platform/node/test/ignores.json
+++ b/platform/node/test/ignores.json
@@ -40,6 +40,7 @@
"render-tests/fill-extrusion-pattern/literal": "https://github.com/mapbox/mapbox-gl-js/issues/3327",
"render-tests/fill-extrusion-pattern/missing": "https://github.com/mapbox/mapbox-gl-js/issues/3327",
"render-tests/fill-extrusion-pattern/opacity": "https://github.com/mapbox/mapbox-gl-js/issues/3327",
+ "render-tests/fill-extrusion-pattern/feature-expression": "https://github.com/mapbox/mapbox-gl-js/issues/3327",
"render-tests/fill-pattern/update-feature-state": "skip - port https://github.com/mapbox/mapbox-gl-js/pull/6263 - needs issue",
"render-tests/geojson/inline-linestring-fill": "current behavior is arbitrary",
"render-tests/geojson/inline-polygon-symbol": "behavior needs reconciliation with gl-js",
diff --git a/platform/qt/config.cmake b/platform/qt/config.cmake
index 785b3cd76a..5cb622f813 100644
--- a/platform/qt/config.cmake
+++ b/platform/qt/config.cmake
@@ -40,7 +40,6 @@ macro(mbgl_platform_core)
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
target_add_mason_package(mbgl-core PRIVATE optional)
- target_add_mason_package(mbgl-core PRIVATE tao_tuple)
endif()
endmacro()
@@ -56,7 +55,6 @@ macro(mbgl_filesource)
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
target_add_mason_package(mbgl-filesource PRIVATE optional)
- target_add_mason_package(mbgl-filesource PRIVATE tao_tuple)
endif()
endmacro()
diff --git a/platform/qt/qt.cmake b/platform/qt/qt.cmake
index 341c0db45b..323c616a64 100644
--- a/platform/qt/qt.cmake
+++ b/platform/qt/qt.cmake
@@ -160,7 +160,6 @@ elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
)
target_add_mason_package(qmapboxgl PRIVATE optional)
- target_add_mason_package(qmapboxgl PRIVATE tao_tuple)
elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "QNX")
list(APPEND MBGL_QT_CORE_FILES
PRIVATE platform/qt/src/thread.cpp