Skip to content
  • eric@webkit.org's avatar
    Make WTF public headers use fully-qualified include paths and remove ForwardingHeaders/wtf · 3979f2d4
    eric@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=80363
    
    Reviewed by Mark Rowe.
    
    Source/JavaScriptCore:
    
    Historically WTF has been part of JavaScriptCore, and on Mac and Windows
    its headers have appeared as part of the "private" headers exported by
    JavaScriptCore.  All of the WTF headers there are "flattened" into a single
    private headers directory, and WebCore, WebKit and WebKit2 have used "ForwardingHeaders"
    to re-map fully-qualified <wtf/text/Foo.h> includes to simple <JavaScriptCore/Foo.h> includes.
    
    However, very soon, we are moving the WTF source code out of JavaScriptCore into its
    own directory and project.  As part of such, the WTF headers will no longer be part of
    the JavaScriptCore private interfaces.
    In preparation for that, this change makes both the Mac and Win builds export
    WTF headers in a non-flattened manner.  On Mac, that means into usr/local/include/wtf
    (and subdirectories), on Windows for now that means JavaScriptCore/wtf (and subdirectories).
    
    There are 5 parts to this change.
    1.  Updates the JavaScriptCore XCode and VCProj files to actually install these headers
        (and header directories) into the appropriate places in the build directory.
    2.  Updates JavaScriptCore.xcodeproj to look for these WTF headers in this install location
        (WebCore, WebKit, etc. had already been taught to look in previous patches).
    3.  Fixes all JavaScriptCore source files, and WTF headers to include WTF headers
        using fully qualified paths.
    4.  Stops the Mac and Win builds from installing these WTF headers in their old "flattened" location.
    5.  Removes WebCore and WebKit ForwardingHeaders/wtf directories now that the flattened headers no longer exist.
    
    Unfortunately we see no way to do this change in smaller parts, since all of these steps are interdependant.
    It is possible there are internal Apple projects which depend on JavaScriptCore/Foo.h working for WTF
    headers, those will have to be updated to use <wtf/Foo.h> after this change.
    I've discussed this proposed change at length with Mark Rowe, and my understanding is they
    are ready for (and interested in) this change happening.
    
    * API/tests/JSNode.c:
    * API/tests/JSNodeList.c:
    * Configurations/Base.xcconfig:
    * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * assembler/MacroAssemblerCodeRef.h:
    * bytecompiler/BytecodeGenerator.h:
    * dfg/DFGOperations.cpp:
    * heap/GCAssertions.h:
    * heap/HandleHeap.h:
    * heap/HandleStack.h:
    * heap/MarkedSpace.h:
    * heap/PassWeak.h:
    * heap/Strong.h:
    * heap/Weak.h:
    * jit/HostCallReturnValue.cpp:
    * jit/JIT.cpp:
    * jit/JITStubs.cpp:
    * jit/ThunkGenerators.cpp:
    * parser/Lexer.cpp:
    * runtime/Completion.cpp:
    * runtime/Executable.cpp:
    * runtime/Identifier.h:
    * runtime/InitializeThreading.cpp:
    * runtime/JSDateMath.cpp:
    * runtime/JSGlobalObjectFunctions.cpp:
    * runtime/JSStringBuilder.h:
    * runtime/JSVariableObject.h:
    * runtime/NumberPrototype.cpp:
    * runtime/WriteBarrier.h:
    * tools/CodeProfile.cpp:
    * tools/TieredMMapArray.h:
    * wtf/AVLTree.h:
    * wtf/Alignment.h:
    * wtf/AlwaysInline.h:
    * wtf/ArrayBufferView.h:
    * wtf/Assertions.h:
    * wtf/Atomics.h:
    * wtf/Bitmap.h:
    * wtf/BoundsCheckedPointer.h:
    * wtf/CheckedArithmetic.h:
    * wtf/Deque.h:
    * wtf/ExportMacros.h:
    * wtf/FastAllocBase.h:
    * wtf/FastMalloc.h:
    * wtf/Float32Array.h:
    * wtf/Float64Array.h:
    * wtf/Functional.h:
    * wtf/HashCountedSet.h:
    * wtf/HashFunctions.h:
    * wtf/HashMap.h:
    * wtf/HashSet.h:
    * wtf/HashTable.h:
    * wtf/HashTraits.h:
    * wtf/Int16Array.h:
    * wtf/Int32Array.h:
    * wtf/Int8Array.h:
    * wtf/IntegralTypedArrayBase.h:
    * wtf/ListHashSet.h:
    * wtf/MainThread.h:
    * wtf/MetaAllocator.h:
    * wtf/Noncopyable.h:
    * wtf/OwnArrayPtr.h:
    * wtf/OwnPtr.h:
    * wtf/PackedIntVector.h:
    * wtf/ParallelJobs.h:
    * wtf/PassOwnArrayPtr.h:
    * wtf/PassOwnPtr.h:
    * wtf/PassRefPtr.h:
    * wtf/PassTraits.h:
    * wtf/Platform.h:
    * wtf/PossiblyNull.h:
    * wtf/RefCounted.h:
    * wtf/RefCountedLeakCounter.h:
    * wtf/RefPtr.h:
    * wtf/RetainPtr.h:
    * wtf/SimpleStats.h:
    * wtf/Spectrum.h:
    * wtf/StdLibExtras.h:
    * wtf/TCPageMap.h:
    * wtf/TemporaryChange.h:
    * wtf/ThreadSafeRefCounted.h:
    * wtf/Threading.h:
    * wtf/ThreadingPrimitives.h:
    * wtf/TypeTraits.h:
    * wtf/TypedArrayBase.h:
    * wtf/Uint16Array.h:
    * wtf/Uint32Array.h:
    * wtf/Uint8Array.h:
    * wtf/Uint8ClampedArray.h:
    * wtf/UnusedParam.h:
    * wtf/Vector.h:
    * wtf/VectorTraits.h:
    * wtf/dtoa/double-conversion.h:
    * wtf/dtoa/utils.h:
    * wtf/gobject/GRefPtr.h:
    * wtf/gobject/GlibUtilities.h:
    * wtf/text/AtomicString.h:
    * wtf/text/AtomicStringImpl.h:
    * wtf/text/CString.h:
    * wtf/text/StringConcatenate.h:
    * wtf/text/StringHash.h:
    * wtf/text/WTFString.h:
    * wtf/unicode/CharacterNames.h:
    * wtf/unicode/UTF8.h:
    * wtf/unicode/glib/UnicodeGLib.h:
    * wtf/unicode/qt4/UnicodeQt4.h:
    * wtf/unicode/wince/UnicodeWinCE.h:
    * wtf/url/api/ParsedURL.h:
    * wtf/url/api/URLString.h:
    * wtf/wince/FastMallocWinCE.h:
    * yarr/YarrJIT.cpp:
    
    Source/WebCore:
    
    ForwardingHeaders/wtf is no longer needed (or functional) now that
    JavaScriptCore no longer includes the WTF headers as private headers.
    
    * DerivedSources.make:
    * ForwardingHeaders/wtf/ASCIICType.h: Removed.
    * ForwardingHeaders/wtf/AVLTree.h: Removed.
    * ForwardingHeaders/wtf/Alignment.h: Removed.
    * ForwardingHeaders/wtf/AlwaysInline.h: Removed.
    * ForwardingHeaders/wtf/ArrayBuffer.h: Removed.
    * ForwardingHeaders/wtf/ArrayBufferView.h: Removed.
    * ForwardingHeaders/wtf/Assertions.h: Removed.
    * ForwardingHeaders/wtf/Atomics.h: Removed.
    * ForwardingHeaders/wtf/Bitmap.h: Removed.
    * ForwardingHeaders/wtf/BloomFilter.h: Removed.
    * ForwardingHeaders/wtf/BumpPointerAllocator.h: Removed.
    * ForwardingHeaders/wtf/ByteArray.h: Removed.
    * ForwardingHeaders/wtf/CheckedArithmetic.h: Removed.
    * ForwardingHeaders/wtf/CheckedBoolean.h: Removed.
    * ForwardingHeaders/wtf/Compiler.h: Removed.
    * ForwardingHeaders/wtf/Complex.h: Removed.
    * ForwardingHeaders/wtf/CryptographicallyRandomNumber.h: Removed.
    * ForwardingHeaders/wtf/CurrentTime.h: Removed.
    * ForwardingHeaders/wtf/DataLog.h: Removed.
    * ForwardingHeaders/wtf/DateInstanceCache.h: Removed.
    * ForwardingHeaders/wtf/DateMath.h: Removed.
    * ForwardingHeaders/wtf/DecimalNumber.h: Removed.
    * ForwardingHeaders/wtf/Decoder.h: Removed.
    * ForwardingHeaders/wtf/Deque.h: Removed.
    * ForwardingHeaders/wtf/DisallowCType.h: Removed.
    * ForwardingHeaders/wtf/DoublyLinkedList.h: Removed.
    * ForwardingHeaders/wtf/DynamicAnnotations.h: Removed.
    * ForwardingHeaders/wtf/Encoder.h: Removed.
    * ForwardingHeaders/wtf/ExportMacros.h: Removed.
    * ForwardingHeaders/wtf/FastAllocBase.h: Removed.
    * ForwardingHeaders/wtf/FastMalloc.h: Removed.
    * ForwardingHeaders/wtf/FixedArray.h: Removed.
    * ForwardingHeaders/wtf/Float32Array.h: Removed.
    * ForwardingHeaders/wtf/Float64Array.h: Removed.
    * ForwardingHeaders/wtf/Forward.h: Removed.
    * ForwardingHeaders/wtf/Functional.h: Removed.
    * ForwardingHeaders/wtf/GetPtr.h: Removed.
    * ForwardingHeaders/wtf/HashCountedSet.h: Removed.
    * ForwardingHeaders/wtf/HashFunctions.h: Removed.
    * ForwardingHeaders/wtf/HashMap.h: Removed.
    * ForwardingHeaders/wtf/HashSet.h: Removed.
    * ForwardingHeaders/wtf/HashTable.h: Removed.
    * ForwardingHeaders/wtf/HashTraits.h: Removed.
    * ForwardingHeaders/wtf/HexNumber.h: Removed.
    * ForwardingHeaders/wtf/Int16Array.h: Removed.
    * ForwardingHeaders/wtf/Int32Array.h: Removed.
    * ForwardingHeaders/wtf/Int8Array.h: Removed.
    * ForwardingHeaders/wtf/ListHashSet.h: Removed.
    * ForwardingHeaders/wtf/ListRefPtr.h: Removed.
    * ForwardingHeaders/wtf/Locker.h: Removed.
    * ForwardingHeaders/wtf/MD5.h: Removed.
    * ForwardingHeaders/wtf/MainThread.h: Removed.
    * ForwardingHeaders/wtf/MathExtras.h: Removed.
    * ForwardingHeaders/wtf/MessageQueue.h: Removed.
    * ForwardingHeaders/wtf/MetaAllocator.h: Removed.
    * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Removed.
    * ForwardingHeaders/wtf/NonCopyingSort.h: Removed.
    * ForwardingHeaders/wtf/Noncopyable.h: Removed.
    * ForwardingHeaders/wtf/NotFound.h: Removed.
    * ForwardingHeaders/wtf/OSAllocator.h: Removed.
    * ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
    * ForwardingHeaders/wtf/OwnPtr.h: Removed.
    * ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
    * ForwardingHeaders/wtf/PageAllocation.h: Removed.
    * ForwardingHeaders/wtf/PageAllocationAligned.h: Removed.
    * ForwardingHeaders/wtf/PageBlock.h: Removed.
    * ForwardingHeaders/wtf/PageReservation.h: Removed.
    * ForwardingHeaders/wtf/ParallelJobs.h: Removed.
    * ForwardingHeaders/wtf/PassOwnArrayPtr.h: Removed.
    * ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
    * ForwardingHeaders/wtf/PassRefPtr.h: Removed.
    * ForwardingHeaders/wtf/Platform.h: Removed.
    * ForwardingHeaders/wtf/PossiblyNull.h: Removed.
    * ForwardingHeaders/wtf/RandomNumber.h: Removed.
    * ForwardingHeaders/wtf/RedBlackTree.h: Removed.
    * ForwardingHeaders/wtf/RefCounted.h: Removed.
    * ForwardingHeaders/wtf/RefCountedLeakCounter.h: Removed.
    * ForwardingHeaders/wtf/RefPtr.h: Removed.
    * ForwardingHeaders/wtf/RetainPtr.h: Removed.
    * ForwardingHeaders/wtf/SHA1.h: Removed.
    * ForwardingHeaders/wtf/SegmentedVector.h: Removed.
    * ForwardingHeaders/wtf/SimpleStats.h: Removed.
    * ForwardingHeaders/wtf/Spectrum.h: Removed.
    * ForwardingHeaders/wtf/StackBounds.h: Removed.
    * ForwardingHeaders/wtf/StaticConstructors.h: Removed.
    * ForwardingHeaders/wtf/StdLibExtras.h: Removed.
    * ForwardingHeaders/wtf/StringExtras.h: Removed.
    * ForwardingHeaders/wtf/StringHasher.h: Removed.
    * ForwardingHeaders/wtf/TemporaryChange.h: Removed.
    * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
    * ForwardingHeaders/wtf/ThreadSafeRefCounted.h: Removed.
    * ForwardingHeaders/wtf/ThreadSpecific.h: Removed.
    * ForwardingHeaders/wtf/Threading.h: Removed.
    * ForwardingHeaders/wtf/ThreadingPrimitives.h: Removed.
    * ForwardingHeaders/wtf/TypeTraits.h: Removed.
    * ForwardingHeaders/wtf/Uint16Array.h: Removed.
    * ForwardingHeaders/wtf/Uint32Array.h: Removed.
    * ForwardingHeaders/wtf/Uint8Array.h: Removed.
    * ForwardingHeaders/wtf/Uint8ClampedArray.h: Removed.
    * ForwardingHeaders/wtf/UnusedParam.h: Removed.
    * ForwardingHeaders/wtf/VMTags.h: Removed.
    * ForwardingHeaders/wtf/ValueCheck.h: Removed.
    * ForwardingHeaders/wtf/Vector.h: Removed.
    * ForwardingHeaders/wtf/VectorTraits.h: Removed.
    * ForwardingHeaders/wtf/WTFThreadData.h: Removed.
    * ForwardingHeaders/wtf/dtoa.h: Removed.
    * ForwardingHeaders/wtf/dtoa/double-conversion.h: Removed.
    * ForwardingHeaders/wtf/text/ASCIIFastPath.h: Removed.
    * ForwardingHeaders/wtf/text/AtomicString.h: Removed.
    * ForwardingHeaders/wtf/text/AtomicStringHash.h: Removed.
    * ForwardingHeaders/wtf/text/AtomicStringImpl.h: Removed.
    * ForwardingHeaders/wtf/text/CString.h: Removed.
    * ForwardingHeaders/wtf/text/StringBuffer.h: Removed.
    * ForwardingHeaders/wtf/text/StringBuilder.h: Removed.
    * ForwardingHeaders/wtf/text/StringConcatenate.h: Removed.
    * ForwardingHeaders/wtf/text/StringHash.h: Removed.
    * ForwardingHeaders/wtf/text/StringImpl.h: Removed.
    * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
    * ForwardingHeaders/wtf/text/WTFString.h: Removed.
    * ForwardingHeaders/wtf/unicode/CharacterNames.h: Removed.
    * ForwardingHeaders/wtf/unicode/Collator.h: Removed.
    * ForwardingHeaders/wtf/unicode/UTF8.h: Removed.
    * ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
    * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
    * ForwardingHeaders/wtf/unicode/wince/UnicodeWince.h: Removed.
    * ForwardingHeaders/wtf/url/ParsedURL.h: Removed.
    
    Source/WebKit/mac:
    
    ForwardingHeaders/wtf is no longer necessary (or functional) now that JavaScriptCore
    no longer includes the WTF headers as private headers.
    
    * ForwardingHeaders/wtf/ASCIICType.h: Removed.
    * ForwardingHeaders/wtf/AlwaysInline.h: Removed.
    * ForwardingHeaders/wtf/Assertions.h: Removed.
    * ForwardingHeaders/wtf/Deque.h: Removed.
    * ForwardingHeaders/wtf/DisallowCType.h: Removed.
    * ForwardingHeaders/wtf/FastMalloc.h: Removed.
    * ForwardingHeaders/wtf/Forward.h: Removed.
    * ForwardingHeaders/wtf/GetPtr.h: Removed.
    * ForwardingHeaders/wtf/HashCountedSet.h: Removed.
    * ForwardingHeaders/wtf/HashMap.h: Removed.
    * ForwardingHeaders/wtf/HashSet.h: Removed.
    * ForwardingHeaders/wtf/HashTraits.h: Removed.
    * ForwardingHeaders/wtf/ListHashSet.h: Removed.
    * ForwardingHeaders/wtf/ListRefPtr.h: Removed.
    * ForwardingHeaders/wtf/Locker.h: Removed.
    * ForwardingHeaders/wtf/MathExtras.h: Removed.
    * ForwardingHeaders/wtf/Noncopyable.h: Removed.
    * ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
    * ForwardingHeaders/wtf/OwnPtr.h: Removed.
    * ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
    * ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
    * ForwardingHeaders/wtf/PassRefPtr.h: Removed.
    * ForwardingHeaders/wtf/Platform.h: Removed.
    * ForwardingHeaders/wtf/RefCounted.h: Removed.
    * ForwardingHeaders/wtf/RefCountedLeakCounter.h: Removed.
    * ForwardingHeaders/wtf/RefPtr.h: Removed.
    * ForwardingHeaders/wtf/RetainPtr.h: Removed.
    * ForwardingHeaders/wtf/StdLibExtras.h: Removed.
    * ForwardingHeaders/wtf/TemporaryChange.h: Removed.
    * ForwardingHeaders/wtf/Threading.h: Removed.
    * ForwardingHeaders/wtf/UnusedParam.h: Removed.
    * ForwardingHeaders/wtf/VMTags.h: Removed.
    * ForwardingHeaders/wtf/ValueCheck.h: Removed.
    * ForwardingHeaders/wtf/Vector.h: Removed.
    * ForwardingHeaders/wtf/VectorTraits.h: Removed.
    * ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
    * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@110033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    3979f2d4