123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- {
- 'variables': {
- # Clang stuff.
- 'make_clang_dir%': 'vendor/llvm-build/Release+Asserts',
- # Set this to true when building with Clang.
- 'clang%': 1,
- # Set this to the absolute path to sccache when building with sccache
- 'cc_wrapper%': '',
- # Path to mips64el toolchain.
- 'make_mips64_dir%': 'vendor/gcc-4.8.3-d197-n64-loongson/usr',
- 'variables': {
- # The minimum macOS SDK version to use.
- 'mac_sdk_min%': '10.12',
- # Set ARM architecture version.
- 'arm_version%': 7,
- # Set NEON compilation flags.
- 'arm_neon%': 1,
- # Abosulte path to source root.
- 'source_root%': '<!(node <(DEPTH)/tools/atom_source_root.js)',
- },
- # Copy conditionally-set variables out one scope.
- 'mac_sdk_min%': '<(mac_sdk_min)',
- 'arm_version%': '<(arm_version)',
- 'arm_neon%': '<(arm_neon)',
- 'source_root%': '<(source_root)',
- # Variables to control Link-Time Optimization (LTO).
- 'use_lto%': 0,
- 'use_lto_o2%': 0,
- 'conditions': [
- # Do not use Clang on Windows or when building for mips64el.
- ['OS=="win" or target_arch=="mips64el"', {
- 'clang%': 0,
- }], # OS=="win"
- # Search for the available version of SDK.
- ['OS=="mac"', {
- 'mac_sdk%': '<!(python <(DEPTH)/tools/mac/find_sdk.py <(mac_sdk_min))',
- }],
- ['OS=="linux"', {
- 'variables': {
- # The system libdir used for this ABI.
- 'system_libdir%': 'lib',
- # Setting the path to sysroot.
- 'conditions': [
- ['target_arch=="arm"', {
- # sysroot needs to be an absolute path otherwise it generates
- # incorrect results when passed to pkg-config
- 'sysroot%': '<(source_root)/vendor/debian_stretch_arm-sysroot',
- }],
- ['target_arch=="arm64"', {
- 'sysroot%': '<(source_root)/vendor/debian_stretch_arm64-sysroot',
- }],
- ['target_arch=="ia32"', {
- 'sysroot%': '<(source_root)/vendor/debian_stretch_i386-sysroot',
- }],
- ['target_arch=="x64"', {
- 'sysroot%': '<(source_root)/vendor/debian_stretch_amd64-sysroot',
- }],
- ['target_arch=="mips64el"', {
- 'sysroot%': '<(source_root)/vendor/debian_jessie_mips64-sysroot',
- }],
- ],
- },
- # Copy conditionally-set variables out one scope.
- 'sysroot%': '<(sysroot)',
- 'system_libdir%': '<(system_libdir)',
- # Redirect pkg-config to search from sysroot.
- 'pkg-config%': '<(source_root)/tools/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)" "<(system_libdir)"',
- }],
- # Set default compiler flags depending on ARM version.
- ['arm_version==6', {
- 'arm_arch%': 'armv6',
- 'arm_tune%': '',
- 'arm_fpu%': 'vfp',
- 'arm_float_abi%': 'softfp',
- 'arm_thumb%': 0,
- }], # arm_version==6
- ['arm_version==7', {
- 'arm_arch%': 'armv7-a',
- 'arm_tune%': 'generic-armv7-a',
- 'conditions': [
- ['arm_neon==1', {
- 'arm_fpu%': 'neon',
- }, {
- 'arm_fpu%': 'vfpv3-d16',
- }],
- ],
- 'arm_float_abi%': 'hard',
- 'arm_thumb%': 1,
- }], # arm_version==7
- ],
- },
- 'conditions': [
- # Setup cc_wrapper
- ['cc_wrapper!=""', {
- 'make_global_settings': [
- ['CC_wrapper', '<(cc_wrapper)'],
- ['CXX_wrapper', '<(cc_wrapper)'],
- ['CC.host_wrapper', '<(cc_wrapper)'],
- ['CXX.host_wrapper', '<(cc_wrapper)']
- ],
- }],
- # Setup building with clang.
- ['clang==1', {
- 'make_global_settings': [
- ['CC', '<(make_clang_dir)/bin/clang'],
- ['CXX', '<(make_clang_dir)/bin/clang++'],
- ['CC.host', '$(CC)'],
- ['CXX.host', '$(CXX)'],
- ],
- 'target_defaults': {
- 'xcode_settings': {
- 'CC': '<(make_clang_dir)/bin/clang',
- 'LDPLUSPLUS': '<(make_clang_dir)/bin/clang++',
- 'OTHER_CFLAGS': [
- '-fcolor-diagnostics',
- ],
- 'GCC_C_LANGUAGE_STANDARD': 'c99', # -std=c99
- 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++
- 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14', # -std=c++14
- },
- 'target_conditions': [
- ['_target_name in ["electron", "brightray"]', {
- 'conditions': [
- ['OS=="mac"', {
- 'xcode_settings': {
- 'OTHER_CFLAGS': [
- "-Xclang",
- "-load",
- "-Xclang",
- "<(source_root)/<(make_clang_dir)/lib/libFindBadConstructs.dylib",
- "-Xclang",
- "-add-plugin",
- "-Xclang",
- "find-bad-constructs",
- "-Xclang",
- "-plugin-arg-find-bad-constructs",
- "-Xclang",
- "check-auto-raw-pointer",
- ],
- },
- }, { # OS=="mac"
- 'cflags_cc': [
- "-Xclang",
- "-load",
- "-Xclang",
- "<(source_root)/<(make_clang_dir)/lib/libFindBadConstructs.so",
- "-Xclang",
- "-add-plugin",
- "-Xclang",
- "find-bad-constructs",
- "-Xclang",
- "-plugin-arg-find-bad-constructs",
- "-Xclang",
- "check-auto-raw-pointer",
- ],
- }],
- ],
- }],
- ['OS=="mac" and _type in ["executable", "shared_library"]', {
- 'xcode_settings': {
- # On some machines setting CLANG_CXX_LIBRARY doesn't work for
- # linker.
- 'OTHER_LDFLAGS': [ '-stdlib=libc++' ],
- },
- }],
- ['OS=="linux" and _toolset=="target"', {
- 'cflags_cc': [
- '-std=gnu++14',
- '-nostdinc++',
- '-isystem<(libchromiumcontent_src_dir)/buildtools/third_party/libc++/trunk/include',
- '-isystem<(libchromiumcontent_src_dir)/buildtools/third_party/libc++abi/trunk/include',
- ],
- 'ldflags': [
- '-nostdlib++',
- ],
- }],
- ['OS=="linux" and _toolset=="host"', {
- 'cflags_cc': [
- '-std=gnu++14',
- ],
- }],
- ],
- },
- }], # clang==1
- ['target_arch=="mips64el"', {
- 'make_global_settings': [
- ['CC', '<(make_mips64_dir)/bin/mips64el-redhat-linux-gcc'],
- ['CXX', '<(make_mips64_dir)/bin/mips64el-redhat-linux-g++'],
- ['CC.host', '$(CC)'],
- ['CXX.host', '$(CXX)'],
- ],
- 'target_defaults': {
- 'cflags_cc': [
- '-std=gnu++14',
- ],
- },
- }],
- # Specify the SDKROOT.
- ['OS=="mac"', {
- 'target_defaults': {
- 'xcode_settings': {
- 'SDKROOT': 'macosx<(mac_sdk)', # -isysroot
- },
- },
- }],
- # Setup sysroot environment.
- ['OS=="linux" and target_arch in ["arm", "ia32", "x64", "arm64", "mips64el"]', {
- 'target_defaults': {
- 'target_conditions': [
- ['_toolset=="target"', {
- # Do not use 'cflags' to make sure sysroot is appended at last.
- 'cflags_cc': [
- '--sysroot=<(sysroot)',
- ],
- 'cflags_c': [
- '--sysroot=<(sysroot)',
- ],
- 'ldflags': [
- '--sysroot=<(sysroot)',
- '<!(<(source_root)/tools/linux/sysroot_ld_path.sh <(sysroot))',
- ],
- }]
- ],
- },
- }], # sysroot
- # Setup cross-compilation on Linux.
- ['OS=="linux"', {
- 'target_defaults': {
- 'target_conditions': [
- ['target_arch=="ia32" and _toolset=="target"', {
- 'asflags': [
- '-32',
- ],
- 'cflags': [
- '-msse2',
- '-mfpmath=sse',
- '-mmmx', # Allows mmintrin.h for MMX intrinsics.
- '-m32',
- ],
- 'ldflags': [
- '-m32',
- ],
- }], # target_arch=="ia32" and _toolset=="target"
- ['target_arch=="x64" and _toolset=="target"', {
- 'cflags': [
- '-m64',
- '-march=x86-64',
- ],
- 'ldflags': [
- '-m64',
- ],
- }], # target_arch=="x64" and _toolset=="target"
- ['target_arch=="arm" and _toolset=="target"', {
- 'conditions': [
- ['clang==0', {
- 'cflags_cc': [
- '-Wno-abi',
- ],
- }],
- ['clang==1 and arm_arch!=""', {
- 'cflags': [
- '-target arm-linux-gnueabihf',
- ],
- 'ldflags': [
- '-target arm-linux-gnueabihf',
- ],
- }],
- ['arm_arch!=""', {
- 'cflags': [
- '-march=<(arm_arch)',
- ],
- 'conditions': [
- ['use_lto==1 or use_lto_o2==1', {
- 'ldflags': [
- '-march=<(arm_arch)',
- ],
- }],
- ],
- }],
- ['arm_tune!=""', {
- 'cflags': [
- '-mtune=<(arm_tune)',
- ],
- 'conditions': [
- ['use_lto==1 or use_lto_o2==1', {
- 'ldflags': [
- '-mtune=<(arm_tune)',
- ],
- }],
- ],
- }],
- ['arm_fpu!=""', {
- 'cflags': [
- '-mfpu=<(arm_fpu)',
- ],
- 'conditions': [
- ['use_lto==1 or use_lto_o2==1', {
- 'ldflags': [
- '-mfpu=<(arm_fpu)',
- ],
- }],
- ],
- }],
- ['arm_float_abi!=""', {
- 'cflags': [
- '-mfloat-abi=<(arm_float_abi)',
- ],
- 'conditions': [
- ['use_lto==1 or use_lto_o2==1', {
- 'ldflags': [
- '-mfloat-abi=<(arm_float_abi)',
- ],
- }],
- ],
- }],
- ['arm_thumb==1', {
- 'cflags': [
- '-mthumb',
- ],
- 'conditions': [
- ['use_lto==1 or use_lto_o2==1', {
- 'ldflags': [
- '-mthumb',
- ],
- }],
- ],
- }],
- ],
- }], # target_arch=="arm64" and _toolset=="target"
- ['target_arch=="arm64" and _toolset=="target"', {
- 'conditions': [
- ['clang==0', {
- 'cflags_cc': [
- '-Wno-abi',
- ],
- }],
- ['clang==1 and arm_arch!=""', {
- 'cflags': [
- '-target aarch64-linux-gnu',
- ],
- 'ldflags': [
- '-target aarch64-linux-gnu',
- ],
- }],
- ],
- }], # target_arch=="arm" and _toolset=="target"
- ],
- },
- }], # OS=="linux"
- ],
- }
|