Merge pull request #13722 from carlocab/rpath-args

formula: add optional `source` and `target` args to `#rpath`
This commit is contained in:
Carlo Cabrera 2022-08-22 19:07:43 +08:00 committed by GitHub
commit 9db6f0df4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 5 deletions

View File

@ -3,7 +3,7 @@
class Formula class Formula
undef shared_library undef shared_library
undef rpath undef loader_path
undef deuniversalize_machos undef deuniversalize_machos
sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) } sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
@ -17,8 +17,8 @@ class Formula
end end
sig { returns(String) } sig { returns(String) }
def rpath def loader_path
"'$ORIGIN/../lib'" "$ORIGIN"
end end
sig { params(targets: T.nilable(T.any(Pathname, String))).void } sig { params(targets: T.nilable(T.any(Pathname, String))).void }

View File

@ -1572,9 +1572,23 @@ class Formula
end end
# Executable/Library RPATH according to platform conventions. # Executable/Library RPATH according to platform conventions.
#
# Optionally specify a `source` or `target` depending on the location
# of the file containing the RPATH command and where its target is located.
#
# <pre>
# rpath #=> "@loader_path/../lib"
# rpath(target: frameworks) #=> "@loader_path/../Frameworks"
# rpath(source: libexec/"bin") #=> "@loader_path/../../lib"
# </pre>
sig { params(source: Pathname, target: Pathname).returns(String) }
def rpath(source: bin, target: lib)
"#{loader_path}/#{target.relative_path_from(source)}"
end
sig { returns(String) } sig { returns(String) }
def rpath def loader_path
"@loader_path/../lib" "@loader_path"
end end
# Creates a new `Time` object for use in the formula as the build time. # Creates a new `Time` object for use in the formula as the build time.