(lang dune 3.20)
(name ambient-context)
(sections (lib .) (libexec .) (doc ../../doc/ambient-context))
(files
 (lib
  (META
   ambient_context.cmi
   ambient_context.cmti
   ambient_context.mli
   atomic/ambient_context_atomic.a
   atomic/ambient_context_atomic.cma
   atomic/ambient_context_atomic.cmi
   atomic/ambient_context_atomic.cmt
   atomic/ambient_context_atomic.cmx
   atomic/ambient_context_atomic.cmxa
   atomic/ambient_context_atomic.ml
   atomic/ambient_context_atomic__Atomic.cmi
   atomic/ambient_context_atomic__Atomic.cmt
   atomic/ambient_context_atomic__Atomic.cmti
   atomic/ambient_context_atomic__Atomic.cmx
   atomic/atomic.ml
   atomic/atomic.mli
   core/ambient_context_core.a
   core/ambient_context_core.cma
   core/ambient_context_core.cmi
   core/ambient_context_core.cmt
   core/ambient_context_core.cmx
   core/ambient_context_core.cmxa
   core/ambient_context_core.ml
   core/ambient_context_core__Ambient_context_hmap.cmi
   core/ambient_context_core__Ambient_context_hmap.cmt
   core/ambient_context_core__Ambient_context_hmap.cmx
   core/ambient_context_core__Types.cmi
   core/ambient_context_core__Types.cmt
   core/ambient_context_core__Types.cmti
   core/ambient_context_core__Types.cmx
   core/ambient_context_hmap.ml
   core/types.ml
   core/types.mli
   dune-package
   opam
   thread_local/ambient_context_thread_local.a
   thread_local/ambient_context_thread_local.cma
   thread_local/ambient_context_thread_local.cmi
   thread_local/ambient_context_thread_local.cmt
   thread_local/ambient_context_thread_local.cmx
   thread_local/ambient_context_thread_local.cmxa
   thread_local/ambient_context_thread_local.ml
   thread_local/ambient_context_thread_local__Thread_local.cmi
   thread_local/ambient_context_thread_local__Thread_local.cmt
   thread_local/ambient_context_thread_local__Thread_local.cmti
   thread_local/ambient_context_thread_local__Thread_local.cmx
   thread_local/thread_local.ml
   thread_local/thread_local.mli
   tls/ambient_context_tls.a
   tls/ambient_context_tls.cma
   tls/ambient_context_tls.cmi
   tls/ambient_context_tls.cmt
   tls/ambient_context_tls.cmx
   tls/ambient_context_tls.cmxa
   tls/ambient_context_tls.ml
   unix/ambient_context.cmi
   unix/ambient_context.cmt
   unix/ambient_context.cmx
   unix/ambient_context.ml
   unix/ambient_context__ambient_context_unix__.cmi
   unix/ambient_context__ambient_context_unix__.cmt
   unix/ambient_context__ambient_context_unix__.cmx
   unix/ambient_context__ambient_context_unix__.ml
   unix/ambient_context_unix.a
   unix/ambient_context_unix.cma
   unix/ambient_context_unix.cmxa))
 (libexec
  (atomic/ambient_context_atomic.cmxs
   core/ambient_context_core.cmxs
   thread_local/ambient_context_thread_local.cmxs
   tls/ambient_context_tls.cmxs
   unix/ambient_context_unix.cmxs))
 (doc (README.md)))
(library
 (name ambient-context)
 (kind normal)
 (virtual)
 (synopsis
  "Abstraction over thread-local storage and continuation-local storage mechanisms")
 (requires ambient-context.core)
 (default_implementation ambient-context.unix)
 (main_module_name Ambient_context)
 (modes byte native)
 (modules
  (singleton
   (obj_name ambient_context)
   (visibility public)
   (kind virtual)
   (source (path Ambient_context) (intf (path ambient_context.mli))))))
(library
 (name ambient-context.atomic)
 (kind normal)
 (synopsis "Compatibility package for the Atomic module for ambient-context")
 (archives
  (byte atomic/ambient_context_atomic.cma)
  (native atomic/ambient_context_atomic.cmxa))
 (plugins
  (byte atomic/ambient_context_atomic.cma)
  (native atomic/ambient_context_atomic.cmxs))
 (native_archives atomic/ambient_context_atomic.a)
 (main_module_name Ambient_context_atomic)
 (modes byte native)
 (modules
  (wrapped
   (group
    (alias
     (obj_name ambient_context_atomic)
     (visibility public)
     (kind alias)
     (source
      (path Ambient_context_atomic)
      (impl (path atomic/ambient_context_atomic.ml-gen))))
    (name Ambient_context_atomic)
    (modules
     (module
      (obj_name ambient_context_atomic__Atomic)
      (visibility public)
      (source
       (path Atomic)
       (intf (path atomic/atomic.mli))
       (impl (path atomic/atomic.ml))))))
   (wrapped true))))
