From 28a4eb27f28193461b874eb6f40217e13ad66739 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Tue, 14 Nov 2017 01:28:38 -0500 Subject: [PATCH] Patch exprtk on Clang (#3971) --- plugins/Xpressive/CMakeLists.txt | 6 ++++++ plugins/Xpressive/exprtk.hpp.patch | 13 +++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 plugins/Xpressive/exprtk.hpp.patch diff --git a/plugins/Xpressive/CMakeLists.txt b/plugins/Xpressive/CMakeLists.txt index f13d90bdaed..65f9a0d5512 100644 --- a/plugins/Xpressive/CMakeLists.txt +++ b/plugins/Xpressive/CMakeLists.txt @@ -10,6 +10,12 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_rtl_io_file") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_rtl_vecops") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WERROR_FLAGS} -fexceptions") +# See https://github.com/ArashPartow/exprtk/pull/9 +IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + EXECUTE_PROCESS(COMMAND patch exprtk/exprtk.hpp exprtk.hpp.patch + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_QUIET) +ENDIF() + IF(LMMS_BUILD_WIN32) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj -Dexprtk_disable_enhanced_features") ENDIF() diff --git a/plugins/Xpressive/exprtk.hpp.patch b/plugins/Xpressive/exprtk.hpp.patch new file mode 100644 index 00000000000..21dc89db892 --- /dev/null +++ b/plugins/Xpressive/exprtk.hpp.patch @@ -0,0 +1,13 @@ +diff --git a/exprtk.hpp b/exprtk.hpp +index 916e74b..ae7de24 100644 +--- a/exprtk.hpp ++++ b/exprtk.hpp +@@ -1962,7 +1962,7 @@ namespace exprtk + template + inline bool string_to_real(const std::string& s, T& t) + { +- const typename numeric::details::number_type::type num_type; ++ typename numeric::details::number_type::type num_type; + + const char_t* begin = s.data(); + const char_t* end = s.data() + s.size();