xref: /aosp_15_r20/external/gflags/src/config.h (revision 08ab5237c114d5c0eac1090c56f941d3f639d7d3)
1*08ab5237SOystein Eftevaag // Note: This header file is only used internally. It is not part of public interface!
2*08ab5237SOystein Eftevaag 
3*08ab5237SOystein Eftevaag #ifndef GFLAGS_CONFIG_H_
4*08ab5237SOystein Eftevaag #define GFLAGS_CONFIG_H_
5*08ab5237SOystein Eftevaag 
6*08ab5237SOystein Eftevaag 
7*08ab5237SOystein Eftevaag // ---------------------------------------------------------------------------
8*08ab5237SOystein Eftevaag // System checks
9*08ab5237SOystein Eftevaag 
10*08ab5237SOystein Eftevaag // CMake build configuration is written to defines.h file, unused by Bazel build
11*08ab5237SOystein Eftevaag #if !defined(GFLAGS_BAZEL_BUILD)
12*08ab5237SOystein Eftevaag #  include "defines.h"
13*08ab5237SOystein Eftevaag #endif
14*08ab5237SOystein Eftevaag 
15*08ab5237SOystein Eftevaag // gcc requires this to get PRId64, etc.
16*08ab5237SOystein Eftevaag #if defined(HAVE_INTTYPES_H) && !defined(__STDC_FORMAT_MACROS)
17*08ab5237SOystein Eftevaag #  define __STDC_FORMAT_MACROS 1
18*08ab5237SOystein Eftevaag #endif
19*08ab5237SOystein Eftevaag 
20*08ab5237SOystein Eftevaag // ---------------------------------------------------------------------------
21*08ab5237SOystein Eftevaag // Path separator
22*08ab5237SOystein Eftevaag #ifndef PATH_SEPARATOR
23*08ab5237SOystein Eftevaag #  ifdef OS_WINDOWS
24*08ab5237SOystein Eftevaag #    define PATH_SEPARATOR  '\\'
25*08ab5237SOystein Eftevaag #  else
26*08ab5237SOystein Eftevaag #    define PATH_SEPARATOR  '/'
27*08ab5237SOystein Eftevaag #  endif
28*08ab5237SOystein Eftevaag #endif
29*08ab5237SOystein Eftevaag 
30*08ab5237SOystein Eftevaag // ---------------------------------------------------------------------------
31*08ab5237SOystein Eftevaag // Windows
32*08ab5237SOystein Eftevaag 
33*08ab5237SOystein Eftevaag // Always export symbols when compiling a shared library as this file is only
34*08ab5237SOystein Eftevaag // included by internal modules when building the gflags library itself.
35*08ab5237SOystein Eftevaag // The gflags_declare.h header file will set it to import these symbols otherwise.
36*08ab5237SOystein Eftevaag #ifndef GFLAGS_DLL_DECL
37*08ab5237SOystein Eftevaag #  if GFLAGS_IS_A_DLL && defined(_MSC_VER)
38*08ab5237SOystein Eftevaag #    define GFLAGS_DLL_DECL __declspec(dllexport)
39*08ab5237SOystein Eftevaag #  elif defined(__GNUC__) && __GNUC__ >= 4
40*08ab5237SOystein Eftevaag #    define GFLAGS_DLL_DECL __attribute__((visibility("default")))
41*08ab5237SOystein Eftevaag #  else
42*08ab5237SOystein Eftevaag #    define GFLAGS_DLL_DECL
43*08ab5237SOystein Eftevaag #  endif
44*08ab5237SOystein Eftevaag #endif
45*08ab5237SOystein Eftevaag // Flags defined by the gflags library itself must be exported
46*08ab5237SOystein Eftevaag #ifndef GFLAGS_DLL_DEFINE_FLAG
47*08ab5237SOystein Eftevaag #  define GFLAGS_DLL_DEFINE_FLAG GFLAGS_DLL_DECL
48*08ab5237SOystein Eftevaag #endif
49*08ab5237SOystein Eftevaag 
50*08ab5237SOystein Eftevaag #ifdef OS_WINDOWS
51*08ab5237SOystein Eftevaag // The unittests import the symbols of the shared gflags library
52*08ab5237SOystein Eftevaag #  if GFLAGS_IS_A_DLL && defined(_MSC_VER)
53*08ab5237SOystein Eftevaag #    define GFLAGS_DLL_DECL_FOR_UNITTESTS __declspec(dllimport)
54*08ab5237SOystein Eftevaag #  endif
55*08ab5237SOystein Eftevaag #  include "windows_port.h"
56*08ab5237SOystein Eftevaag #endif
57*08ab5237SOystein Eftevaag 
58*08ab5237SOystein Eftevaag 
59*08ab5237SOystein Eftevaag #endif // GFLAGS_CONFIG_H_
60