From 199f4defd35c67d1df9dc2c91757f31f21894d5a Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Tue, 11 Oct 2011 15:43:35 +0000 Subject: [PATCH] Rename all .cc files which include Objective-C headers to .mm. This allows the Mac Make build to pass. We were hacking it in XCode with "-x objective-c++", but gyp/Make doesn't seem to accept that flag. Also switch Objective-C #includes to #imports. There is one file missing from this: vie_autotest_main.cc, because it's required on multiple platforms. I'm not immediately sure what the best approach is there, but the Objective-C headers should be somehow hidden. Review URL: http://webrtc-codereview.appspot.com/153005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@726 4adac7df-926f-26a2-2b94-8c16560cd09d --- ...apture_qtkit.cc => video_capture_qtkit.mm} | 4 +- ...it_info.cc => video_capture_qtkit_info.mm} | 2 +- ...eo_capture_mac.cc => video_capture_mac.mm} | 0 .../main/source/video_capture.gypi | 13 +++--- ...impl.cc => video_render_mac_cocoa_impl.mm} | 0 .../main/source/mac/video_render_nsopengl.h | 14 +++---- ...r_nsopengl.cc => video_render_nsopengl.mm} | 0 .../main/source/video_render.gypi | 42 ++++++++----------- .../AutoTest/interface/vie_autotest_defines.h | 4 +- ...mac_cocoa.cc => vie_autotest_mac_cocoa.mm} | 0 .../main/test/AutoTest/vie_auto_test.gypi | 4 +- 11 files changed, 38 insertions(+), 45 deletions(-) rename src/modules/video_capture/main/source/Mac/QTKit/{video_capture_qtkit.cc => video_capture_qtkit.mm} (98%) rename src/modules/video_capture/main/source/Mac/QTKit/{video_capture_qtkit_info.cc => video_capture_qtkit_info.mm} (99%) rename src/modules/video_capture/main/source/Mac/{video_capture_mac.cc => video_capture_mac.mm} (100%) rename src/modules/video_render/main/source/mac/{video_render_mac_cocoa_impl.cc => video_render_mac_cocoa_impl.mm} (100%) rename src/modules/video_render/main/source/mac/{video_render_nsopengl.cc => video_render_nsopengl.mm} (100%) rename src/video_engine/main/test/AutoTest/source/{vie_autotest_mac_cocoa.cc => vie_autotest_mac_cocoa.mm} (100%) diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.cc b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm similarity index 98% rename from src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.cc rename to src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm index 0132a43c70..9584e27d74 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.cc +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm @@ -9,8 +9,8 @@ */ #include "video_capture_qtkit.h" -#include "video_capture_qtkit_objc.h" -#include "video_capture_qtkit_info_objc.h" +#import "video_capture_qtkit_objc.h" +#import "video_capture_qtkit_info_objc.h" #include "trace.h" #include "critical_section_wrapper.h" #include "../../video_capture_config.h" diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.cc b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.mm similarity index 99% rename from src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.cc rename to src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.mm index 89c003732f..c357258c1c 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.cc +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.mm @@ -10,7 +10,7 @@ #include "trace.h" #include "../../video_capture_config.h" -#include "video_capture_qtkit_info_objc.h" +#import "video_capture_qtkit_info_objc.h" #include "video_capture.h" diff --git a/src/modules/video_capture/main/source/Mac/video_capture_mac.cc b/src/modules/video_capture/main/source/Mac/video_capture_mac.mm similarity index 100% rename from src/modules/video_capture/main/source/Mac/video_capture_mac.cc rename to src/modules/video_capture/main/source/Mac/video_capture_mac.mm diff --git a/src/modules/video_capture/main/source/video_capture.gypi b/src/modules/video_capture/main/source/video_capture.gypi index db7d8dc7e4..6bbdcdf786 100644 --- a/src/modules/video_capture/main/source/video_capture.gypi +++ b/src/modules/video_capture/main/source/video_capture.gypi @@ -65,19 +65,16 @@ 'Mac/QTKit/video_capture_qtkit_info_objc.h', 'Mac/QTKit/video_capture_qtkit_objc.h', 'Mac/QTKit/video_capture_qtkit_utility.h', - 'Mac/video_capture_mac.cc', - 'Mac/QTKit/video_capture_qtkit.cc', + 'Mac/video_capture_mac.mm', + 'Mac/QTKit/video_capture_qtkit.mm', 'Mac/QTKit/video_capture_qtkit_objc.mm', 'Mac/QTKit/video_capture_recursive_lock.mm', - 'Mac/QTKit/video_capture_qtkit_info.cc', + 'Mac/QTKit/video_capture_qtkit_info.mm', 'Mac/QTKit/video_capture_qtkit_info_objc.mm', ], 'include_dirs': [ 'Mac', ], - 'xcode_settings': { - 'OTHER_CPLUSPLUSFLAGS': '-x objective-c++', - }, 'link_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ @@ -185,7 +182,7 @@ }, ], # Exclude the test targets when building with chromium. - 'conditions': [ + 'conditions': [ ['build_with_chromium==0', { 'targets': [ { @@ -244,6 +241,8 @@ }], ['OS=="mac"', { 'xcode_settings': { + # TODO(andrew): remove this. Shouldn't be needed when required + # files have proper .mm extensions. 'OTHER_CPLUSPLUSFLAGS': '-x objective-c++', 'OTHER_LDFLAGS': [ '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL -framework CoreVideo -framework CoreAudio -framework AudioToolbox', diff --git a/src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.cc b/src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.mm similarity index 100% rename from src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.cc rename to src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.mm diff --git a/src/modules/video_render/main/source/mac/video_render_nsopengl.h b/src/modules/video_render/main/source/mac/video_render_nsopengl.h index c0e836d896..a11e0c11b1 100644 --- a/src/modules/video_render/main/source/mac/video_render_nsopengl.h +++ b/src/modules/video_render/main/source/mac/video_render_nsopengl.h @@ -14,18 +14,18 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_ -#include +#import +#import +#import +#import #include -#include -#include -#include #include #include -#include "video_render_defines.h" +#include "video_render_defines.h" -#import "cocoa_render_view.h" -#import "cocoa_full_screen_window.h" +#import "cocoa_render_view.h" +#import "cocoa_full_screen_window.h" class Trace; diff --git a/src/modules/video_render/main/source/mac/video_render_nsopengl.cc b/src/modules/video_render/main/source/mac/video_render_nsopengl.mm similarity index 100% rename from src/modules/video_render/main/source/mac/video_render_nsopengl.cc rename to src/modules/video_render/main/source/mac/video_render_nsopengl.mm diff --git a/src/modules/video_render/main/source/video_render.gypi b/src/modules/video_render/main/source/video_render.gypi index 1591524b8d..5d0f07dea3 100644 --- a/src/modules/video_render/main/source/video_render.gypi +++ b/src/modules/video_render/main/source/video_render.gypi @@ -66,8 +66,8 @@ 'linux/video_x11_channel.cc', 'linux/video_x11_render.cc', # Mac - 'mac/video_render_nsopengl.cc', - 'mac/video_render_mac_cocoa_impl.cc', + 'mac/video_render_nsopengl.mm', + 'mac/video_render_mac_cocoa_impl.mm', 'mac/video_render_agl.cc', 'mac/video_render_mac_carbon_impl.cc', 'mac/cocoa_render_view.mm', @@ -79,8 +79,9 @@ # External 'external/video_render_external_impl.cc', ], + # TODO(andrew): with the proper suffix, these files will be excluded + # automatically. 'conditions': [ - # DEFINE PLATFORM SPECIFIC SOURCE FILES ['OS!="linux" or build_with_chromium==1', { 'sources!': [ 'linux/video_render_linux_impl.h', @@ -99,8 +100,8 @@ 'mac/video_render_mac_carbon_impl.h', 'mac/video_render_mac_cocoa_impl.h', 'mac/video_render_nsopengl.h', - 'mac/video_render_nsopengl.cc', - 'mac/video_render_mac_cocoa_impl.cc', + 'mac/video_render_nsopengl.mm', + 'mac/video_render_mac_cocoa_impl.mm', 'mac/video_render_agl.cc', 'mac/video_render_mac_carbon_impl.cc', 'mac/cocoa_render_view.mm', @@ -118,36 +119,27 @@ 'windows/video_render_windows_impl.cc', ], }], - # DEFINE PLATFORM SPECIFIC INCLUDE AND CFLAGS - ['OS=="mac"', { - 'xcode_settings': { - 'OTHER_CPLUSPLUSFLAGS': '-x objective-c++' - }, - }], ] # conditions }, # video_render_module ], # targets - # Exclude the test target when building with chromium. - 'conditions': [ + + # Exclude the test target when building with chromium. + 'conditions': [ ['build_with_chromium==0', { 'targets': [ { 'target_name': 'video_render_module_test', 'type': 'executable', 'dependencies': [ - 'video_render_module', - 'webrtc_utility', - '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', - '<(webrtc_root)/common_video/common_video.gyp:webrtc_vplib', + 'video_render_module', + 'webrtc_utility', + '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', + '<(webrtc_root)/common_video/common_video.gyp:webrtc_vplib', ], - 'include_dirs': [ - ], - 'sources': [ - # sources + 'sources': [ '../test/testAPI/testAPI.cpp', - ], # source + ], 'conditions': [ - # DEFINE PLATFORM SPECIFIC INCLUDE AND CFLAGS ['OS=="mac" or OS=="linux"', { 'cflags': [ '-Wno-write-strings', @@ -160,11 +152,13 @@ 'libraries': [ '-lrt', '-lXext', - '-lX11', + '-lX11', ], }], ['OS=="mac"', { 'xcode_settings': { + # TODO(andrew): remove this. It shouldn't be needed when the + # required files have proper .mm extensions. 'OTHER_CPLUSPLUSFLAGS': '-x objective-c++', 'OTHER_LDFLAGS': [ '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL', diff --git a/src/video_engine/main/test/AutoTest/interface/vie_autotest_defines.h b/src/video_engine/main/test/AutoTest/interface/vie_autotest_defines.h index 02ed14d6e2..d00759ac5e 100644 --- a/src/video_engine/main/test/AutoTest/interface/vie_autotest_defines.h +++ b/src/video_engine/main/test/AutoTest/interface/vie_autotest_defines.h @@ -27,13 +27,11 @@ #elif defined (WEBRTC_ANDROID) #include #include -#elif defined(WEBRTC_LINUX) +#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) #include #include #include #include -#elif defined(WEBRTC_MAC_INTEL) -#import #endif // Choose how to log diff --git a/src/video_engine/main/test/AutoTest/source/vie_autotest_mac_cocoa.cc b/src/video_engine/main/test/AutoTest/source/vie_autotest_mac_cocoa.mm similarity index 100% rename from src/video_engine/main/test/AutoTest/source/vie_autotest_mac_cocoa.cc rename to src/video_engine/main/test/AutoTest/source/vie_autotest_mac_cocoa.mm diff --git a/src/video_engine/main/test/AutoTest/vie_auto_test.gypi b/src/video_engine/main/test/AutoTest/vie_auto_test.gypi index 699264593d..8330bafeac 100644 --- a/src/video_engine/main/test/AutoTest/vie_auto_test.gypi +++ b/src/video_engine/main/test/AutoTest/vie_auto_test.gypi @@ -73,7 +73,7 @@ # Linux 'source/vie_autotest_linux.cc', # Mac - 'source/vie_autotest_mac_cocoa.cc', + 'source/vie_autotest_mac_cocoa.mm', 'source/vie_autotest_mac_carbon.cc', # Windows 'source/vie_autotest_windows.cc', @@ -121,6 +121,8 @@ }], ['OS=="mac"', { 'xcode_settings': { + # TODO(andrew): remove this when the issue with Objective-C in + # vie_autotest_main.cc is worked out. 'OTHER_CPLUSPLUSFLAGS': '-x objective-c++', 'OTHER_LDFLAGS': [ '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL -framework CoreVideo -framework CoreAudio -framework AudioToolbox',