blob: a6f4349b7b71249abe3cee26585de6cf8ccc445d [file] [log] [blame]
Joerg Sonnenberger340a1752013-09-25 10:37:32 +00001set(LLVM_NO_RTTI 1)
2
Zachary Turner7513e822015-02-17 22:20:20 +00003if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
Zachary Turner030b8cb2015-02-24 22:17:57 +00004 add_definitions( -DEXPORT_LIBLLDB )
Zachary Turner7513e822015-02-17 22:20:20 +00005endif()
6
Zachary Turner030b8cb2015-02-24 22:17:57 +00007# An OBJECT library is a special type of CMake library that produces
8# no archive, has no link interface, and no link inputs. It is like
9# a regular archive, just without the physical output. To link against
10# an OBJECT library, you reference it in the *source* file list of a
11# library using the special syntax $<TARGET_OBJECTS:lldbAPI>. This will
12# cause every object file to be passed to the linker independently, as
13# opposed to a single archive being passed to the linker.
14#
15# This is *extremely* important on Windows. lldbAPI exports all of the
16# SB classes using __declspec(dllexport). Unfortunately for technical
17# reasons it is not possible (well, extremely difficult) to get the linker
18# to propagate a __declspec(dllexport) attribute from a symbol in an
19# object file in an archive to a DLL that links against that archive.
20# The solution to this is for the DLL to link the object file directly.
21# So lldbAPI must be an OBJECT library.
22add_lldb_library(lldbAPI OBJECT
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000023 SBAddress.cpp
Oleksiy Vyalov71d08b32015-02-16 00:04:19 +000024 SBAttachInfo.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000025 SBBlock.cpp
26 SBBreakpoint.cpp
27 SBBreakpointLocation.cpp
28 SBBroadcaster.cpp
29 SBCommandInterpreter.cpp
30 SBCommandReturnObject.cpp
31 SBCommunication.cpp
32 SBCompileUnit.cpp
33 SBData.cpp
34 SBDebugger.cpp
35 SBDeclaration.cpp
36 SBError.cpp
37 SBEvent.cpp
Chandler Carruthb8a4ecb2014-10-01 21:33:28 +000038 SBExecutionContext.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000039 SBExpressionOptions.cpp
40 SBFileSpec.cpp
41 SBFileSpecList.cpp
42 SBFrame.cpp
43 SBFunction.cpp
44 SBHostOS.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000045 SBInstruction.cpp
46 SBInstructionList.cpp
Oleksiy Vyalov1ef7b2c2015-02-04 23:19:15 +000047 SBLaunchInfo.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000048 SBLineEntry.cpp
49 SBListener.cpp
50 SBModule.cpp
51 SBModuleSpec.cpp
Ed Maste53414042013-11-21 14:38:22 +000052 SBPlatform.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000053 SBProcess.cpp
Jason Molenda5e8dce42013-12-13 00:29:16 +000054 SBQueue.cpp
55 SBQueueItem.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000056 SBSection.cpp
57 SBSourceManager.cpp
58 SBStream.cpp
59 SBStringList.cpp
60 SBSymbol.cpp
61 SBSymbolContext.cpp
62 SBSymbolContextList.cpp
63 SBTarget.cpp
64 SBThread.cpp
Kuba Breckaaaa0b812014-09-06 01:22:55 +000065 SBThreadCollection.cpp
Todd Fiala8a3716b2014-09-30 15:58:56 +000066 SBThreadPlan.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000067 SBType.cpp
68 SBTypeCategory.cpp
Todd Fiala732215f2014-06-02 20:55:29 +000069 SBTypeEnumMember.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000070 SBTypeFilter.cpp
71 SBTypeFormat.cpp
72 SBTypeNameSpecifier.cpp
73 SBTypeSummary.cpp
74 SBTypeSynthetic.cpp
75 SBValue.cpp
76 SBValueList.cpp
Zachary Turner51f96ee2015-02-17 17:55:50 +000077 SBVariablesOptions.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000078 SBWatchpoint.cpp
Todd Fiala802dc4022014-06-23 19:30:49 +000079 SBUnixSignals.cpp
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000080 )