if (ENABLE_BUBBLEWRAP_SANDBOX)
    find_program(BWRAP_EXECUTABLE bwrap)
    if (NOT BWRAP_EXECUTABLE)
        message(FATAL_ERROR "bwrap executable is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    endif ()

    find_package(Libseccomp)
    if (NOT LIBSECCOMP_FOUND)
        message(FATAL_ERROR "libseccomp is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    endif ()

    find_program(DBUS_PROXY_EXECUTABLE xdg-dbus-proxy)
    if (NOT DBUS_PROXY_EXECUTABLE)
        message(FATAL_ERROR "xdg-dbus-proxy not found and is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    endif ()

    if (NOT CMAKE_CROSSCOMPILING)
        execute_process(
            COMMAND "${BWRAP_EXECUTABLE}" --version
            RESULT_VARIABLE BWRAP_RET
            OUTPUT_VARIABLE BWRAP_OUTPUT
        )
        if (BWRAP_RET)
            message(FATAL_ERROR "Failed to run ${BWRAP_EXECUTABLE}")
        endif ()
        string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" BWRAP_VERSION "${BWRAP_OUTPUT}")
        if (NOT "${BWRAP_VERSION}" VERSION_GREATER_EQUAL "0.3.1")
            message(FATAL_ERROR "bwrap must be >= 0.3.1 but ${BWRAP_VERSION} found")
        endif ()
    elseif (NOT SILENCE_CROSS_COMPILATION_NOTICES)
        message(NOTICE
            "***--------------------------------------------------------***\n"
            "***  Cannot check Bubblewrap version when cross-compiling. ***\n"
            "***  The target system MUST have version 0.3.1 or newer.   ***\n"
            "***  Use the BWRAP_EXECUTABLE and DBUS_PROXY_EXECUTABLE    ***\n"
            "***  variables to set the run-time paths for the 'bwrap'   ***\n"
            "***  and 'xdg-dbus-proxy' programs.                        ***\n"
            "***--------------------------------------------------------***"
        )
    endif ()

    add_definitions(-DBWRAP_EXECUTABLE="${BWRAP_EXECUTABLE}")
    add_definitions(-DDBUS_PROXY_EXECUTABLE="${DBUS_PROXY_EXECUTABLE}")
endif ()
