<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e7d5166687515bbad56e9f664a005528b08e8980">https://github.com/macports/macports-ports/commit/e7d5166687515bbad56e9f664a005528b08e8980</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e7d51666875 solidity: new port in lang
</span>e7d51666875 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e7d5166687515bbad56e9f664a005528b08e8980
</span>Author: Kaiming Guo <me@kaiming.io>
AuthorDate: Thu Mar 16 01:10:49 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    solidity: new port in lang
</span>---
 lang/solidity/Portfile                             | 86 ++++++++++++++++++++++
 lang/solidity/files/fmtlib.cmake                   |  1 +
 lang/solidity/files/jsoncpp.cmake                  |  2 +
 .../solidity/files/patch-cmake_range-v3.cmake.diff | 39 ++++++++++
 lang/solidity/files/patch-libsolutil_JSON.cpp.diff | 15 ++++
 5 files changed, 143 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/solidity/Portfile b/lang/solidity/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..347282b2aac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/solidity/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,86 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           boost 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        ethereum solidity 0.8.19 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from downloads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            ${github.project}_${github.version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                solidity
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL-3+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@kaimingguo kaiming.io:me} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    openmaintainers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Solidity, the Smart Contract Programming Language
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    Solidity is a statically typed, contract-oriented, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    high-level language for implementing smart contracts \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    on the Ethereum platform.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://soliditylang.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        https://github.com/ethereum/solidity/releases/download/v${github.version}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  df322fa402d7fc3d1c6643c0136a44251189ce28 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  9bc195e1695f271b65326c73a12223377d52ae4b4fee10589c5e7bde6fa44194 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    3239230
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set port_libfmt     libfmt9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:${port_libfmt} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:range-v3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         port:jsoncpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.module_path-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix}/lib/${port_libfmt}/cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args      -DTESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBoost_USE_STATIC_LIBS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_Z3:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CVC4:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DUSE_LD_GOLD:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DRANGE_V3_INCLUDE_DIR:PATH="${prefix}/include" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DJSONCPP_INCLUDE_DIR:PATH="${prefix}/include/jsoncpp" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DJSONCPP_LIB_DIR:PATH="${prefix}/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-cmake_range-v3.cmake.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-libsolutil_JSON.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants    +z3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant z3 description {SMT Checker via Z3} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:z3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DSTRICT_Z3_VERSION:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DWITH_Z3:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DWITH_Z3:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant cvc4 description {SMT Checker via CVC4} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:cvc4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DWITH_CVC4:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DWITH_CVC4:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-test {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DTESTS:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DTESTS:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file copy -force ${filespath}/fmtlib.cmake ${worksrcpath}/cmake/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file copy -force ${filespath}/jsoncpp.cmake ${worksrcpath}/cmake/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "/EthCcache/ d" ${worksrcpath}/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/solidity/files/fmtlib.cmake b/lang/solidity/files/fmtlib.cmake
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c6d3a73d00f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/solidity/files/fmtlib.cmake
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+find_package(fmt REQUIRED)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/solidity/files/jsoncpp.cmake b/lang/solidity/files/jsoncpp.cmake
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..20695766aab
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/solidity/files/jsoncpp.cmake
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+include_directories(${JSONCPP_INCLUDE_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+link_directories(${JSONCPP_LIB_DIR})
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/solidity/files/patch-cmake_range-v3.cmake.diff b/lang/solidity/files/patch-cmake_range-v3.cmake.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8309116b86e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/solidity/files/patch-cmake_range-v3.cmake.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/range-v3.cmake.orig      2023-03-15 20:36:47.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/range-v3.cmake   2023-03-15 20:37:39.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,36 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-include(ExternalProject)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(RANGE_V3_CMAKE_COMMAND emcmake cmake)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(RANGE_V3_CMAKE_COMMAND ${CMAKE_COMMAND})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(prefix "${CMAKE_BINARY_DIR}/deps")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(RANGE_V3_INCLUDE_DIR "${prefix}/include")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ExternalProject_Add(range-v3-project
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    PREFIX "${prefix}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DOWNLOAD_DIR "${CMAKE_SOURCE_DIR}/deps/downloads"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DOWNLOAD_NAME range-v3-0.12.0.tar.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    URL https://github.com/ericniebler/range-v3/archive/0.12.0.tar.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    URL_HASH SHA256=015adb2300a98edfceaf0725beec3337f542af4915cec4d0b89fa0886f4ba9cb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CMAKE_COMMAND ${RANGE_V3_CMAKE_COMMAND}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DBUILD_TESTING=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DRANGES_CXX_STD=${CMAKE_CXX_STANDARD}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DRANGE_V3_DOCS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DRANGE_V3_EXAMPLES=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DRANGE_V3_TESTS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DRANGES_BUILD_CALENDAR_EXAMPLE=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    BUILD_BYPRODUCTS "${RANGE_V3_INCLUDE_DIR}/range/v3/all.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Create range-v3 imported library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_library(range-v3 INTERFACE IMPORTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-file(MAKE_DIRECTORY ${RANGE_V3_INCLUDE_DIR})  # Must exist.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_target_properties(range-v3 PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     INTERFACE_COMPILE_OPTIONS "\$<\$<CXX_COMPILER_ID:MSVC>:/permissive->"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${RANGE_V3_INCLUDE_DIR}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/solidity/files/patch-libsolutil_JSON.cpp.diff b/lang/solidity/files/patch-libsolutil_JSON.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..1e6728f1d3c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/solidity/files/patch-libsolutil_JSON.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsolutil/JSON.cpp.orig       2023-03-15 21:14:24.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsolutil/JSON.cpp    2023-03-15 21:14:48.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,10 +32,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace std;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static_assert(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   (JSONCPP_VERSION_MAJOR == 1) && (JSONCPP_VERSION_MINOR == 9) && (JSONCPP_VERSION_PATCH == 3),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "Unexpected jsoncpp version: " JSONCPP_VERSION_STRING ". Expecting 1.9.3."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace solidity::util
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span></pre><pre style='margin:0'>

</pre>