@@ -884,8 +884,17 @@ let avoid_version st nv =
884
884
has_avoid_flag)
885
885
+! false )
886
886
887
+ let undefined_filter_variable nv v =
888
+ (if OpamFormatConfig. (! r.strict) then
889
+ OpamConsole. error_and_exit `File_error
890
+ " Undefined filter variable %s in dependencies of %s"
891
+ else
892
+ log
893
+ " ERR: Undefined filter variable %s in dependencies of %s" )
894
+ (OpamVariable.Full. to_string v) (OpamPackage. to_string nv)
895
+
887
896
let package_env_t st ~force_dev_deps ~test ~doc ~dev_setup
888
- ~requested_allpkgs nv v =
897
+ ~requested_allpkgs ?( err_undefined = true ) nv v =
889
898
if List. mem v OpamPackageVar. predefined_depends_variables then
890
899
match OpamVariable.Full. to_string v with
891
900
| "dev" ->
@@ -899,19 +908,17 @@ let package_env_t st ~force_dev_deps ~test ~doc ~dev_setup
899
908
| _ -> None (* Computation delayed to the solver *)
900
909
else
901
910
let r = OpamPackageVar. resolve_switch ~package: nv st v in
902
- if r = None then
903
- (if OpamFormatConfig. (! r.strict) then
904
- OpamConsole. error_and_exit `File_error
905
- " Undefined filter variable %s in dependencies of %s"
906
- else
907
- log
908
- " ERR: Undefined filter variable %s in dependencies of %s" )
909
- (OpamVariable.Full. to_string v) (OpamPackage. to_string nv);
911
+ if err_undefined && r = None then
912
+ undefined_filter_variable nv v;
910
913
r
911
914
912
915
let get_dependencies_t st ~force_dev_deps ~test ~doc ~dev_setup
913
916
~requested_allpkgs deps opams =
914
917
let filter_undefined nv =
918
+ let warn_undefined v =
919
+ if not (List. mem v OpamPackageVar. predefined_depends_variables) then
920
+ undefined_filter_variable nv v
921
+ in
915
922
OpamFormula. map (fun (name , fc ) ->
916
923
let fc =
917
924
OpamFormula. map (function
@@ -923,6 +930,9 @@ let get_dependencies_t st ~force_dev_deps ~test ~doc ~dev_setup
923
930
" Undefined filter variable %s in dependencies of %s"
924
931
(OpamVariable. to_string v) (OpamPackage. to_string nv);
925
932
Atom (Filter (FBool false ))
933
+ | (Filter filter ) as f ->
934
+ List. iter warn_undefined (OpamFilter. variables filter);
935
+ Atom f
926
936
| f -> Atom f)
927
937
fc
928
938
in
@@ -931,7 +941,7 @@ let get_dependencies_t st ~force_dev_deps ~test ~doc ~dev_setup
931
941
OpamPackage.Map. mapi (fun nv opam ->
932
942
OpamFilter. partial_filter_formula
933
943
(package_env_t st ~force_dev_deps ~test ~doc
934
- ~dev_setup ~requested_allpkgs nv)
944
+ ~dev_setup ~requested_allpkgs ~err_undefined: false nv)
935
945
(deps opam)
936
946
|> filter_undefined nv) opams
937
947
0 commit comments