686
686
verbose = false, debug = false,
687
687
skip_audit = false, ignore_audit_errors = true,
688
688
autofix = true, code_dir = nothing,
689
- meta_json_file = nothing, require_license = true, kwargs...)
689
+ meta_json_file = nothing, require_license = true,
690
+ dont_dlopen = false, kwargs...)
690
691
691
692
Runs the boiler plate code to download, build, and package a source package
692
693
for a list of platforms. This method takes a veritable truckload of arguments,
@@ -728,6 +729,12 @@ here are the relevant actors, broken down in brief:
728
729
729
730
* `require_license` enables a special audit pass that requires licenses to be
730
731
installed by all packages.
732
+
733
+ * `dont_dlopen`: don't try to `dlopen` library products. This is separate from
734
+ specifying `dont_dlopen` on a `LibraryProduct` in that it still results in
735
+ the generated JLL loading the library at run time, and only prevents
736
+ BinaryBuilder from doing so during JLL generation.
737
+
731
738
"""
732
739
function autobuild (dir:: AbstractString ,
733
740
src_name:: AbstractString ,
@@ -744,6 +751,7 @@ function autobuild(dir::AbstractString,
744
751
autofix:: Bool = true ,
745
752
code_dir:: Union{String,Nothing} = nothing ,
746
753
require_license:: Bool = true ,
754
+ dont_dlopen:: Bool = false ,
747
755
kwargs... )
748
756
@nospecialize
749
757
@@ -901,10 +909,12 @@ function autobuild(dir::AbstractString,
901
909
# only `FileProduct`s.
902
910
error (" Cannot have $(typeof (p)) for AnyPlatform" )
903
911
end
904
- if ! satisfied (p, dest_prefix; verbose= verbose, platform= platform)
912
+ if ! satisfied (p, dest_prefix; verbose= verbose, platform= platform,
913
+ skip_dlopen= dont_dlopen)
905
914
if ! verbose
906
915
# If we never got a chance to see the verbose output, give it here:
907
- locate (p, dest_prefix; verbose= true , platform= platform)
916
+ locate (p, dest_prefix; verbose= true , platform= platform,
917
+ skip_dlopen= dont_dlopen)
908
918
end
909
919
@error (" Built $(src_name) but $(variable_name (p)) still unsatisfied:" )
910
920
unsatisfied_so_die = true
@@ -917,7 +927,7 @@ function autobuild(dir::AbstractString,
917
927
# We also need to capture some info about each product
918
928
products_info = Dict {Product,Any} ()
919
929
for p in products
920
- product_path = locate (p, dest_prefix; platform= platform)
930
+ product_path = locate (p, dest_prefix; platform= platform, skip_dlopen = dont_dlopen )
921
931
products_info[p] = Dict (" path" => relpath (product_path, dest_prefix. path))
922
932
if p isa LibraryProduct || p isa FrameworkProduct
923
933
products_info[p][" soname" ] = something (
0 commit comments