(executable
 (name detect)
 (libraries dune-configurator unix))

(executable
 (name check))

(executable
 (name all_available))

(rule
 (target all_libs_available)
 (deps
  avutil_available
  avcodec_available
  avfilter_available
  av_available
  swscale_available
  swresample_available
  avdevice_available)
 (action
  (with-stdout-to
   %{target}
   (run
    ./all_available.exe
    avutil_available
    avcodec_available
    avfilter_available
    av_available
    swscale_available
    swresample_available
    avdevice_available))))

(rule
 (targets
  avutil_available
  avutil_c_flags
  avutil_c_flags.sexp
  avutil_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   avutil
   "libavutil libavcodec"
   "libavutil >= 57.24.100, libavcodec >= 59.24.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets
  avcodec_available
  avcodec_c_flags
  avcodec_c_flags.sexp
  avcodec_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   avcodec
   libavcodec
   "libavcodec >= 59.24.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets av_available av_c_flags av_c_flags.sexp av_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   av
   "libavutil libavformat"
   "libavutil >= 57.24.100, libavformat >= 59.19.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets
  avfilter_available
  avfilter_c_flags
  avfilter_c_flags.sexp
  avfilter_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   avfilter
   libavfilter
   "libavfilter >= 8.28.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets
  avdevice_available
  avdevice_c_flags
  avdevice_c_flags.sexp
  avdevice_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   avdevice
   libavdevice
   "libavdevice >= 59.5.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets
  swscale_available
  swscale_c_flags
  swscale_c_flags.sexp
  swscale_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   swscale
   libswscale
   "libswscale >= 6.5.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))

(rule
 (targets
  swresample_available
  swresample_c_flags
  swresample_c_flags.sexp
  swresample_c_library_flags.sexp)
 (deps (universe))
 (action
  (run
   ../detect/detect.exe
   --os-type
   %{os_type}
   --context
   %{context_name}
   swresample
   libswresample
   "libswresample >= 4.5.100"
   -Wall
   -Wextra
   -Werror=unused-variable
   -Werror=unused-parameter)))
