git: 8898daafe91d - main - math/mathpresso: New port: Mathematical expression parser and JIT compiler
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 26 Dec 2022 06:13:19 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8898daafe91dd1bce0fe8d09b6b80df6936c1b7e
commit 8898daafe91dd1bce0fe8d09b6b80df6936c1b7e
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-26 03:10:14 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-26 06:13:13 +0000
math/mathpresso: New port: Mathematical expression parser and JIT compiler
---
math/Makefile | 1 +
math/mathpresso/Makefile | 34 ++++++++++++++++++++++++++++++
math/mathpresso/distinfo | 3 +++
math/mathpresso/files/patch-CMakeLists.txt | 28 ++++++++++++++++++++++++
math/mathpresso/pkg-descr | 5 +++++
5 files changed, 71 insertions(+)
diff --git a/math/Makefile b/math/Makefile
index 852c866cff0c..c6374d77dabb 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -477,6 +477,7 @@
SUBDIR += mathlibtools
SUBDIR += mathmod
SUBDIR += mathomatic
+ SUBDIR += mathpresso
SUBDIR += matio
SUBDIR += matlab-installer
SUBDIR += maxima
diff --git a/math/mathpresso/Makefile b/math/mathpresso/Makefile
new file mode 100644
index 000000000000..ca5a3da7158e
--- /dev/null
+++ b/math/mathpresso/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= mathpresso
+DISTVERSION= g20211213
+CATEGORIES= math
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Mathematical expression parser and JIT compiler
+WWW= https://github.com/kobalicek/mathpresso
+
+LICENSE= ZLIB
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+LIB_DEPENDS= libasmjit.so:devel/asmjit
+
+USES= cmake:testing localbase:ldflags
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= kobalicek
+GH_TAGNAME= 9256fa3
+
+CMAKE_ARGS= -DASMJIT_CFLAGS="-I${LOCALBASE}/include" -DASMJIT_LIBS=asmjit
+CMAKE_TESTING_ON= MATHPRESSO_TEST
+CMAKE_TESTING_TARGET= mptest
+
+PLIST_FILES= include/mathpresso/mathpresso.h \
+ lib/libmathpresso.so
+
+post-install: # workaround for https://github.com/kobalicek/mathpresso/issues/18
+ ${INSTALL_LIB} ${BUILD_WRKSRC}/libmathpresso.so ${STAGEDIR}${PREFIX}/lib
+
+post-test:
+ @cd ${TEST_WRKSRC} && ./mptest
+
+.include <bsd.port.mk>
diff --git a/math/mathpresso/distinfo b/math/mathpresso/distinfo
new file mode 100644
index 000000000000..be3abb586e61
--- /dev/null
+++ b/math/mathpresso/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1672022436
+SHA256 (kobalicek-mathpresso-g20211213-9256fa3_GH0.tar.gz) = 8c6e67abc5572ff34e6a29640089d03a63b680a5b216eda36fc8593396797f38
+SIZE (kobalicek-mathpresso-g20211213-9256fa3_GH0.tar.gz) = 53143
diff --git a/math/mathpresso/files/patch-CMakeLists.txt b/math/mathpresso/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..92d78b4abd39
--- /dev/null
+++ b/math/mathpresso/files/patch-CMakeLists.txt
@@ -0,0 +1,28 @@
+--- CMakeLists.txt.orig 2022-12-26 02:50:03 UTC
++++ CMakeLists.txt
+@@ -13,12 +13,12 @@ if (NOT DEFINED MATHPRESSO_DIR)
+ set(MATHPRESSO_DIR "${CMAKE_CURRENT_LIST_DIR}")
+ endif()
+
+-if (NOT DEFINED ASMJIT_DIR)
+- set(ASMJIT_DIR "${MATHPRESSO_DIR}/../asmjit")
+-endif()
++#if (NOT DEFINED ASMJIT_DIR)
++# set(ASMJIT_DIR "${MATHPRESSO_DIR}/../asmjit")
++#endif()
+
+ set(MATHPRESSO_DIR "${MATHPRESSO_DIR}" CACHE PATH "Location of 'mathpresso'")
+-set(ASMJIT_DIR "${ASMJIT_DIR}" CACHE PATH "Location of 'asmjit'")
++#set(ASMJIT_DIR "${ASMJIT_DIR}" CACHE PATH "Location of 'asmjit'")
+
+ set(MATHPRESSO_TEST FALSE CACHE BOOL "Build 'mathpresso' test applications")
+ set(MATHPRESSO_EMBED FALSE CACHE BOOL "Embed 'mathpresso' library (no targets)")
+@@ -53,7 +53,7 @@ endif()
+ if (NOT DEFINED ASMJIT_EMBED)
+ set(ASMJIT_EMBED TRUE)
+ endif()
+-include("${ASMJIT_DIR}/CMakeLists.txt")
++#include("${ASMJIT_DIR}/CMakeLists.txt")
+
+ list(APPEND MATHPRESSO_DEPS ${ASMJIT_LIBS})
+ list(APPEND MATHPRESSO_PRIVATE_CFLAGS "${ASMJIT_CFLAGS}")
diff --git a/math/mathpresso/pkg-descr b/math/mathpresso/pkg-descr
new file mode 100644
index 000000000000..11ac92a47c2a
--- /dev/null
+++ b/math/mathpresso/pkg-descr
@@ -0,0 +1,5 @@
+MathPresso is a C++ library designed to parse mathematical expressions and
+compile them into machine code. It's much faster than traditional AST or
+byte-code based evaluators, because there is basically no overhead in the
+expression's execution. The JIT compiler is based on AsmJit and works on
+X86 and X64 architectures.