<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f2b19522d8e2f48ab23ecb1194ae4fdc617f5ddd">https://github.com/macports/macports-ports/commit/f2b19522d8e2f48ab23ecb1194ae4fdc617f5ddd</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f2b19522d8e2f48ab23ecb1194ae4fdc617f5ddd
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Thu Oct 21 10:51:22 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    openssl PG: Add support for cmake builds
</span>---
 _resources/port1.0/group/openssl-1.0.tcl | 104 +++++++++++++++++++++----------
 1 file changed, 71 insertions(+), 33 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/openssl-1.0.tcl b/_resources/port1.0/group/openssl-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 8f60da203db..deff9a22667 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/openssl-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/openssl-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,6 +21,8 @@ default openssl_cache_branch_nodot ""
</span> default openssl_cache_depends      ""
 default openssl_cache_incdir       ""
 default openssl_cache_libdir       ""
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default openssl_cache_cmake_flags  ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default openssl_cache_configure    ""
</span> 
 proc openssl::default_branch {} {
     return 1.1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -74,59 +76,95 @@ proc openssl::set_openssl_dependency {} {
</span>     depends_[option openssl.depends_type]-append port:openssl[openssl::branch_nodot]
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc openssl::configure_build {} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global openssl_cache_incdir openssl_cache_libdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Detect if cmake is being used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc openssl::check_for_cmake {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { [string match *cmake* [option configure.cmd] ] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ![string match *cmake* [option openssl.configure] ] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "Appending cmake to openssl configuration types"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            openssl.configure-append cmake
</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;'>+port::register_callback openssl::check_for_cmake
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "Configure Types '[option openssl.configure]'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc openssl::configure_build {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global openssl_cache_branch_nodot openssl_cache_depends
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global openssl_cache_incdir openssl_cache_libdir openssl_cache_cmake_flags openssl_cache_configure
</span>     
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # If no configure method(s) given do nothing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [option openssl.configure] ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        openssl::set_openssl_dependency
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach meth [option openssl.configure] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            switch ${meth} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                pkgconfig {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_debug " -> Setting openssl pkgconfig configuration"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure.pkg_config_path-prepend [openssl::pkgconfig_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    depends_build-delete port:pkgconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    depends_build-append port:pkgconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                build_flags {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_debug " -> Setting openssl build flags configuration"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    if { ${openssl_cache_incdir} ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        configure.cppflags-delete -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        configure.cflags-delete   -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Has configuration changed in any way ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${openssl_cache_branch_nodot} ne [openssl::branch_nodot] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ${openssl_cache_depends} ne [option openssl.depends_type] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ${openssl_cache_configure} ne [option openssl.configure] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "Configure Types '[option openssl.configure]'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # If no configure method(s) given do nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set openssl_cache_configure [option openssl.configure]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { [option openssl.configure] ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            openssl::set_openssl_dependency
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach meth [option openssl.configure] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                switch ${meth} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    pkgconfig {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_debug " -> Setting openssl pkgconfig configuration"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        configure.pkg_config_path-prepend [openssl::pkgconfig_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        depends_build-delete port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        depends_build-append port:pkgconfig
</span>                     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    if { ${openssl_cache_libdir} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    build_flags {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_debug " -> Setting openssl build flags configuration"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if { ${openssl_cache_incdir} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            configure.cppflags-delete -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            configure.cflags-delete   -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if { ${openssl_cache_libdir} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            configure.ldflags-prepend  -L${openssl_cache_libdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set openssl_cache_incdir [openssl::include_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set openssl_cache_libdir [openssl::lib_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        configure.cppflags-prepend -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        configure.cflags-prepend   -I${openssl_cache_incdir}
</span>                         configure.ldflags-prepend  -L${openssl_cache_libdir}
                     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set openssl_cache_incdir [openssl::include_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set openssl_cache_libdir [openssl::lib_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure.cppflags-prepend -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure.cflags-prepend   -I${openssl_cache_incdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    configure.ldflags-prepend  -L${openssl_cache_libdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                default {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    return -code error "invalid method \"${meth}\" for openssl.configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    cmake {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_debug " -> Setting openssl cmake configuration"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if { ${openssl_cache_cmake_flags} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            foreach flag ${openssl_cache_cmake_flags} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                configure.args-delete ${flag}
</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;'>+                        # Try and cover all bases here and set all possible variables ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        # See https://cmake.org/cmake/help/latest/module/FindOpenSSL.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set openssl_cache_cmake_flags [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                           -DOPENSSL_ROOT_DIR=[openssl::install_area] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                           -DOPENSSL_INCLUDE_DIR=[openssl::include_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                      ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        foreach flag ${openssl_cache_cmake_flags} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            configure.args-append ${flag}
</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;'>+                    default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        return -code error "invalid method \"${meth}\" for openssl.configure"
</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:#ffe0e0;'>-        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     }
 
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+port::register_callback openssl::configure_build
</span> 
 proc openssl::branch_proc {option action args} {
     if {$action ne "set"} return
     openssl::set_openssl_dependency
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> option_proc openssl.branch openssl::branch_proc
 
 proc openssl::configure_proc {option action args} {
     if {$action ne "set"} return
     openssl::configure_build
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> option_proc openssl.configure openssl::configure_proc
</pre><pre style='margin:0'>

</pre>