{plugins, [pc]}.

{provider_hooks, [
    {pre, [
        {compile, {pc, compile}},
        {clean, {pc, clean}}
    ]}
]}.

{port_env, [
    {"linux|bsd|Darwin", "LDFLAGS", "-lpcap $LDFLAGS -Wl,-z,relro,-z,now -Wl,-z,noexecstack"},
    {"linux|bsd|Darwin", "CFLAGS",
        "$CFLAGS $EWPCAP_CFLAGS -Wall -pedantic -fwrapv -D_FORTIFY_SOURCE=2 -O3 -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing -Wconversion -Wshadow -Wpointer-arith -Wcast-qual"},
    {"solaris", "LDFLAGS", "-lpcap $LDFLAGS"},
    {"solaris", "CFLAGS", "-std=c99 -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__=1 $CFLAGS"},
    % Windows support
    {"win32", "CC", "cl.exe"},
    {"win32", "CXX", "cl.exe"},
    {"win32", "LINKER", "link.exe"},
    {"win32", "DRV_CFLAGS", "/W4 /wd4100 /wd4127 /D__WIN32__ /DWIN32"},
    {"win32", "DRV_LDFLAGS",
        "$DRV_LDFLAGS /LIBPATH:\"$WindowsKitLibUm\" /LIBPATH:\"$WindowsKitLibUcrt\" ws2_32.lib wpcap.lib Packet.lib"}
]}.

{port_specs, [
    {"linux|bsd|darwin", "priv/ewpcap.so", ["c_src/ewpcap.c"]},
    {"solaris", "priv/ewpcap.so", ["c_src/ewpcap.c"]},
    {"win32", "priv/ewpcap.dll", ["c_src/ewpcap.c"]}
]}.

{post_hooks, [
    {edoc,
        "ex_doc --config .ex_doc.config --source-url \"https://github.com/msantos/ewpcap\" --source-ref \"master\" \"ewpcap\" `erl -noshell -s init stop -eval '{ok, [{_,_,X}]} = file:consult(\"src/ewpcap.app.src\"), io:format(\"~s\", [proplists:get_value(vsn, X, \"0.0.0\")]).'` _build/default/lib/ewpcap/ebin"}
]}.

{edoc_opts, [
    {doclet, edoc_doclet_chunks},
    {layout, edoc_layout_chunks},
    {dir, "_build/default/lib/ewpcap/doc"}
]}.

{dialyzer, [
    {warnings, [
        unmatched_returns,
        error_handling,
        race_conditions,
        underspecs
    ]}
]}.

{project_plugins, [erlfmt]}.

{erlfmt, [write]}.