(library
 (name ambient-context.core)
 (kind normal)
 (archives
  (byte core/ambient_context_core.cma)
  (native core/ambient_context_core.cmxa))
 (plugins
  (byte core/ambient_context_core.cma)
  (native core/ambient_context_core.cmxs))
 (native_archives core/ambient_context_core.a)
 (requires hmap)
 (main_module_name Ambient_context_core)
 (modes byte native)
 (modules
  (wrapped
   (group
    (alias
     (obj_name ambient_context_core)
     (visibility public)
     (kind alias)
     (source
      (path Ambient_context_core)
      (impl (path core/ambient_context_core.ml-gen))))
    (name Ambient_context_core)
    (modules
     (module
      (obj_name ambient_context_core__Ambient_context_hmap)
      (visibility public)
      (source
       (path Ambient_context_hmap)
       (impl (path core/ambient_context_hmap.ml))))
     (module
      (obj_name ambient_context_core__Types)
      (visibility public)
      (source
       (path Types)
       (intf (path core/types.mli))
       (impl (path core/types.ml))))))
   (wrapped true))))
(library
 (name ambient-context.thread_local)
 (kind normal)
 (synopsis
  "Thread-local storage for ambient-context, extracted from ocaml-opentelemetry")
 (archives
  (byte thread_local/ambient_context_thread_local.cma)
  (native thread_local/ambient_context_thread_local.cmxa))
 (plugins
  (byte thread_local/ambient_context_thread_local.cma)
  (native thread_local/ambient_context_thread_local.cmxs))
 (native_archives thread_local/ambient_context_thread_local.a)
 (requires threads ambient-context.atomic)
 (main_module_name Ambient_context_thread_local)
 (modes byte native)
 (modules
  (wrapped
   (group
    (alias
     (obj_name ambient_context_thread_local)
     (visibility public)
     (kind alias)
     (source
      (path Ambient_context_thread_local)
      (impl (path thread_local/ambient_context_thread_local.ml-gen))))
    (name Ambient_context_thread_local)
    (modules
     (module
      (obj_name ambient_context_thread_local__Thread_local)
      (visibility public)
      (source
       (path Thread_local)
       (intf (path thread_local/thread_local.mli))
       (impl (path thread_local/thread_local.ml))))))
   (wrapped true))))
(library
 (name ambient-context.tls)
 (kind normal)
 (synopsis "Storage backend for ambient-context using thread-local storage")
 (archives
  (byte tls/ambient_context_tls.cma)
  (native tls/ambient_context_tls.cmxa))
 (plugins
  (byte tls/ambient_context_tls.cma)
  (native tls/ambient_context_tls.cmxs))
 (native_archives tls/ambient_context_tls.a)
 (requires ambient-context.core ambient-context.thread_local)
 (main_module_name Ambient_context_tls)
 (modes byte native)
 (modules
  (singleton
   (obj_name ambient_context_tls)
   (visibility public)
   (source
    (path Ambient_context_tls)
    (impl (path tls/ambient_context_tls.ml))))))
(library
 (name ambient-context.unix)
 (kind normal)
 (archives
  (byte unix/ambient_context_unix.cma)
  (native unix/ambient_context_unix.cmxa))
 (plugins
  (byte unix/ambient_context_unix.cma)
  (native unix/ambient_context_unix.cmxs))
 (native_archives unix/ambient_context_unix.a)
 (requires
  ambient-context
  ambient-context.core
  ambient-context.thread_local
  ambient-context.tls)
 (implements ambient-context)
 (main_module_name Ambient_context)
 (modes byte native)
 (modules
  (wrapped
   (group
    (alias
     (obj_name ambient_context__ambient_context_unix__)
     (visibility public)
     (kind alias)
     (source
      (path Ambient_context__ambient_context_unix__)
      (impl (path unix/ambient_context__ambient_context_unix__.ml-gen))))
    (name Ambient_context)
    (modules
     (module
      (obj_name ambient_context)
      (visibility public)
      (kind impl_vmodule)
      (source (path Ambient_context) (impl (path unix/ambient_context.ml))))))
   (wrapped true))))
