summaryrefslogtreecommitdiff
path: root/dev-util/binaryen
diff options
context:
space:
mode:
authorAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2021-04-24 16:26:30 -0400
committerAlex Xu (Hello71) <alex_y_xu@yahoo.ca>2021-04-24 16:26:30 -0400
commit1c09802fd645ef2bca0d048aaeb51faa1de38392 (patch)
tree49840c53247186da072055b5790efed64afdc385 /dev-util/binaryen
parent03ae4b4892e5461bd2c2fb1739b59afc94a8f083 (diff)
downloadgentoo-overlay-1c09802fd645ef2bca0d048aaeb51faa1de38392.tar.xz
gentoo-overlay-1c09802fd645ef2bca0d048aaeb51faa1de38392.zip
dev-util/binaryen: new package
Diffstat (limited to 'dev-util/binaryen')
-rw-r--r--dev-util/binaryen/Manifest1
-rw-r--r--dev-util/binaryen/binaryen-101.ebuild35
-rw-r--r--dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch68
3 files changed, 104 insertions, 0 deletions
diff --git a/dev-util/binaryen/Manifest b/dev-util/binaryen/Manifest
new file mode 100644
index 0000000..b845750
--- /dev/null
+++ b/dev-util/binaryen/Manifest
@@ -0,0 +1 @@
+DIST binaryen-101.tar.gz 3760918 BLAKE2B 4407e8d9418f8d3186fb60c037bb519cd5ee0b56c879caa3e2a5c3122825487d22513a92029dac23b0fa507226ecadf6d3d81927732aad3163d38f18664c1929 SHA512 819105fda25e3ee51d8a858f73aabe018e6af584eb2afd5b7fe06ce165e39487d5ee6da23eec2c62d8dd1d87002b00ff8bd63e28bef388ac0fed72dfe7ae88f8
diff --git a/dev-util/binaryen/binaryen-101.ebuild b/dev-util/binaryen/binaryen-101.ebuild
new file mode 100644
index 0000000..e03a08d
--- /dev/null
+++ b/dev-util/binaryen/binaryen-101.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Compiler and toolchain infrastructure library for WebAssembly"
+HOMEPAGE="https://github.com/WebAssembly/binaryen"
+SRC_URI="https://github.com/WebAssembly/binaryen/archive/version_${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+# broken
+RESTRICT="test"
+
+S="${WORKDIR}/binaryen-version_${PV}"
+
+PATCHES=(${FILESDIR}/binaryen-undo-compile-flag-braindamage.patch)
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_WERROR=no
+ -DBUILD_LLVM_DWARF=no
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ cd "${BUILD_DIR}" || die
+ ${S}/check.py || die
+}
diff --git a/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch b/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch
new file mode 100644
index 0000000..93a7b9a
--- /dev/null
+++ b/dev-util/binaryen/files/binaryen-undo-compile-flag-braindamage.patch
@@ -0,0 +1,68 @@
+diff -ru a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2021-04-16 14:09:26.000000000 -0400
++++ b/CMakeLists.txt 2021-04-24 09:48:11.792348791 -0400
+@@ -137,17 +137,6 @@
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY${SUFFIX} "${PROJECT_BINARY_DIR}/lib")
+ endforeach()
+
+-option(BYN_ENABLE_LTO "Build with LTO" Off)
+-if(BYN_ENABLE_LTO)
+- if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+- message(FATAL_ERROR "ThinLTO is only supported by clang")
+- endif()
+- if(NOT APPLE)
+- add_link_flag("-fuse-ld=lld")
+- endif()
+- add_compile_flag("-flto=thin")
+-endif()
+-
+ if(MSVC)
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0") # VS2013 and older explicitly need /arch:sse2 set, VS2015 no longer has that option, but always enabled.
+ add_compile_flag("/arch:sse2")
+@@ -212,15 +201,6 @@
+ set(CMAKE_THREAD_PREFER_PTHREAD ON)
+ find_package(Threads REQUIRED)
+ add_cxx_flag("-std=c++${CXX_STANDARD}")
+- if(NOT EMSCRIPTEN)
+- if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
+- # wasm doesn't allow for x87 floating point math
+- add_compile_flag("-msse2")
+- add_compile_flag("-mfpmath=sse")
+- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[2-6]" AND NOT CMAKE_CXX_FLAGS MATCHES "-mfpu=")
+- add_compile_flag("-mfpu=vfpv3")
+- endif()
+- endif()
+ add_compile_flag("-Wall")
+ if(ENABLE_WERROR)
+ add_compile_flag("-Werror")
+@@ -244,14 +224,6 @@
+ elseif(NOT EMSCRIPTEN)
+ add_compile_flag("-fPIC")
+ endif()
+- add_debug_compile_flag("-O0")
+- add_debug_compile_flag("-g3")
+- if(EMSCRIPTEN)
+- # really focus on minimizing output size when compiling sources
+- add_nondebug_compile_flag("-Oz")
+- else()
+- add_nondebug_compile_flag("-O2")
+- endif()
+ if(BYN_ENABLE_ASSERTIONS)
+ # On non-Debug builds cmake automatically defines NDEBUG, so we
+ # explicitly undefine it:
+@@ -273,15 +245,6 @@
+ add_nondebug_compile_flag("-flto")
+ endif()
+
+-# clang doesn't print colored diagnostics when invoked from Ninja
+-if(UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
+- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+- add_compile_flag("-fdiagnostics-color=always")
+- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+- add_compile_flag("-fcolor-diagnostics")
+- endif()
+-endif()
+-
+ # Static libraries
+ # Current (partial) dependency structure is as follows:
+ # passes -> wasm -> asmjs -> support