HI Benjamin,

Thanks for you answer.

I just deleted the XCodeBuild folder and added a couple of files in the project 
manually. 
My computer is re-building the project, I will see how it goes.
A couple of extra questions:

1) After deleting the XCodeBuild folder, I cannot make my first build using 
Xcode. I end up with a file not found on 
#include <llvm-c/Analysis.h>
in JavaScriptCore/llvm/LLVMHeaders.h
I actually had the same issue on my first build. After a successful build from 
build-webkit, I can build again using Xcode (not clean and build).
Any lead regarding why?

2) The Xcode projects is versioned on the repo. Is there anyway to re-generate 
it automatically?
Having the Xcode project shared sounds very unsafe. What is someone introduces 
a bug in it someday?

Regards,
J-O H

--
Haché Jacques-Olivier
R&D Engineer at Temasys Communications Pte Ltd
Fr : 06 45 85 48 80
Sg : 9086 3673 

On 22 Jul 2014, at 15:16, Benjamin Poulain <benja...@webkit.org> wrote:

> Quick answers inline:
> 
> On 7/21/14, 9:22 PM, Jacques-Olivier wrote:
>> Note: I already sent this email, but I didn’t get any answer, nor can I see 
>> the thread in the archives. Therefore I think it was blocked, maybe because 
>> of the attachment that I remove this time.
>> 
>> I’m new on this mailing so I’ll start by introducing myself:
>> My name Jacques-Olivier Haché (J-O), I’m working for Temasys Communication, 
>> and I’m entering the WebKit project to work on the implementation of WebRTC 
>> inside WebKit.
>> For those who would be following the WebRTC’s news, I’m also the main 
>> developer of the WebRTC plugin released by Temasys.
>> 
>> Back to business:
>> 
>> I was able to download the project, build it and run it inside Safari. I did 
>> not try to run it in a different browser yet.
>> 
>> My configuration:
>> Macbook Air 2012
>> Mac OS X 10.9.4
>> Revision 171167
>> I’m on master
>> I suppose I’m using the regular Mac port as I didn’t see where to change 
>> from one port to another yet.
>> building for debug mode
>> I am now trying to enable the WebRTC related features to get a better 
>> understanding of the current state of this part of the project. 
>> I have to say that I faced a lack of documentation on this area. I found the 
>> features list, a document about how to add a new feature but nothing about 
>> how to turn a feature on and off (there is actually a TODO about that in the 
>> second link).
>> 
>> I looked into the files that one needs to change to add a new feature and 
>> found two interesting files:
>> Source/WTF/wtf/FeatureDefines.h - where the WebRTC related contants were set 
>> to 0 instead of 1
>> Source/cmake/WebKitFeatures.cmake - where the contants were set to OFF
>> I listed the following definitions that look related to WebRTC
>> ENABLE_MEDIA_CAPTURE
>> ENABLE_MEDIA_CONTROLS_SCRIPT
>> ENABLE_MEDIA_SOURCE
>> ENABLE_MEDIA_STATISTICS
>> ENABLE_MEDIA_STREAM
>> ENABLE_VIDEO
>> ENABLE_VIDEO_TRACK
>> I turned those definitions to 1 and ON in the respective file and tried to 
>> build.
>> The code in the header WebCore/Modules/mediastream/mediastream.h could not 
>> compile apparently because the observer did not have a destructor. I created 
>> one:
>>     class Observer {
>>     public:
>>         virtual void didAddOrRemoveTrack() = 0;
>>       virtual ~Observer() {};
>>     };
>> 
>> and tried to build again.
>> 
>> I now have a linking error when building WebCore with Xcode. 
>> 
>> Ld 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore
>>  normal x86_64
>>     cd 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/Source/WebCore
>>     export MACOSX_DEPLOYMENT_TARGET=10.9
>>     
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
>>  -arch x86_64 -dynamiclib -isysroot 
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
>>  
>> -L/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug
>>  
>> -F/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug
>>  -filelist 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/WebCore.LinkFileList
>>  -Xlinker --no-demangle -exported_symbols_list 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/WebCore.LP64.exp
>>  -install_name 
>> /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore
>>  -mmacosx-version-min=10.9 -lsqlite3 -lobjc -lANGLE -sub_library libobjc 
>> -umbrella WebKit -allowable_client WebCoreTestSupport -allowable_client 
>> WebKit2 -allowable_client WebKitLegacy -framework ApplicationServices 
>> -framework AudioUnit -framework Carbon -framework Cocoa -framework IOSurface 
>> -framework OpenGL -stdlib=libc++ -fobjc-link-runtime -framework Accelerate 
>> -framework AudioToolbox -framework CoreAudio -framework IOKit -framework 
>> JavaScriptCore -licucore -lobjc -lxml2 -lz -framework QuartzCore -framework 
>> Security -framework SystemConfiguration -single_module 
>> -compatibility_version 1 -current_version 600.1 -Xlinker -dependency_info 
>> -Xlinker 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/WebCore_dependency_info.dat
>>  -o 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore
>> 
>> Undefined symbols for architecture x86_64:
>>   "__ZN7WebCore11JSNavigator18webkitGetUserMediaEPN3JSC9ExecStateE", 
>> referenced from:
>>       
>> __ZN7WebCore46jsNavigatorPrototypeFunctionWebkitGetUserMediaEPN3JSC9ExecStateE
>>  in JSNavigator.o
>>   "__ZN7WebCore15RTCOfferOptions6createERKNS_10DictionaryERi", referenced 
>> from:
>>       
>> __ZN7WebCore17RTCPeerConnection11createOfferEN3WTF10PassRefPtrINS_29RTCSessionDescriptionCallbackEEENS2_INS_30RTCPeerConnectionErrorCallbackEEERKNS_10DictionaryERi
>>  in RTCPeerConnection.o
>>   
>> "__ZN7WebCore20MediaConstraintsMock17verifyConstraintsEN3WTF10PassRefPtrINS_16MediaConstraintsEEE",
>>  referenced from:
>>       
>> __ZN7WebCore21MockMediaStreamCenter26validateRequestConstraintsEN3WTF10PassRefPtrINS_25MediaStreamCreationClientEEENS2_INS_16MediaConstraintsEEES6_
>>  in MockMediaStreamCenter.o
>>       
>> __ZN7WebCore21MockMediaStreamCenter17createMediaStreamEN3WTF10PassRefPtrINS_25MediaStreamCreationClientEEENS2_INS_16MediaConstraintsEEES6_
>>  in MockMediaStreamCenter.o
>>   "__ZN7WebCore21RTCOfferAnswerOptions6createERKNS_10DictionaryERi", 
>> referenced from:
>>       
>> __ZN7WebCore17RTCPeerConnection12createAnswerEN3WTF10PassRefPtrINS_29RTCSessionDescriptionCallbackEEENS2_INS_30RTCPeerConnectionErrorCallbackEEERKNS_10DictionaryERi
>>  in RTCPeerConnection.o
>>   
>> "__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_16RTCConfigurationE",
>>  referenced from:
>>       
>> __ZN7WebCore52jsRTCPeerConnectionPrototypeFunctionGetConfigurationEPN3JSC9ExecStateE
>>  in JSRTCPeerConnection.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v to see 
>> invocation)
>> 
>> I found that these strange names actually meant 
>> WebCore::JSNavigator::webkitGetUserMedia(execState *) - and same for the 
>> others.
>> Xcode will not find the definition of these functions, but Sublime_Text 
>> will. It looks like Xcode projects don’t include the files containing these 
>> definitions.
>> Am I supposed to run a script to re-generate the projects once I enable new 
>> features? If yes, I cannot find such a script.
>> I tried running cmake, but got this message:
>> Please choose which WebKit port to build (one of 
>> Efl;WinCE;GTK;AppleWin;WinCairo)
>> When what I want is the AppleMac port
>> 
>> If I build using build-webkit, I get a different stack
>> 
>> 
>> === BUILD TARGET WebCoreExportFileGenerator OF PROJECT WebCore WITH 
>> CONFIGURATION Debug ===
>> 
>> Check dependencies
>> iOS.xcconfig line 1: Unable to find included file 
>> "<DEVELOPER_DIR>/AppleInternal/XcodeConfig/AspenFamily.xcconfig"
>> Base.xcconfig line 24: Unable to find included file 
>> "../../../../Internal/Configurations/UseInternalSDK.xcconfig"
>> 
>> CompileC 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/Objects-normal/x86_64/ExportFileGenerator.o
>>  
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/ExportFileGenerator.cpp
>>  normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
>>     cd 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/Source/WebCore
>>     export LANG=en_US.US-ASCII
>>     
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
>>  -x c++ -arch x86_64 -fmessage-length=204 
>> -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 
>> -fcolor-diagnostics -std=gnu++11 -stdlib=libc++ -Wno-trigraphs 
>> -fno-exceptions -fno-rtti -fpascal-strings -O0 -Werror 
>> -Wno-missing-field-initializers -Wmissing-prototypes -Wnon-virtual-dtor 
>> -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces       
>>           -Wparentheses -Wswitch -Wunused-function -Wno-unused-label 
>> -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body 
>> -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants 
>> -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion 
>> -Wenum-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof 
>> -Wno-c++11-extensions -DDISABLE_THREAD_CHECK -DENABLE_3D_RENDERING 
>> -DENABLE_CACHE_PARTITIONING -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING 
>> -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING 
>> -DENABLE_CSS_EXCLUSIONS -DENABLE_CSS_FILTERS -DENABLE_CSS_GRID_LAYOUT 
>> -DENABLE_CSS_REGIONS -DENABLE_CSS_SHAPES 
>> -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED 
>> -DENABLE_CSS3_CONDITIONAL_RULES -DENABLE_CURSOR_VISIBILITY 
>> -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT 
>> -DENABLE_DOM4_EVENTS_CONSTRUCTOR -DENABLE_ENCRYPTED_MEDIA 
>> -DENABLE_ENCRYPTED_MEDIA_V2 -DENABLE_FILTERS -DENABLE_FULLSCREEN_API 
>> -DENABLE_GAMEPAD -DENABLE_GEOLOCATION 
>> -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE 
>> -DENABLE_INDEXED_DATABASE -DENABLE_INDIE_UI -DENABLE_INPUT_TYPE_COLOR 
>> -DENABLE_INPUT_TYPE_COLOR_POPOVER -DENABLE_INSPECTOR 
>> -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_NOTIFICATIONS 
>> -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LEGACY_WEB_AUDIO -DENABLE_MATHML 
>> -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_METER_ELEMENT 
>> -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NAVIGATOR_CONTENT_UTILS 
>> -DENABLE_NAVIGATOR_HWCONCURRENCY -DENABLE_NOTIFICATIONS 
>> -DENABLE_PDFKIT_PLUGIN -DENABLE_PROMISES -DENABLE_PUBLIC_SUFFIX_LIST 
>> -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_SHARED_WORKERS 
>> -DENABLE_SPEECH_SYNTHESIS -DENABLE_SQL_DATABASE -DENABLE_SUBPIXEL_LAYOUT 
>> -DENABLE_SUBTLE_CRYPTO -DENABLE_SVG_FONTS -DENABLE_TEMPLATE_ELEMENT 
>> -DENABLE_USERSELECT_ALL -DENABLE_VIDEO -DENABLE_VIDEO_TRACK 
>> -DENABLE_DATACUE_VALUE -DENABLE_WEBGL -DENABLE_WEB_AUDIO -DENABLE_WEB_REPLAY 
>> -DENABLE_WEB_SOCKETS -DENABLE_PICTURE_SIZES -DENABLE_WEBVTT_REGIONS 
>> -DENABLE_XHR_TIMEOUT -DENABLE_XSLT -DENABLE_FTL_JIT 
>> -DWEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST -isysroot 
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
>>  -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof 
>> -mmacosx-version-min=10.9 -g -fvisibility=hidden -fvisibility-inlines-hidden 
>> -fno-threadsafe-statics -Wno-sign-conversion 
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/WebCoreExportFileGenerator.hmap
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/include
>>  -IForwardingHeaders -Iicu 
>> -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxslt
>>  
>> -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/DerivedSources/WebCore
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/usr/local/include
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/usr/local/include/WebKitAdditions
>>  
>> -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/local/include/WebKitAdditions
>>  
>> -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/DerivedSources/x86_64
>>  
>> -I/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/DerivedSources
>>  -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 
>> -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked 
>> -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings 
>> -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare 
>> -Wimplicit-fallthrough 
>> -F/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug
>>  -include 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/PrecompiledHeaders/WebCorePrefix-gcoyowpevvvzkbecqfhdngvxbkag/WebCorePrefix.h
>>  -MMD -MT dependencies -MF 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/Objects-normal/x86_64/ExportFileGenerator.d
>>  --serialize-diagnostics 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/Objects-normal/x86_64/ExportFileGenerator.dia
>>  -c 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/ExportFileGenerator.cpp
>>  -o 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/Objects-normal/x86_64/ExportFileGenerator.o
>> fatal error: file 
>> '/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/usr/local/include/wtf/FeatureDefines.h'
>>  has been modified since the precompiled header
>>       
>> '/Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/PrecompiledHeaders/WebCorePrefix-gcoyowpevvvzkbecqfhdngvxbkag/WebCorePrefix.h.pch'
>>  was built
>> 1 error generated.
>> 
>> ** BUILD FAILED **
>> 
>> 
>> The following build commands failed:
>>  CompileC 
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/WebCore.build/Debug/WebCoreExportFileGenerator.build/Objects-normal/x86_64/ExportFileGenerator.o
>>  
>> /Users/jacquesolivierhache/Workspace/Temasys/WebKitProject/WebKit/WebKitBuild/Debug/DerivedSources/WebCore/ExportFileGenerator.cpp
>>  normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
>> (1 failure)
>> 
>> 
>> 
>> Is anyone used to turn the WebRTC code on and off?
> This code has not been updated in a while, you will have to fix some stuff 
> here and there to get it to do anything.
>> Did I miss an important step?
> Probably not.
>> Do you understand these errors?
> The first error could simply be because the files defining those symbols are 
> not included in the XCode project file. Nobody has worked on WebRTC for a 
> while, it probably only builds for GTK.
> 
> The second error is likely a problem with the incremental build. I would just 
> delete WebKitBuild and start a clean build.
>> Why is the precompiled header not re-built when there are changes in the 
>> headers?
> Yep, that's weird. I only run into problems with precompiled headers when I 
> change my SDK.
> But after changing feature flags you often have to do a clean build anyway. 
> There are too many code generators that are not tracking these kind of 
> dependencies.
> 
> Good luck!
> Benjamin
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to