lib: force user to include `<babeltrace2/babeltrace.h>`
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Wed, 10 Jul 2019 05:33:02 +0000 (01:33 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 18 Jul 2019 15:53:35 +0000 (11:53 -0400)
commit9df34b4472f50b5bc63407e4bfafa17304641cac
tree789107e14e2a9b358839d3d7537c3d30e5516a8d
parent3fd40f46e5599429f763b955ded1fe5d1e043922
lib: force user to include `<babeltrace2/babeltrace.h>`

This patch makes all the library headers except
`<babeltrace2/babeltrace.h>` refuse to be included directly. This will
allow us to change how those headers are organized, and even remove some
if needed (as long as we move the existing content to another existing
header), because we know the user does not include specific headers.

To do this, the main `<babeltrace2/babeltrace.h>` defines
`__BT_IN_BABELTRACE_H`, and each specific header does:

    #ifndef __BT_IN_BABELTRACE_H
    # error "Please include <babeltrace2/babeltrace.h> instead."
    #endif

at the beginning.

Because each specific header has the guarantee that it is included from
`<babeltrace2/babeltrace.h>`, they don't include
`<babeltrace2/func-status.h>`: `<babeltrace2/babeltrace.h>` includes it,
and clears the private status definitions itself at the end. Therefore
this patch removes `undef-func-status.h`.

Some parts of the project need to have access to the `__BT_FUNC_STATUS_*`
definitions. To do that, they do:

    #define __BT_IN_BABELTRACE_H
    #include <babeltrace2/func-status.h>

Because `<babeltrace2/babeltrace.h>` is now manually written and
maintained, this patch removes `extras/gen-babeltrace-h.py` which we
used to generate it from `include/Makefile.am`.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: Icc3bf0bec18a465024b316f02f84df7a75429b87
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1671
Tested-by: jenkins <jenkins@lttng.org>
109 files changed:
extras/gen-babeltrace-h.py [deleted file]
include/Makefile.am
include/babeltrace2/babeltrace.h
include/babeltrace2/current-thread.h
include/babeltrace2/error-cause-const.h
include/babeltrace2/error-const.h
include/babeltrace2/func-status.h
include/babeltrace2/graph/component-class-const.h
include/babeltrace2/graph/component-class-filter-const.h
include/babeltrace2/graph/component-class-filter.h
include/babeltrace2/graph/component-class-sink-const.h
include/babeltrace2/graph/component-class-sink.h
include/babeltrace2/graph/component-class-source-const.h
include/babeltrace2/graph/component-class-source.h
include/babeltrace2/graph/component-class.h
include/babeltrace2/graph/component-const.h
include/babeltrace2/graph/component-filter-const.h
include/babeltrace2/graph/component-sink-const.h
include/babeltrace2/graph/component-source-const.h
include/babeltrace2/graph/connection-const.h
include/babeltrace2/graph/graph-const.h
include/babeltrace2/graph/graph.h
include/babeltrace2/graph/message-const.h
include/babeltrace2/graph/message-discarded-events-const.h
include/babeltrace2/graph/message-discarded-events.h
include/babeltrace2/graph/message-discarded-packets-const.h
include/babeltrace2/graph/message-discarded-packets.h
include/babeltrace2/graph/message-event-const.h
include/babeltrace2/graph/message-event.h
include/babeltrace2/graph/message-iterator.h
include/babeltrace2/graph/message-message-iterator-inactivity-const.h
include/babeltrace2/graph/message-message-iterator-inactivity.h
include/babeltrace2/graph/message-packet-beginning-const.h
include/babeltrace2/graph/message-packet-beginning.h
include/babeltrace2/graph/message-packet-end-const.h
include/babeltrace2/graph/message-packet-end.h
include/babeltrace2/graph/message-stream-beginning-const.h
include/babeltrace2/graph/message-stream-beginning.h
include/babeltrace2/graph/message-stream-const.h
include/babeltrace2/graph/message-stream-end-const.h
include/babeltrace2/graph/message-stream-end.h
include/babeltrace2/graph/port-const.h
include/babeltrace2/graph/port-input-const.h
include/babeltrace2/graph/port-output-const.h
include/babeltrace2/graph/port-output-message-iterator.h
include/babeltrace2/graph/query-executor-const.h
include/babeltrace2/graph/query-executor.h
include/babeltrace2/graph/self-component-class-filter.h
include/babeltrace2/graph/self-component-class-sink.h
include/babeltrace2/graph/self-component-class-source.h
include/babeltrace2/graph/self-component-filter.h
include/babeltrace2/graph/self-component-port-input-message-iterator.h
include/babeltrace2/graph/self-component-port-input.h
include/babeltrace2/graph/self-component-port-output.h
include/babeltrace2/graph/self-component-port.h
include/babeltrace2/graph/self-component-sink.h
include/babeltrace2/graph/self-component-source.h
include/babeltrace2/graph/self-component.h
include/babeltrace2/graph/self-message-iterator.h
include/babeltrace2/logging.h
include/babeltrace2/plugin/plugin-const.h
include/babeltrace2/plugin/plugin-dev.h
include/babeltrace2/plugin/plugin-set-const.h
include/babeltrace2/property.h
include/babeltrace2/trace-ir/clock-class-const.h
include/babeltrace2/trace-ir/clock-class.h
include/babeltrace2/trace-ir/clock-snapshot-const.h
include/babeltrace2/trace-ir/event-class-const.h
include/babeltrace2/trace-ir/event-class.h
include/babeltrace2/trace-ir/event-const.h
include/babeltrace2/trace-ir/event.h
include/babeltrace2/trace-ir/field-class-const.h
include/babeltrace2/trace-ir/field-class.h
include/babeltrace2/trace-ir/field-const.h
include/babeltrace2/trace-ir/field-path-const.h
include/babeltrace2/trace-ir/field.h
include/babeltrace2/trace-ir/packet-const.h
include/babeltrace2/trace-ir/packet-context-field.h
include/babeltrace2/trace-ir/packet.h
include/babeltrace2/trace-ir/stream-class-const.h
include/babeltrace2/trace-ir/stream-class.h
include/babeltrace2/trace-ir/stream-const.h
include/babeltrace2/trace-ir/stream.h
include/babeltrace2/trace-ir/trace-class-const.h
include/babeltrace2/trace-ir/trace-class.h
include/babeltrace2/trace-ir/trace-const.h
include/babeltrace2/trace-ir/trace.h
include/babeltrace2/types.h
include/babeltrace2/undef-func-status.h [deleted file]
include/babeltrace2/util.h
include/babeltrace2/value-const.h
include/babeltrace2/value.h
include/babeltrace2/version.h
src/bindings/python/bt2/bt2/native_bt.i
src/common/common.h
src/lib/babeltrace2.c
src/lib/current-thread.c
src/lib/error.c
src/lib/error.h
src/lib/func-status.h
src/lib/lib-logging.c
src/lib/logging.c
src/lib/property.h
src/lib/util.c
src/lib/value.c
src/lib/value.h
src/logging/log.h
src/plugins/comp-logging.h
tests/ctf-writer/ctf_writer.c
This page took 0.034757 seconds and 4 git commands to generate.