Factor out xcode c/cpp settings into variables to apply to cmake builds.
authorbsalomon <bsalomon@google.com>
Fri, 22 Jan 2016 20:54:57 +0000 (12:54 -0800)
committerCommit bot <commit-bot@chromium.org>
Fri, 22 Jan 2016 20:54:58 +0000 (12:54 -0800)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1619243003

Review URL: https://codereview.chromium.org/1619243003

gyp/common_conditions.gypi
gyp/icu.gyp

index 8221c94..c7b19de 100644 (file)
 
     [ 'skia_os == "mac"',
       {
+        'variables': {
+            # Setup some flags that are used below in both the XCode/ninja build as well as the
+            # cmake build.
+            'common_c_and_cpp_flags': [
+              '-mssse3',
+              '-fvisibility=hidden',
+              '-fvisibility-inlines-hidden',
+              '-Wall',
+              '-Wextra',
+              '-Winit-self',
+              '-Wpointer-arith',
+              '-Wsign-compare',
+              '-Wno-unused-parameter',
+            ],
+            'common_cpp_flags': [
+              '-fno-threadsafe-statics',
+              '-fno-exceptions',
+              '-fno-rtti',
+              '-std=c++11',
+              '-stdlib=libc++'
+            ],
+        },
         'defines': [ 'SK_BUILD_FOR_MAC' ],
         'conditions': [
             # ANGLE for mac hits -Wunneeded-internal-declaration if this isn't set.
               'MACOSX_DEPLOYMENT_TARGET': '<(skia_osx_deployment_target)',
             }],
             [ 'skia_sanitizer', {
-              'GCC_ENABLE_CPP_RTTI': 'YES',                         # vptr needs rtti
               'OTHER_CFLAGS': [
                 '-fsanitize=<(skia_sanitizer)',                     # Turn on sanitizers.
                 '-fno-sanitize-recover=<(skia_sanitizer)',          # Make any failure fatal.
                 '-fsanitize-blacklist=<(skia_sanitizer_blacklist)', # Compile in our blacklist.
                 '-include <(skia_sanitizer_blacklist)',             # Make every .cpp depend on it.
               ],
+              'OTHER_CPLUSPLUSFLAGS': [
+                '-frtti',                                           # vptr needs rtti
+              ],
               # We want to pass -fsanitize=... to our final link call,
               # but not to libtool. OTHER_LDFLAGS is passed to both.
               # To trick GYP into doing what we want, we'll piggyback on
             }],
           ],
           'CLANG_CXX_LIBRARY':                         'libc++',
-          'CLANG_CXX_LANGUAGE_STANDARD':               'c++11',
-          'GCC_ENABLE_CPP_EXCEPTIONS':                 'NO',   # -fno-exceptions
-          'GCC_ENABLE_CPP_RTTI':                       'NO',   # -fno-rtti
-          'GCC_THREADSAFE_STATICS':                    'NO',   # -fno-threadsafe-statics
-          'GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS': 'YES',  # -mssse3
-          'GCC_SYMBOLS_PRIVATE_EXTERN':                'NO',   # -fvisibility=hidden
-          'GCC_INLINES_ARE_PRIVATE_EXTERN':            'NO',   # -fvisibility-inlines-hidden
           'GCC_CW_ASM_SYNTAX':                         'NO',   # remove -fasm-blocks
           'GCC_ENABLE_PASCAL_STRINGS':                 'NO',   # remove -mpascal-strings
-          'WARNING_CFLAGS': [
-            '-Wall',
-            '-Wextra',
-            '-Winit-self',
-            '-Wpointer-arith',
-            '-Wsign-compare',
-
-            '-Wno-unused-parameter',
+          # Used by XCode and ninja
+          'OTHER_CPLUSPLUSFLAGS': [
+            '<@(common_cpp_flags)',
+            '<@(common_c_and_cpp_flags)',
+          ],
+          'OTHER_CFLAGS': [
+            '<@(common_c_and_cpp_flags)',
           ],
         },
+        # Used by cmake
+        'cflags': [
+          '<@(common_c_and_cpp_flags)',
+        ],
+        'cflags_cc': [
+          '<@(common_cpp_flags)',
+        ],
       },
     ],
 
index 5142b77..27bd60f 100644 (file)
           'skia_os == "mac"', {
             'sources': [ '<(icu_directory)/mac/icudtl_dat.S', ],
             'xcode_settings': {
-              'GCC_ENABLE_CPP_RTTI': 'YES',  # -frtti
+              'OTHER_CPLUSPLUSFLAGS': [ '-frtti' ],
               'WARNING_CFLAGS': [ '-w' ],
             },
           }