| # This file is included for every single target. |
| # Use it to define Platform2 wide settings and defaults. |
| |
| { |
| 'variables': { |
| # Set this to 0 if you'd like to disable -Werror. |
| 'enable_werror%': 1, |
| |
| # Set this to 1 if you'd like to enable debugging flags. |
| 'debug%': 0, |
| |
| # Set this to 0 if you'd like to disable -clang-syntax. |
| 'clang_syntax%': 1, |
| |
| # Set this to 1 if your C++ code throws or catches exceptions. |
| 'enable_exceptions%': 0, |
| |
| # Set this to 0 if you want to disable Large File Support (LFS). |
| 'enable_lfs%': 1, |
| |
| # DON'T EDIT BELOW THIS LINE. |
| # You can declare new variables, but you shouldn't be changing their |
| # default settings. The platform python build helpers set them up. |
| 'USE_cheets%': 0, |
| 'USE_attestation%': 0, |
| 'USE_binder%': 0, |
| 'USE_buffet%': 0, |
| 'USE_cellular%': 0, |
| 'USE_chromeos_dbus%': 0, |
| 'USE_cros_host%': 0, |
| 'USE_dhcpv6%': 0, |
| 'USE_feedback%': 0, |
| 'USE_ftdi_tpm%': 0, |
| 'USE_gdmwimax%': 0, |
| 'USE_libcros%': 1, |
| 'USE_mtd%': 0, |
| 'USE_opengles%': 0, |
| 'USE_passive_metrics%': 0, |
| 'USE_power_management%': 0, |
| 'USE_pppoe%': 0, |
| 'USE_profile%': 0, |
| 'USE_systemd%': 0, |
| 'USE_tcmalloc%': 0, |
| 'USE_test%': 0, |
| 'USE_tpm2%': 0, |
| 'USE_tpm2_simulator%': 0, |
| 'USE_vpn%': 0, |
| 'USE_wake_on_wifi%': 0, |
| 'USE_wifi%': 0, |
| 'USE_wifi_bootstrapping%': 0, |
| 'USE_wimax%': 0, |
| 'USE_wired_8021x%': 0, |
| |
| 'external_cflags%': '', |
| 'external_cxxflags%': '', |
| 'external_cppflags%': '', |
| 'external_ldflags%': '', |
| |
| 'deps%': '', |
| 'libdir%': '/usr/lib', |
| |
| 'cflags_no_exceptions': [ |
| '-fno-exceptions', |
| '-fno-unwind-tables', |
| '-fno-asynchronous-unwind-tables', |
| ], |
| }, |
| 'conditions': [ |
| ['USE_cros_host == 1', { |
| 'variables': { |
| 'pkg-config': 'pkg-config', |
| 'sysroot': '', |
| }, |
| }], |
| ], |
| 'target_defaults': { |
| 'include_dirs': [ |
| '<(INTERMEDIATE_DIR)/include', |
| '<(SHARED_INTERMEDIATE_DIR)/include', |
| '<(platform2_root)', |
| '<(platform2_root)/../platform', # src/platform |
| ], |
| 'cflags': [ |
| '-Wall', |
| '-Wno-psabi', |
| '-ggdb3', |
| '-fstack-protector-strong', |
| '-Wformat=2', |
| '-fvisibility=internal', |
| '-Wa,--noexecstack', |
| ], |
| 'cflags_c': [ |
| '-std=gnu11', |
| '<@(external_cppflags)', |
| '<@(external_cflags)', |
| ], |
| 'cflags_cc': [ |
| '-std=gnu++11', |
| '<@(external_cppflags)', |
| '<@(external_cxxflags)', |
| ], |
| 'link_settings': { |
| 'ldflags': [ |
| '<(external_ldflags)', |
| '-Wl,-z,relro', |
| '-Wl,-z,noexecstack', |
| '-Wl,-z,now', |
| '-Wl,--as-needed', |
| ], |
| }, |
| 'conditions': [ |
| ['enable_werror == 1', { |
| 'cflags+': [ |
| '-Werror', |
| ], |
| }], |
| ['USE_cros_host == 1', { |
| 'defines': [ |
| 'NDEBUG', |
| ], |
| }], |
| ['enable_lfs == 1', { |
| 'defines': [ |
| # Enable support for new LFS funcs (ftello/etc...). |
| '_LARGEFILE_SOURCE', |
| # Enable support for 64bit variants (off64_t/fseeko64/etc...). |
| '_LARGEFILE64_SOURCE', |
| # Default to 64bit variants (off_t is defined as off64_t). |
| '_FILE_OFFSET_BITS=64', |
| ], |
| }], |
| ['USE_cros_host == 0 and clang_syntax == 1', { |
| 'cflags': [ |
| '-clang-syntax', |
| ], |
| }], |
| ['enable_exceptions == 0', { |
| 'cflags_cc': [ |
| '<@(cflags_no_exceptions)', |
| ], |
| 'cflags_c': [ |
| '<@(cflags_no_exceptions)', |
| ], |
| }], |
| ['enable_exceptions == 1', { |
| # Remove the no-exceptions flags from both cflags_cc and cflags_c. |
| 'cflags_cc!': [ |
| '<@(cflags_no_exceptions)', |
| ], |
| 'cflags_c!': [ |
| '<@(cflags_no_exceptions)', |
| ], |
| }], |
| ['USE_cros_host == 0', { |
| 'include_dirs': [ |
| '<(sysroot)/usr/include', |
| ], |
| 'cflags': [ |
| '--sysroot=<(sysroot)', |
| ], |
| 'link_settings': { |
| 'ldflags': [ |
| '--sysroot=<(sysroot)', |
| ], |
| }, |
| }], |
| ['deps != ""', { |
| 'cflags+': [ |
| # We don't care about getting rid of duplicate cflags, so we use |
| # @ to expand to list. |
| '>!@(<(pkg-config) >(deps) --cflags)', |
| ], |
| 'link_settings': { |
| # We don't care about getting rid of duplicate ldflags, so we use |
| # @ to expand to list. |
| 'ldflags+': [ |
| '>!@(<(pkg-config) >(deps) --libs-only-L --libs-only-other)', |
| ], |
| 'libraries+': [ |
| # Note there's no @ here intentionally, we want to keep libraries |
| # returned by pkg-config as a single string in order to maintain |
| # order for linking (rather than a list of individual libraries |
| # which GYP would make unique for us). |
| '>!(<(pkg-config) >(deps) --libs-only-l)', |
| ], |
| }, |
| }], |
| ['USE_tcmalloc == 1', { |
| 'link_settings': { |
| 'libraries': [ |
| '-ltcmalloc', |
| ], |
| }, |
| }], |
| ], |
| 'target_conditions': [ |
| ['_type == "executable"', { |
| 'cflags': ['-fPIE'], |
| 'ldflags': ['-pie'], |
| }], |
| ['_type == "static_library"', { |
| 'cflags': ['-fPIE'], |
| }], |
| ['_type == "shared_library"', { |
| 'cflags': ['-fPIC'], |
| }], |
| ['OS!="win"', { |
| 'sources/': [ ['exclude', '_win(_browsertest|_unittest)?\\.(h|cc)$'], |
| ['exclude', '(^|/)win/'], |
| ['exclude', '(^|/)win_[^/]*\\.(h|cc)$'] ], |
| }], |
| ['OS!="mac"', { |
| 'sources/': [ ['exclude', '_(cocoa|mac)(_unittest)?\\.(h|cc|mm?)$'], |
| ['exclude', '(^|/)(cocoa|mac)/'] ], |
| }], |
| ['OS!="ios"', { |
| 'sources/': [ ['exclude', '_ios(_unittest)?\\.(h|cc|mm?)$'], |
| ['exclude', '(^|/)ios/'] ], |
| }], |
| ['(OS!="mac" and OS!="ios")', { |
| 'sources/': [ ['exclude', '\\.mm?$' ] ], |
| }], |
| ], |
| }, |
| } |