diff --git a/src/client/opamAction.ml b/src/client/opamAction.ml index 2ac7be2d11b..cdcedcdf14e 100644 --- a/src/client/opamAction.ml +++ b/src/client/opamAction.ml @@ -542,7 +542,12 @@ let compilation_env t opam = git_location ~comment:"Git binary path"]) @ let cygwin_env = match OpamStd.Env.getopt "CYGWIN" with | None | Some "" -> "winsymlinks:native" - | Some prev -> "winsymlinks:native " ^ prev + | Some prev -> + let is_native s = (s = "winsymlinks:nativestrict" || s = "winsymlinks:native") in + if List.exists is_native (String.split_on_char ' ' prev) then + prev (* Either winsymlinks:native or winsymlinks:nativestrict already in CYGWIN *) + else + prev ^ " winsymlinks:native" (* Override any other setting *) in [ OpamTypesBase.env_update_resolved "CYGWIN" Eq cygwin_env ~comment:"winsymlinks:native" ]