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 <[email protected]> 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 > [email protected] > https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________ webkit-dev mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-dev

