diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-12-11 20:44:52 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-12-11 20:46:31 +0100 |
commit | 776786adddb5a10fb7ae368fdfe32b09e2fbe8b7 (patch) | |
tree | 9a1dd0bdca907b10d499977efd77afef786eb148 /sci-visualization | |
parent | sci-visualization/spyview: Drop old (diff) | |
download | gentoo-776786adddb5a10fb7ae368fdfe32b09e2fbe8b7.tar.gz gentoo-776786adddb5a10fb7ae368fdfe32b09e2fbe8b7.tar.bz2 gentoo-776786adddb5a10fb7ae368fdfe32b09e2fbe8b7.zip |
sci-visualization/spyview: [QA] Move patches to a distfile
Closes: https://bugs.gentoo.org/620630
Diffstat (limited to 'sci-visualization')
4 files changed, 5 insertions, 1262 deletions
diff --git a/sci-visualization/spyview/Manifest b/sci-visualization/spyview/Manifest index 1ef9bbc835bb..4c8bca76ba0e 100644 --- a/sci-visualization/spyview/Manifest +++ b/sci-visualization/spyview/Manifest @@ -1 +1,2 @@ +DIST spyview-20150124-patchset.tar.bz2 8268 BLAKE2B db7a710e2d61ad4f68e9dd31834f855b122b57fa532eb047a5efd7dd02423974f47652e4770144d02a317bf5a50c0ff852fd752ab331bad0c9efe237905916e0 SHA512 615465056df3786e18d5916dea0ad8ebd31c37ddf6531b85c080f53e0d9776c4f7519bd160ca8a0f29343b2f9fad40abef8d6b7194c4e54d6e2e14557562cc49 DIST spyview-20150124.tgz 14772947 BLAKE2B 18d3298e0498c4be91065c8651d379428541f3156ec7f2f0a6970ce5caafaa81da2ff6fbfcca42d77cfffedd293484aad19c7240ab9500e0cf7764cdb5e6ee4c SHA512 63c58c7729ceab9e1bfbb14b5d257a1d4ca51e43f7b014caffc8adf66767c17b47794b34cfc2f754c2905ff926302d66d438a582fe359a6c8d3e04b072993f5b diff --git a/sci-visualization/spyview/files/spyview-20150124-gcc6cxx14-9.patch b/sci-visualization/spyview/files/spyview-20150124-gcc6cxx14-9.patch deleted file mode 100644 index 0c19851d4459..000000000000 --- a/sci-visualization/spyview/files/spyview-20150124-gcc6cxx14-9.patch +++ /dev/null @@ -1,1249 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 5e1cfff..f1d777f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -6,6 +6,9 @@ AC_CONFIG_SRCDIR([spyview/ImageWindow.C]) - AC_CONFIG_HEADER([config.h]) - USER_DIRS - -+# For local macros -+AC_CONFIG_MACRO_DIR([m4]) -+ - # - # Work out our target - # -@@ -27,6 +30,10 @@ AM_CONDITIONAL(WINDOWS,test $windows_target = yes) - AC_PROG_CXX - AC_PROG_CC - AM_PROG_CC_C_O -+ -+# Check for C++11 language standard -+AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory]) -+ - # Check for fluid - AC_PATH_PROG(FLUID,fluid,none) - AC_ARG_VAR(FLUID,[path to executable to compile .fl files]) -diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 -new file mode 100644 -index 0000000..5032bba ---- /dev/null -+++ b/m4/ax_cxx_compile_stdcxx.m4 -@@ -0,0 +1,982 @@ -+# =========================================================================== -+# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) -+# -+# DESCRIPTION -+# -+# Check for baseline language coverage in the compiler for the specified -+# version of the C++ standard. If necessary, add switches to CXX and -+# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) -+# or '14' (for the C++14 standard). -+# -+# The second argument, if specified, indicates whether you insist on an -+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -+# -std=c++11). If neither is specified, you get whatever works, with -+# preference for an extended mode. -+# -+# The third argument, if specified 'mandatory' or if left unspecified, -+# indicates that baseline support for the specified C++ standard is -+# required and that the macro should error out if no mode with that -+# support is found. If specified 'optional', then configuration proceeds -+# regardless, after defining HAVE_CXX${VERSION} if and only if a -+# supporting mode is found. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> -+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com> -+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu> -+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> -+# Copyright (c) 2015 Paul Norman <penorman@mac.com> -+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> -+# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com> -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 7 -+ -+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro -+dnl (serial version number 13). -+ -+AX_REQUIRE_DEFINED([AC_MSG_WARN]) -+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl -+ m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], -+ [$1], [14], [ax_cxx_compile_alternatives="14 1y"], -+ [$1], [17], [ax_cxx_compile_alternatives="17 1z"], -+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$2], [], [], -+ [$2], [ext], [], -+ [$2], [noext], [], -+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl -+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], -+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false], -+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) -+ AC_LANG_PUSH([C++])dnl -+ ac_success=no -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, -+ ax_cv_cxx_compile_cxx$1, -+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [ax_cv_cxx_compile_cxx$1=yes], -+ [ax_cv_cxx_compile_cxx$1=no])]) -+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then -+ ac_success=yes -+ fi -+ -+ m4_if([$2], [noext], [], [dnl -+ if test x$ac_success = xno; then -+ for alternative in ${ax_cxx_compile_alternatives}; do -+ switch="-std=gnu++${alternative}" -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXX="$CXX" -+ CXX="$CXX $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXX="$ac_save_CXX"]) -+ if eval test x\$$cachevar = xyes; then -+ CXX="$CXX $switch" -+ if test -n "$CXXCPP" ; then -+ CXXCPP="$CXXCPP $switch" -+ fi -+ ac_success=yes -+ break -+ fi -+ done -+ fi]) -+ -+ m4_if([$2], [ext], [], [dnl -+ if test x$ac_success = xno; then -+ dnl HP's aCC needs +std=c++11 according to: -+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf -+ dnl Cray's crayCC needs "-h std=c++11" -+ for alternative in ${ax_cxx_compile_alternatives}; do -+ for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do -+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) -+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, -+ $cachevar, -+ [ac_save_CXX="$CXX" -+ CXX="$CXX $switch" -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], -+ [eval $cachevar=yes], -+ [eval $cachevar=no]) -+ CXX="$ac_save_CXX"]) -+ if eval test x\$$cachevar = xyes; then -+ CXX="$CXX $switch" -+ if test -n "$CXXCPP" ; then -+ CXXCPP="$CXXCPP $switch" -+ fi -+ ac_success=yes -+ break -+ fi -+ done -+ if test x$ac_success = xyes; then -+ break -+ fi -+ done -+ fi]) -+ AC_LANG_POP([C++]) -+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then -+ if test x$ac_success = xno; then -+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) -+ fi -+ fi -+ if test x$ac_success = xno; then -+ HAVE_CXX$1=0 -+ AC_MSG_NOTICE([No compiler with C++$1 support was found]) -+ else -+ HAVE_CXX$1=1 -+ AC_DEFINE(HAVE_CXX$1,1, -+ [define if the compiler supports basic C++$1 syntax]) -+ fi -+ AC_SUBST(HAVE_CXX$1) -+ m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])]) -+]) -+ -+ -+dnl Test body for checking C++11 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+) -+ -+ -+dnl Test body for checking C++14 support -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -+) -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 -+) -+ -+dnl Tests for new features in C++11 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ -+ -+// If the compiler admits that it is not ready for C++11, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201103L -+ -+#error "This is not a C++11 compiler" -+ -+#else -+ -+namespace cxx11 -+{ -+ -+ namespace test_static_assert -+ { -+ -+ template <typename T> -+ struct check -+ { -+ static_assert(sizeof(int) <= sizeof(T), "not big enough"); -+ }; -+ -+ } -+ -+ namespace test_final_override -+ { -+ -+ struct Base -+ { -+ virtual void f() {} -+ }; -+ -+ struct Derived : public Base -+ { -+ virtual void f() override {} -+ }; -+ -+ } -+ -+ namespace test_double_right_angle_brackets -+ { -+ -+ template < typename T > -+ struct check {}; -+ -+ typedef check<void> single_type; -+ typedef check<check<void>> double_type; -+ typedef check<check<check<void>>> triple_type; -+ typedef check<check<check<check<void>>>> quadruple_type; -+ -+ } -+ -+ namespace test_decltype -+ { -+ -+ int -+ f() -+ { -+ int a = 1; -+ decltype(a) b = 2; -+ return a + b; -+ } -+ -+ } -+ -+ namespace test_type_deduction -+ { -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static const bool value = false; -+ }; -+ -+ template < typename T > -+ struct is_same<T, T> -+ { -+ static const bool value = true; -+ }; -+ -+ template < typename T1, typename T2 > -+ auto -+ add(T1 a1, T2 a2) -> decltype(a1 + a2) -+ { -+ return a1 + a2; -+ } -+ -+ int -+ test(const int c, volatile int v) -+ { -+ static_assert(is_same<int, decltype(0)>::value == true, ""); -+ static_assert(is_same<int, decltype(c)>::value == false, ""); -+ static_assert(is_same<int, decltype(v)>::value == false, ""); -+ auto ac = c; -+ auto av = v; -+ auto sumi = ac + av + 'x'; -+ auto sumf = ac + av + 1.0; -+ static_assert(is_same<int, decltype(ac)>::value == true, ""); -+ static_assert(is_same<int, decltype(av)>::value == true, ""); -+ static_assert(is_same<int, decltype(sumi)>::value == true, ""); -+ static_assert(is_same<int, decltype(sumf)>::value == false, ""); -+ static_assert(is_same<int, decltype(add(c, v))>::value == true, ""); -+ return (sumf > 0.0) ? sumi : add(c, v); -+ } -+ -+ } -+ -+ namespace test_noexcept -+ { -+ -+ int f() { return 0; } -+ int g() noexcept { return 0; } -+ -+ static_assert(noexcept(f()) == false, ""); -+ static_assert(noexcept(g()) == true, ""); -+ -+ } -+ -+ namespace test_constexpr -+ { -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept -+ { -+ return *s ? strlen_c_r(s + 1, acc + 1) : acc; -+ } -+ -+ template < typename CharT > -+ unsigned long constexpr -+ strlen_c(const CharT *const s) noexcept -+ { -+ return strlen_c_r(s, 0UL); -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("1") == 1UL, ""); -+ static_assert(strlen_c("example") == 7UL, ""); -+ static_assert(strlen_c("another\0example") == 7UL, ""); -+ -+ } -+ -+ namespace test_rvalue_references -+ { -+ -+ template < int N > -+ struct answer -+ { -+ static constexpr int value = N; -+ }; -+ -+ answer<1> f(int&) { return answer<1>(); } -+ answer<2> f(const int&) { return answer<2>(); } -+ answer<3> f(int&&) { return answer<3>(); } -+ -+ void -+ test() -+ { -+ int i = 0; -+ const int c = 0; -+ static_assert(decltype(f(i))::value == 1, ""); -+ static_assert(decltype(f(c))::value == 2, ""); -+ static_assert(decltype(f(0))::value == 3, ""); -+ } -+ -+ } -+ -+ namespace test_uniform_initialization -+ { -+ -+ struct test -+ { -+ static const int zero {}; -+ static const int one {1}; -+ }; -+ -+ static_assert(test::zero == 0, ""); -+ static_assert(test::one == 1, ""); -+ -+ } -+ -+ namespace test_lambdas -+ { -+ -+ void -+ test1() -+ { -+ auto lambda1 = [](){}; -+ auto lambda2 = lambda1; -+ lambda1(); -+ lambda2(); -+ } -+ -+ int -+ test2() -+ { -+ auto a = [](int i, int j){ return i + j; }(1, 2); -+ auto b = []() -> int { return '0'; }(); -+ auto c = [=](){ return a + b; }(); -+ auto d = [&](){ return c; }(); -+ auto e = [a, &b](int x) mutable { -+ const auto identity = [](int y){ return y; }; -+ for (auto i = 0; i < a; ++i) -+ a += b--; -+ return x + identity(a + b); -+ }(0); -+ return a + b + c + d + e; -+ } -+ -+ int -+ test3() -+ { -+ const auto nullary = [](){ return 0; }; -+ const auto unary = [](int x){ return x; }; -+ using nullary_t = decltype(nullary); -+ using unary_t = decltype(unary); -+ const auto higher1st = [](nullary_t f){ return f(); }; -+ const auto higher2nd = [unary](nullary_t f1){ -+ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; -+ }; -+ return higher1st(nullary) + higher2nd(nullary)(unary); -+ } -+ -+ } -+ -+ namespace test_variadic_templates -+ { -+ -+ template <int...> -+ struct sum; -+ -+ template <int N0, int... N1toN> -+ struct sum<N0, N1toN...> -+ { -+ static constexpr auto value = N0 + sum<N1toN...>::value; -+ }; -+ -+ template <> -+ struct sum<> -+ { -+ static constexpr auto value = 0; -+ }; -+ -+ static_assert(sum<>::value == 0, ""); -+ static_assert(sum<1>::value == 1, ""); -+ static_assert(sum<23>::value == 23, ""); -+ static_assert(sum<1, 2>::value == 3, ""); -+ static_assert(sum<5, 5, 11>::value == 21, ""); -+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); -+ -+ } -+ -+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae -+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function -+ // because of this. -+ namespace test_template_alias_sfinae -+ { -+ -+ struct foo {}; -+ -+ template<typename T> -+ using member = typename T::member_type; -+ -+ template<typename T> -+ void func(...) {} -+ -+ template<typename T> -+ void func(member<T>*) {} -+ -+ void test(); -+ -+ void test() { func<foo>(0); } -+ -+ } -+ -+} // namespace cxx11 -+ -+#endif // __cplusplus >= 201103L -+ -+]]) -+ -+ -+dnl Tests for new features in C++14 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ -+ -+// If the compiler admits that it is not ready for C++14, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus < 201402L -+ -+#error "This is not a C++14 compiler" -+ -+#else -+ -+namespace cxx14 -+{ -+ -+ namespace test_polymorphic_lambdas -+ { -+ -+ int -+ test() -+ { -+ const auto lambda = [](auto&&... args){ -+ const auto istiny = [](auto x){ -+ return (sizeof(x) == 1UL) ? 1 : 0; -+ }; -+ const int aretiny[] = { istiny(args)... }; -+ return aretiny[0]; -+ }; -+ return lambda(1, 1L, 1.0f, '1'); -+ } -+ -+ } -+ -+ namespace test_binary_literals -+ { -+ -+ constexpr auto ivii = 0b0000000000101010; -+ static_assert(ivii == 42, "wrong value"); -+ -+ } -+ -+ namespace test_generalized_constexpr -+ { -+ -+ template < typename CharT > -+ constexpr unsigned long -+ strlen_c(const CharT *const s) noexcept -+ { -+ auto length = 0UL; -+ for (auto p = s; *p; ++p) -+ ++length; -+ return length; -+ } -+ -+ static_assert(strlen_c("") == 0UL, ""); -+ static_assert(strlen_c("x") == 1UL, ""); -+ static_assert(strlen_c("test") == 4UL, ""); -+ static_assert(strlen_c("another\0test") == 7UL, ""); -+ -+ } -+ -+ namespace test_lambda_init_capture -+ { -+ -+ int -+ test() -+ { -+ auto x = 0; -+ const auto lambda1 = [a = x](int b){ return a + b; }; -+ const auto lambda2 = [a = lambda1(x)](){ return a; }; -+ return lambda2(); -+ } -+ -+ } -+ -+ namespace test_digit_separators -+ { -+ -+ constexpr auto ten_million = 100'000'000; -+ static_assert(ten_million == 100000000, ""); -+ -+ } -+ -+ namespace test_return_type_deduction -+ { -+ -+ auto f(int& x) { return x; } -+ decltype(auto) g(int& x) { return x; } -+ -+ template < typename T1, typename T2 > -+ struct is_same -+ { -+ static constexpr auto value = false; -+ }; -+ -+ template < typename T > -+ struct is_same<T, T> -+ { -+ static constexpr auto value = true; -+ }; -+ -+ int -+ test() -+ { -+ auto x = 0; -+ static_assert(is_same<int, decltype(f(x))>::value, ""); -+ static_assert(is_same<int&, decltype(g(x))>::value, ""); -+ return x; -+ } -+ -+ } -+ -+} // namespace cxx14 -+ -+#endif // __cplusplus >= 201402L -+ -+]]) -+ -+ -+dnl Tests for new features in C++17 -+ -+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ -+ -+// If the compiler admits that it is not ready for C++17, why torture it? -+// Hopefully, this will speed up the test. -+ -+#ifndef __cplusplus -+ -+#error "This is not a C++ compiler" -+ -+#elif __cplusplus <= 201402L -+ -+#error "This is not a C++17 compiler" -+ -+#else -+ -+#if defined(__clang__) -+ #define REALLY_CLANG -+#else -+ #if defined(__GNUC__) -+ #define REALLY_GCC -+ #endif -+#endif -+ -+#include <initializer_list> -+#include <utility> -+#include <type_traits> -+ -+namespace cxx17 -+{ -+ -+#if !defined(REALLY_CLANG) -+ namespace test_constexpr_lambdas -+ { -+ -+ // TODO: test it with clang++ from git -+ -+ constexpr int foo = [](){return 42;}(); -+ -+ } -+#endif // !defined(REALLY_CLANG) -+ -+ namespace test::nested_namespace::definitions -+ { -+ -+ } -+ -+ namespace test_fold_expression -+ { -+ -+ template<typename... Args> -+ int multiply(Args... args) -+ { -+ return (args * ... * 1); -+ } -+ -+ template<typename... Args> -+ bool all(Args... args) -+ { -+ return (args && ...); -+ } -+ -+ } -+ -+ namespace test_extended_static_assert -+ { -+ -+ static_assert (true); -+ -+ } -+ -+ namespace test_auto_brace_init_list -+ { -+ -+ auto foo = {5}; -+ auto bar {5}; -+ -+ static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value); -+ static_assert(std::is_same<int, decltype(bar)>::value); -+ } -+ -+ namespace test_typename_in_template_template_parameter -+ { -+ -+ template<template<typename> typename X> struct D; -+ -+ } -+ -+ namespace test_fallthrough_nodiscard_maybe_unused_attributes -+ { -+ -+ int f1() -+ { -+ return 42; -+ } -+ -+ [[nodiscard]] int f2() -+ { -+ [[maybe_unused]] auto unused = f1(); -+ -+ switch (f1()) -+ { -+ case 17: -+ f1(); -+ [[fallthrough]]; -+ case 42: -+ f1(); -+ } -+ return f1(); -+ } -+ -+ } -+ -+ namespace test_extended_aggregate_initialization -+ { -+ -+ struct base1 -+ { -+ int b1, b2 = 42; -+ }; -+ -+ struct base2 -+ { -+ base2() { -+ b3 = 42; -+ } -+ int b3; -+ }; -+ -+ struct derived : base1, base2 -+ { -+ int d; -+ }; -+ -+ derived d1 {{1, 2}, {}, 4}; // full initialization -+ derived d2 {{}, {}, 4}; // value-initialized bases -+ -+ } -+ -+ namespace test_general_range_based_for_loop -+ { -+ -+ struct iter -+ { -+ int i; -+ -+ int& operator* () -+ { -+ return i; -+ } -+ -+ const int& operator* () const -+ { -+ return i; -+ } -+ -+ iter& operator++() -+ { -+ ++i; -+ return *this; -+ } -+ }; -+ -+ struct sentinel -+ { -+ int i; -+ }; -+ -+ bool operator== (const iter& i, const sentinel& s) -+ { -+ return i.i == s.i; -+ } -+ -+ bool operator!= (const iter& i, const sentinel& s) -+ { -+ return !(i == s); -+ } -+ -+ struct range -+ { -+ iter begin() const -+ { -+ return {0}; -+ } -+ -+ sentinel end() const -+ { -+ return {5}; -+ } -+ }; -+ -+ void f() -+ { -+ range r {}; -+ -+ for (auto i : r) -+ { -+ [[maybe_unused]] auto v = i; -+ } -+ } -+ -+ } -+ -+ namespace test_lambda_capture_asterisk_this_by_value -+ { -+ -+ struct t -+ { -+ int i; -+ int foo() -+ { -+ return [*this]() -+ { -+ return i; -+ }(); -+ } -+ }; -+ -+ } -+ -+ namespace test_enum_class_construction -+ { -+ -+ enum class byte : unsigned char -+ {}; -+ -+ byte foo {42}; -+ -+ } -+ -+ namespace test_constexpr_if -+ { -+ -+ template <bool cond> -+ int f () -+ { -+ if constexpr(cond) -+ { -+ return 13; -+ } -+ else -+ { -+ return 42; -+ } -+ } -+ -+ } -+ -+ namespace test_selection_statement_with_initializer -+ { -+ -+ int f() -+ { -+ return 13; -+ } -+ -+ int f2() -+ { -+ if (auto i = f(); i > 0) -+ { -+ return 3; -+ } -+ -+ switch (auto i = f(); i + 4) -+ { -+ case 17: -+ return 2; -+ -+ default: -+ return 1; -+ } -+ } -+ -+ } -+ -+#if !defined(REALLY_CLANG) -+ namespace test_template_argument_deduction_for_class_templates -+ { -+ -+ // TODO: test it with clang++ from git -+ -+ template <typename T1, typename T2> -+ struct pair -+ { -+ pair (T1 p1, T2 p2) -+ : m1 {p1}, -+ m2 {p2} -+ {} -+ -+ T1 m1; -+ T2 m2; -+ }; -+ -+ void f() -+ { -+ [[maybe_unused]] auto p = pair{13, 42u}; -+ } -+ -+ } -+#endif // !defined(REALLY_CLANG) -+ -+ namespace test_non_type_auto_template_parameters -+ { -+ -+ template <auto n> -+ struct B -+ {}; -+ -+ B<5> b1; -+ B<'a'> b2; -+ -+ } -+ -+#if !defined(REALLY_CLANG) -+ namespace test_structured_bindings -+ { -+ -+ // TODO: test it with clang++ from git -+ -+ int arr[2] = { 1, 2 }; -+ std::pair<int, int> pr = { 1, 2 }; -+ -+ auto f1() -> int(&)[2] -+ { -+ return arr; -+ } -+ -+ auto f2() -> std::pair<int, int>& -+ { -+ return pr; -+ } -+ -+ struct S -+ { -+ int x1 : 2; -+ volatile double y1; -+ }; -+ -+ S f3() -+ { -+ return {}; -+ } -+ -+ auto [ x1, y1 ] = f1(); -+ auto& [ xr1, yr1 ] = f1(); -+ auto [ x2, y2 ] = f2(); -+ auto& [ xr2, yr2 ] = f2(); -+ const auto [ x3, y3 ] = f3(); -+ -+ } -+#endif // !defined(REALLY_CLANG) -+ -+#if !defined(REALLY_CLANG) -+ namespace test_exception_spec_type_system -+ { -+ -+ // TODO: test it with clang++ from git -+ -+ struct Good {}; -+ struct Bad {}; -+ -+ void g1() noexcept; -+ void g2(); -+ -+ template<typename T> -+ Bad -+ f(T*, T*); -+ -+ template<typename T1, typename T2> -+ Good -+ f(T1*, T2*); -+ -+ static_assert (std::is_same_v<Good, decltype(f(g1, g2))>); -+ -+ } -+#endif // !defined(REALLY_CLANG) -+ -+ namespace test_inline_variables -+ { -+ -+ template<class T> void f(T) -+ {} -+ -+ template<class T> inline T g(T) -+ { -+ return T{}; -+ } -+ -+ template<> inline void f<>(int) -+ {} -+ -+ template<> int g<>(int) -+ { -+ return 5; -+ } -+ -+ } -+ -+} // namespace cxx17 -+ -+#endif // __cplusplus <= 201402L -+ -+]]) -diff --git a/spyview/Fl_Listbox.H b/spyview/Fl_Listbox.H -index 35803fc..832792b 100644 ---- a/spyview/Fl_Listbox.H -+++ b/spyview/Fl_Listbox.H -@@ -5,7 +5,8 @@ - #include <string> - #include <vector> - --using namespace std; -+using std::string; -+using std::vector; - - class Fl_Listbox : public Fl_Table - { -diff --git a/spyview/ImageData.C b/spyview/ImageData.C -index 7ee936a..eaac7a6 100644 ---- a/spyview/ImageData.C -+++ b/spyview/ImageData.C -@@ -9,6 +9,9 @@ - #include "mypam.h" - #include "../config.h" - -+#include <cmath> -+using std::isnan; -+ - #include <algorithm> - // From http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/gcc/variadic-macros.html - -@@ -2007,7 +2010,7 @@ void ImageData::grad_mag(double axis_bias) - xderv(); - width = w; - height = h; -- swap(tmpx,raw_data); -+ std::swap(tmpx,raw_data); - yderv(); - width = w; - height = h; -@@ -2083,7 +2086,7 @@ void ImageData::dderv(double theta) // theta in degrees! - xderv(); - width = w; - height = h; -- swap(tmpx,raw_data); -+ std::swap(tmpx,raw_data); - yderv(); - width = w; - height = h; -diff --git a/spyview/ImageData.H b/spyview/ImageData.H -index b68cb73..4cdecb1 100644 ---- a/spyview/ImageData.H -+++ b/spyview/ImageData.H -@@ -22,7 +22,8 @@ - - #define CHECK_ARRAY_LIMITS 0 - --using namespace std; -+using std::string; -+using std::vector; - - typedef enum { YZ = 0, XY = 2, XZ = 1 } mtxcut_t; - typedef enum { COLUMNS = 0, INDEX = 1} gpload_t; -diff --git a/spyview/ImagePrinter.H b/spyview/ImagePrinter.H -index d85b440..f34ee67 100644 ---- a/spyview/ImagePrinter.H -+++ b/spyview/ImagePrinter.H -@@ -11,7 +11,7 @@ - - #include "ImagePrinter_Control.h" - --using namespace std; -+using std::string; - - class ImageWindow; - class Image_Printer_Control; -diff --git a/spyview/ImageWindow.C b/spyview/ImageWindow.C -index b8bd0f9..eeae649 100644 ---- a/spyview/ImageWindow.C -+++ b/spyview/ImageWindow.C -@@ -12,6 +12,11 @@ - #include "ImageWindow_Module.H" - #include <ctype.h> - -+#include <cmath> -+using std::isnan; -+ -+#include "mypam.h" -+ - #ifdef WIN32 - - #include <windows.h> -@@ -36,8 +41,6 @@ - #define alt(state) (!(state & FL_CTRL) && !(state & FL_SHIFT) && (state & FL_ALT)) - #define none(state) (!(state & FL_CTRL) && !(state & FL_SHIFT) && !(state & FL_ALT)) - --using namespace std; -- - FILE *fopenwarn(const char *name, const char *mode) - { - FILE *fp = fopen(name, mode); -@@ -482,7 +485,7 @@ double current_time() - stop.tv_usec = (long)(tmpres % 1000000UL); - #endif - double time = (((double)(stop.tv_sec)) + ((double)(stop.tv_usec) * 1e-6)); -- if (!isnormal(time)) -+ if (!std::isnormal(time)) - info("time %e sec %d usec %d\n", time, stop.tv_sec, stop.tv_usec); - return time; - } -@@ -1609,7 +1612,7 @@ void ImageWindow::runQueue() - for (int n=0; n<op->num_parameters; n++) - { - operations_string += "-"; -- ostringstream os; -+ std::ostringstream os; - os << op->parameters[n].value; - operations_string += os.str(); - } -diff --git a/spyview/ImageWindow.H b/spyview/ImageWindow.H -index 30e94ba..5d1a1e1 100644 ---- a/spyview/ImageWindow.H -+++ b/spyview/ImageWindow.H -@@ -32,7 +32,7 @@ - #define VERTLINE 4 - #define OTHERLINE 8 - --#include "mypam.h" -+using std::string; - - typedef enum { XAXIS, YAXIS, DISTANCE } lc_axis_t; - typedef enum { KEEPZOOM, KEEPSIZE, RESETZOOM } window_size_action_t; -diff --git a/spyview/ImageWindow3d.C b/spyview/ImageWindow3d.C -index 40b93e6..24fa8f4 100644 ---- a/spyview/ImageWindow3d.C -+++ b/spyview/ImageWindow3d.C -@@ -5,6 +5,8 @@ - #define LINEMESH 2 - #define POLYGONS 3 - -+#include "mypam.h" -+ - ImageWindow3d::ImageWindow3d(int x,int y,int w,int h,const char *l) : Fl_Gl_Window(x,y,w,h,l) - { - data_matrix = NULL; -diff --git a/spyview/ImageWindow3d.H b/spyview/ImageWindow3d.H -index 683015b..e6f296f 100644 ---- a/spyview/ImageWindow3d.H -+++ b/spyview/ImageWindow3d.H -@@ -25,9 +25,7 @@ - #define POINTSOURCE 1 - #define DIRECTIONAL 2 - --#include "mypam.h" - --using namespace std; - - #define LMAX USHRT_MAX - -diff --git a/spyview/bisector.H b/spyview/bisector.H -index b22fb8f..c7e64a6 100644 ---- a/spyview/bisector.H -+++ b/spyview/bisector.H -@@ -2,7 +2,9 @@ - #define __bisector_h__ - #include <assert.h> - #include <math.h> --using namespace std; -+ -+#include <cmath> -+using std::isnan; - - class bisector - { -diff --git a/spyview/misc.h b/spyview/misc.h -index 9ed7dfc..8ed8ba8 100644 ---- a/spyview/misc.h -+++ b/spyview/misc.h -@@ -3,7 +3,7 @@ - - #include <string> - --using namespace std; -+using std::string; - - //Some useful functions - -diff --git a/spyview/spypal_gradient.C b/spyview/spypal_gradient.C -index e522b42..4997fbd 100644 ---- a/spyview/spypal_gradient.C -+++ b/spyview/spypal_gradient.C -@@ -22,7 +22,7 @@ void Spypal_Slider_Dragger::start_dragging(Fl_Spypal_GSlider *todrag, bool can_d - assert(dragging == NULL); - can_delete = can_delete_p; - dragging = todrag; -- colored = false; -+ colored = NULL; - shown = find(g->sliders.begin(),g->sliders.end(), dragging) != g->sliders.end(); - if(!shown && (Fl::event_inside(g) || !can_delete)) - show_dragged(); -diff --git a/spyview/spyview.C b/spyview/spyview.C -index cd99eeb..5e5c1f6 100644 ---- a/spyview/spyview.C -+++ b/spyview/spyview.C -@@ -27,8 +27,6 @@ - #include "spypal_import.H" - #include <libgen.h> - --using namespace std; -- - //How's this for lazy...? - char **arg_values; - int arg_count; -diff --git a/spyview/spyview.H b/spyview/spyview.H -index 3536354..0411e87 100644 ---- a/spyview/spyview.H -+++ b/spyview/spyview.H -@@ -10,6 +10,8 @@ - #include <vector> - #include "spyview_ui.h" - -+using std::string; -+ - /*void minl_cb(Fl_Widget *, void *); - void maxl_cb(Fl_Widget *, void *); - void dminl_cb(Fl_Widget *, void *); -diff --git a/spyview/spyview3d.C b/spyview/spyview3d.C -index b9398d5..068d4a1 100644 ---- a/spyview/spyview3d.C -+++ b/spyview/spyview3d.C -@@ -18,8 +18,6 @@ - - #include "mypam.h" - --using namespace std; -- - int *data; - int *databuf; - int w,h; diff --git a/sci-visualization/spyview/files/spyview-20150124-gnuplot_interface_fix.patch b/sci-visualization/spyview/files/spyview-20150124-gnuplot_interface_fix.patch deleted file mode 100644 index 6f15296012f2..000000000000 --- a/sci-visualization/spyview/files/spyview-20150124-gnuplot_interface_fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/spyview/Gnuplot_Interface.C -+++ b/spyview/Gnuplot_Interface.C -@@ -13,6 +13,7 @@ - #else - #include <sys/stat.h> - #include <sys/types.h> -+#include <sys/wait.h> - #endif - using namespace boost; - diff --git a/sci-visualization/spyview/spyview-20150124-r1.ebuild b/sci-visualization/spyview/spyview-20150124-r1.ebuild index d873c7d008cc..e031660d4b12 100644 --- a/sci-visualization/spyview/spyview-20150124-r1.ebuild +++ b/sci-visualization/spyview/spyview-20150124-r1.ebuild @@ -7,7 +7,8 @@ inherit autotools flag-o-matic DESCRIPTION="2D and 3D data visualization and analysis program" HOMEPAGE="http://nsweb.tn.tudelft.nl/~gsteele/spyview/" -SRC_URI="https://github.com/gsteele13/spyview/archive/966012afae2fbb77262bd96a7e530e81b0ed3b90.tar.gz -> $P.tgz" +SRC_URI="https://github.com/gsteele13/spyview/archive/966012afae2fbb77262bd96a7e530e81b0ed3b90.tar.gz -> $P.tgz + https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.bz2" LICENSE="GPL-3" SLOT="0" @@ -29,8 +30,8 @@ RDEPEND="${COMMON_DEPEND} sci-visualization/gnuplot" PATCHES=( - "${FILESDIR}/${P}"-gnuplot_interface_fix.patch - "${FILESDIR}/${P}"-gcc6cxx14-9.patch + "${WORKDIR}/${P}-patchset/${P}"-gnuplot_interface_fix.patch + "${WORKDIR}/${P}-patchset/${P}"-gcc6cxx14-9.patch ) src_unpack() { |