Ignore:
Timestamp:
Mar 26, 2010, 7:05:09 AM (15 years ago)
Author:
Simon Hausmann
Message:

[Qt] Build JavaScriptCore as a static library.
https://bugs.webkit.org/show_bug.cgi?id=36590

Patch by Jocelyn Turcotte <[email protected]> on 2010-03-26
Reviewed by Simon Hausmann.

This patch takes what was left of the unused JavaScriptCore.pro
and moved the compilation logic from JavaScriptCore.pri to
JavaScriptCore.pro.

.:

  • WebKit.pro:

JavaScriptCore:

WebCore:

  • WebCore.pro:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.pri

    r56370 r56623  
    11# JavaScriptCore - Qt4 build info
    22VPATH += $$PWD
     3JAVASCRIPTCORE_TARGET = jscore
    34
    45CONFIG(standalone_package) {
     
    67} else {
    78    isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = generated
    8 }
    9 
    10 CONFIG(debug, debug|release) {
    11     OBJECTS_DIR = obj/debug
    12 } else { # Release
    13     OBJECTS_DIR = obj/release
    149}
    1510
     
    4237    $$INCLUDEPATH
    4338
     39win32-*: DEFINES += _HAS_TR1=0
     40
    4441DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF
    4542
    46 win32-* {
    47     LIBS += -lwinmm
    48 }
    4943contains(JAVASCRIPTCORE_JIT,yes) {
    5044    DEFINES+=ENABLE_JIT=1
     
    5852}
    5953
    60 # Rules when JIT enabled (not disabled)
    61 !contains(DEFINES, ENABLE_JIT=0) {
    62     linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
    63         QMAKE_CXXFLAGS += -fno-stack-protector
    64         QMAKE_CFLAGS += -fno-stack-protector
    65     }
    66 }
    67 
    6854wince* {
    6955    INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat
    70     SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c
    7156    DEFINES += WINCEBASIC
    7257}
    7358
    74 include(pcre/pcre.pri)
    7559
    76 SOURCES += \
    77     API/JSBase.cpp \
    78     API/JSCallbackConstructor.cpp \
    79     API/JSCallbackFunction.cpp \
    80     API/JSCallbackObject.cpp \
    81     API/JSClassRef.cpp \
    82     API/JSContextRef.cpp \
    83     API/JSObjectRef.cpp \
    84     API/JSStringRef.cpp \
    85     API/JSValueRef.cpp \
    86     API/OpaqueJSString.cpp \
    87     assembler/ARMAssembler.cpp \
    88     assembler/MacroAssemblerARM.cpp \
    89     bytecode/CodeBlock.cpp \
    90     bytecode/JumpTable.cpp \
    91     bytecode/Opcode.cpp \
    92     bytecode/SamplingTool.cpp \
    93     bytecode/StructureStubInfo.cpp \
    94     bytecompiler/BytecodeGenerator.cpp \
    95     bytecompiler/NodesCodegen.cpp \
    96     debugger/DebuggerActivation.cpp \
    97     debugger/DebuggerCallFrame.cpp \
    98     debugger/Debugger.cpp \
    99     interpreter/CallFrame.cpp \
    100     interpreter/Interpreter.cpp \
    101     interpreter/RegisterFile.cpp \
    102     jit/ExecutableAllocatorFixedVMPool.cpp \
    103     jit/ExecutableAllocatorPosix.cpp \
    104     jit/ExecutableAllocatorSymbian.cpp \
    105     jit/ExecutableAllocatorWin.cpp \
    106     jit/ExecutableAllocator.cpp \
    107     jit/JITArithmetic.cpp \
    108     jit/JITCall.cpp \
    109     jit/JIT.cpp \
    110     jit/JITOpcodes.cpp \
    111     jit/JITPropertyAccess.cpp \
    112     jit/JITPropertyAccess32_64.cpp \
    113     jit/JITStubs.cpp \
    114     parser/Lexer.cpp \
    115     parser/Nodes.cpp \
    116     parser/ParserArena.cpp \
    117     parser/Parser.cpp \
    118     profiler/Profile.cpp \
    119     profiler/ProfileGenerator.cpp \
    120     profiler/ProfileNode.cpp \
    121     profiler/Profiler.cpp \
    122     runtime/ArgList.cpp \
    123     runtime/Arguments.cpp \
    124     runtime/ArrayConstructor.cpp \
    125     runtime/ArrayPrototype.cpp \
    126     runtime/BooleanConstructor.cpp \
    127     runtime/BooleanObject.cpp \
    128     runtime/BooleanPrototype.cpp \
    129     runtime/CallData.cpp \
    130     runtime/Collector.cpp \
    131     runtime/CommonIdentifiers.cpp \
    132     runtime/Completion.cpp \
    133     runtime/ConstructData.cpp \
    134     runtime/DateConstructor.cpp \
    135     runtime/DateConversion.cpp \
    136     runtime/DateInstance.cpp \
    137     runtime/DatePrototype.cpp \
    138     runtime/ErrorConstructor.cpp \
    139     runtime/Error.cpp \
    140     runtime/ErrorInstance.cpp \
    141     runtime/ErrorPrototype.cpp \
    142     runtime/ExceptionHelpers.cpp \
    143     runtime/Executable.cpp \
    144     runtime/FunctionConstructor.cpp \
    145     runtime/FunctionPrototype.cpp \
    146     runtime/GetterSetter.cpp \
    147     runtime/GlobalEvalFunction.cpp \
    148     runtime/Identifier.cpp \
    149     runtime/InitializeThreading.cpp \
    150     runtime/InternalFunction.cpp \
    151     runtime/JSActivation.cpp \
    152     runtime/JSAPIValueWrapper.cpp \
    153     runtime/JSArray.cpp \
    154     runtime/JSByteArray.cpp \
    155     runtime/JSCell.cpp \
    156     runtime/JSFunction.cpp \
    157     runtime/JSGlobalData.cpp \
    158     runtime/JSGlobalObject.cpp \
    159     runtime/JSGlobalObjectFunctions.cpp \
    160     runtime/JSImmediate.cpp \
    161     runtime/JSLock.cpp \
    162     runtime/JSNotAnObject.cpp \
    163     runtime/JSNumberCell.cpp \
    164     runtime/JSObject.cpp \
    165     runtime/JSONObject.cpp \
    166     runtime/JSPropertyNameIterator.cpp \
    167     runtime/JSStaticScopeObject.cpp \
    168     runtime/JSString.cpp \
    169     runtime/JSValue.cpp \
    170     runtime/JSVariableObject.cpp \
    171     runtime/JSWrapperObject.cpp \
    172     runtime/LiteralParser.cpp \
    173     runtime/Lookup.cpp \
    174     runtime/MarkStackPosix.cpp \
    175     runtime/MarkStackSymbian.cpp \
    176     runtime/MarkStackWin.cpp \
    177     runtime/MarkStack.cpp \
    178     runtime/MathObject.cpp \
    179     runtime/NativeErrorConstructor.cpp \
    180     runtime/NativeErrorPrototype.cpp \
    181     runtime/NumberConstructor.cpp \
    182     runtime/NumberObject.cpp \
    183     runtime/NumberPrototype.cpp \
    184     runtime/ObjectConstructor.cpp \
    185     runtime/ObjectPrototype.cpp \
    186     runtime/Operations.cpp \
    187     runtime/PropertyDescriptor.cpp \
    188     runtime/PropertyNameArray.cpp \
    189     runtime/PropertySlot.cpp \
    190     runtime/PrototypeFunction.cpp \
    191     runtime/RegExpConstructor.cpp \
    192     runtime/RegExp.cpp \
    193     runtime/RegExpObject.cpp \
    194     runtime/RegExpPrototype.cpp \
    195     runtime/ScopeChain.cpp \
    196     runtime/SmallStrings.cpp \
    197     runtime/StringConstructor.cpp \
    198     runtime/StringObject.cpp \
    199     runtime/StringPrototype.cpp \
    200     runtime/StructureChain.cpp \
    201     runtime/Structure.cpp \
    202     runtime/TimeoutChecker.cpp \
    203     runtime/UString.cpp \
    204     runtime/UStringImpl.cpp \
    205     wtf/Assertions.cpp \
    206     wtf/ByteArray.cpp \
    207     wtf/CurrentTime.cpp \
    208     wtf/DateMath.cpp \
    209     wtf/dtoa.cpp \
    210     wtf/FastMalloc.cpp \
    211     wtf/HashTable.cpp \
    212     wtf/MainThread.cpp \
    213     wtf/qt/MainThreadQt.cpp \
    214     wtf/qt/ThreadingQt.cpp \
    215     wtf/RandomNumber.cpp \
    216     wtf/RefCountedLeakCounter.cpp \
    217     wtf/symbian/BlockAllocatorSymbian.cpp \
    218     wtf/ThreadingNone.cpp \
    219     wtf/Threading.cpp \
    220     wtf/TypeTraits.cpp \
    221     wtf/unicode/CollatorDefault.cpp \
    222     wtf/unicode/icu/CollatorICU.cpp \
    223     wtf/unicode/UTF8.cpp \
    224     yarr/RegexCompiler.cpp \
    225     yarr/RegexInterpreter.cpp \
    226     yarr/RegexJIT.cpp
     60defineTest(addJavaScriptCoreLib) {
     61    pathToJavaScriptCoreOutput = $$ARGS
     62    CONFIG(debug_and_release):CONFIG(debug, debug|release): pathToJavaScriptCoreOutput = $$pathToJavaScriptCoreOutput/debug
     63    CONFIG(debug_and_release):CONFIG(release, debug|release): pathToJavaScriptCoreOutput = $$pathToJavaScriptCoreOutput/release
    22764
    228 # Generated files, simply list them for JavaScriptCore
    229 SOURCES += \
    230     $${JSC_GENERATED_SOURCES_DIR}/Grammar.cpp
     65    win32-msvc* {
     66        LIBS += $$pathToJavaScriptCoreOutput/$${JAVASCRIPTCORE_TARGET}.lib
     67    } else:symbian {
     68        LIBS += -l$${JAVASCRIPTCORE_TARGET}.lib
     69    } else {
     70        # Make sure jscore will be early in the list of libraries to workaround a bug in MinGW
     71        # that can't resolve symbols from QtCore if libjscore comes after.
     72        QMAKE_LIBDIR = $$pathToJavaScriptCoreOutput $$QMAKE_LIBDIR
     73        LIBS += -l$$JAVASCRIPTCORE_TARGET
     74    }
    23175
    232 !contains(DEFINES, USE_SYSTEM_MALLOC) {
    233     SOURCES += wtf/TCSystemAlloc.cpp
     76    win32-* {
     77        LIBS += -lwinmm
     78    }
     79
     80    # The following line is to prevent qmake from adding jscore to libQtWebKit's prl dependencies.
     81    # The compromise we have to accept by disabling explicitlib is to drop support to link QtWebKit and QtScript
     82    # statically in applications (which isn't used often because, among other things, of licensing obstacles).
     83    CONFIG -= explicitlib
     84
     85    export(QMAKE_LIBDIR)
     86    export(LIBS)
     87    export(CONFIG)
     88
     89    return(true)
    23490}
    235 
Note: See TracChangeset for help on using the changeset viewer.