<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>