packages feed

process-1.6.30.0: process.cabal

cabal-version: 2.4
name:          process
version:       1.6.30.0
-- NOTE: Don't forget to update ./changelog.md
license:       BSD-3-Clause
license-file:  LICENSE
maintainer:    libraries@haskell.org
bug-reports:   https://github.com/haskell/process/issues
synopsis:      Process libraries
category:      System
build-type:    Configure
description:
    This package contains libraries for dealing with system processes.
    .
    The typed-process package is a more recent take on a process API,
    which uses this package internally. It features better binary
    support, easier concurrency, and a more composable API. You can
    read more about it at
    <https://github.com/fpco/typed-process/#readme>.

extra-doc-files:
    changelog.md

extra-source-files:
    aclocal.m4
    configure
    configure.ac
    include/HsProcessConfig.h.in
    process.buildinfo
    exes/echo.bat
    exes/subdir/echo.bat
    cbits/posix/common.h

extra-tmp-files:
    autom4te.cache
    config.log
    config.status
    include/HsProcessConfig.h

source-repository head
    type:     git
    location: https://github.com/haskell/process.git

flag os-string
    description: Use the new os-string package
    default: False
    manual: False

library
    default-language: Haskell2010
    other-extensions:
        BangPatterns
        CPP
        InterruptibleFFI
        RecordWildCards
        Trustworthy
        Safe

    exposed-modules:
        System.Cmd
        System.Process
        System.Process.CommunicationHandle
        System.Process.CommunicationHandle.Internal
        System.Process.Environment.OsString
        System.Process.Internals
    other-modules: System.Process.Common
    if os(windows)
        c-sources:
            cbits/win32/runProcess.c
        other-modules: System.Process.Windows
        build-depends: Win32 >= 2.14.1.0 && < 2.15
        -- ole32 and rpcrt4 are needed to create GUIDs for unique named pipes
        -- for process.
        extra-libraries: kernel32, ole32, rpcrt4
        cpp-options: -DWINDOWS
    else
        build-depends: unix >= 2.8.0.0 && < 2.9
        if arch(javascript)
            js-sources:
                jsbits/process.js
            other-modules: System.Process.JavaScript
        else
            c-sources:
                cbits/posix/runProcess.c
                cbits/posix/fork_exec.c
                cbits/posix/posix_spawn.c
                cbits/posix/find_executable.c
            other-modules: System.Process.Posix

    -- On macOS, posix_spawn_file_actions_addchdir is available from macOS >= 26.
    -- We weakly reference this symbol when we are build on such a platform.
    -- However, weak references on MachO are hints to the dynamic loader, not the
    -- static linker, which will still expect the symbol to be defined somewhere.
    -- This means linking fails when we try to link an executable depending on
    -- process on a toolchain which doesn't have this symbol against a process
    -- library build on a toolchain with the symbol.
    -- See https://github.com/haskell/process/issues/376
    -- Hence: instruct the linker to explicilty allow undefined references to
    -- the symbol when linking against process on darwin
    if os(darwin)
        ld-options: -Wl,-U,_posix_spawn_file_actions_addchdir

    include-dirs: include
    install-includes:
        runProcess.h
        processFlags.h

    ghc-options: -Wall

    build-depends: base      >= 4.12.0.0 && < 4.24,
                   directory >= 1.1 && < 1.4,
                   deepseq   >= 1.1 && < 1.6

    if flag(os-string)
        build-depends: filepath >= 1.5.0.0 && < 1.6,
                       os-string >= 2.0.0 && < 2.1
    else
        build-depends: filepath >= 1.4.100.0 && < 1.5.0.0