Provided by: bear_2.4.3-1_all bug

NAME

       Bear - Build EAR

SYNOPSIS

       bear [options] [build command]

DESCRIPTION

       Bear is a tool to generate compilation database for clang tooling.

       The JSON compilation database <http://clang.llvm.org/docs/JSONCompilationDatabase.html> is
       used in Clang project to provide information how a single compilation unit was  processed.
       When that is available then it is easy to re-run the compilation with different programs.

       Bear  executes  the  original build command and intercepts the subsequent execution calls.
       To achieve that Bear uses library preload mechanism provided by the dynamic linker.  There
       is a library which defines the exec methods and used in every child processes of the build
       command.  The executable itself sets the environment up to child processes and writes  the
       output file.

OPTIONS

       --version
              Print out Bear version number.

       -v, --verbose
              Enable  verbose  output  from  Bear.   A  second,  third and fourth flags increases
              verbosity.

       -o file, --cdb file
              Specify output file.  (Default value provided.)  The  output  is  not  continuously
              updated, it's done when the build command finished.

       –field-output
              Ask to emit the output field for each entries in the output file.

       --use-cc program
              Hint Bear to classify the given program name as C compiler.

       --use-c++ program
              Hint Bear to classify the given program name as C++ compiler.

       --use-fortran program
              Hint Bear to classify the given program name as Fortran compiler.

       --use-only
              Force to use only the --use-cc and --use-c++ given compilers.

       --include directory
              Only  include  this  directories  or  files  to  the  output.  The flag can be used
              multiple times.  The directory is either absolute or relative  to  current  working
              directory.  Use --exclude to filter entries out from these directory.

       --exclude directory
              Exclude  these directories or files from the output.  The flag can be used multiple
              times.  The directory is either absolute or relative to current working  directory.
              The --include will not enable entries from these directories.

       -a, --append
              Use  previously  generated  output file and append the new entries to it.  This way
              you can run Bear continuously during work, and it keeps the compilation database up
              to date.  File deletion and addition are both considered.  But build process change
              (compiler flags change) might cause duplicate entries.

       -l path, --libear path
              Specify the preloaded library location.  (Default value provided.)

OUTPUT

       The JSON compilation database definition changed over time.  The current version  of  Bear
       generates entries where:

       directory
              has absolute path.

       file   has relative path to the directory.

       arguments
              used  instead  of command to avoid shell escaping problems.  The source file in the
              compiler call match to the  file  attribute,  therefore  it  is  relative  path  to
              directory.   Other  filesystem related references are not modified (those still can
              be absolute or relative depending the original command).

       Some non compilation related flags are filtered out from the final output.

EXIT STATUS

       Bear exit status is the exit status of the build command.  Except when bear crashes,  then
       it sets to non zero.

ENVIRONMENT

       INTERCEPT_BUILD_TARGET_DIR
              Temporary  directory to collect the execution reports at one place.  Directory path
              is derived from TMPDIR, TEMP or TMP environment variable.

       LD_PRELOAD
              Used by the dynamic loader on Linux, FreeBSD and other UNIX OS.  Value set by Bear,
              overrides previous value for child processes.

       DYLD_INSERT_LIBRARIES
              Used  by  the  dynamic loader on OS X.  Value set by Bear, overrides previous value
              for child processes.

       DYLD_FORCE_FLAT_NAMESPACE
              Used by the dynamic loader on OS X.  Value set by bear,  overrides  previous  value
              for child processes.

FILES

       libear.so or libear.dylib
              The preload library which implements the exec methods.

SEE ALSO

       ld.so(8), exec(3)

BUGS

       Because  Bear  uses LD_PRELOAD or DYLD_INSERT_LIBRARIES environment variables, it does not
       append to it, but overrides it.  So builds which are using these variables might not work.
       (I don't know any build tool which does that, but please let me know if you do.)

       Security  extension/modes  on  different operating systems might disable library preloads.
       This case Bear behaves normally, but  the  result  compilation  database  will  be  empty.
       (Please  make  sure  it's  not the case when reporting bugs.) Notable examples for enabled
       security modes are: SIP on OS X Captain and SELinux on Fedora, CentOS, RHEL.

COPYRIGHT

       Copyright (C) 2012-2019 by László Nagy <https://github.com/rizsotto/Bear>

AUTHORS

       László Nagy.