|
@@ -0,0 +1,200 @@
|
|
|
+{
|
|
|
+ 'variables': {
|
|
|
+ # Clang stuff.
|
|
|
+ 'make_clang_dir%': 'vendor/llvm-build/Release+Asserts',
|
|
|
+ # Set this to true when building with Clang.
|
|
|
+ 'clang%': 1,
|
|
|
+
|
|
|
+ 'variables': {
|
|
|
+ # Set ARM architecture version.
|
|
|
+ 'arm_version%': 7,
|
|
|
+
|
|
|
+ # Set NEON compilation flags.
|
|
|
+ 'arm_neon%': 1,
|
|
|
+ },
|
|
|
+
|
|
|
+ # Copy conditionally-set variables out one scope.
|
|
|
+ 'arm_version%': '<(arm_version)',
|
|
|
+ 'arm_neon%': '<(arm_neon)',
|
|
|
+
|
|
|
+ # Variables to control Link-Time Optimization (LTO).
|
|
|
+ 'use_lto%': 0,
|
|
|
+ 'use_lto_o2%': 0,
|
|
|
+
|
|
|
+ 'conditions': [
|
|
|
+ # Do not use Clang on Windows.
|
|
|
+ ['OS=="win"', {
|
|
|
+ 'clang%': 0,
|
|
|
+ }], # OS=="win"
|
|
|
+
|
|
|
+ # 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': [
|
|
|
+ ['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': {
|
|
|
+ 'cflags_cc': [
|
|
|
+ '-std=c++11',
|
|
|
+ ],
|
|
|
+ '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++11', # -std=c++11
|
|
|
+ },
|
|
|
+ 'target_conditions': [
|
|
|
+ ['_type in ["executable", "shared_library"]', {
|
|
|
+ 'xcode_settings': {
|
|
|
+ # On some machines setting CLANG_CXX_LIBRARY doesn't work for
|
|
|
+ # linker.
|
|
|
+ 'OTHER_LDFLAGS': [ '-stdlib=libc++' ],
|
|
|
+ },
|
|
|
+ }],
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ }], # clang==1
|
|
|
+
|
|
|
+ ['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)',
|
|
|
+ ],
|
|
|
+ }],
|
|
|
+ ],
|
|
|
+ }],
|
|
|
+ ['clang==1', {
|
|
|
+ 'cflags': [
|
|
|
+ '-no-integrated-as',
|
|
|
+ ],
|
|
|
+ }],
|
|
|
+ ['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=="arm" and _toolset=="target"
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ }], # OS=="linux"
|
|
|
+ ],
|
|
|
+}
|