Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 1 | include_directories(.)
|
| 2 |
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 3 | if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 4 | include_directories(
|
| 5 | Plugins/Process/Linux
|
| 6 | Plugins/Process/POSIX
|
| 7 | )
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 8 | endif ()
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 9 |
|
Daniel Malea | e73f1d2 | 2013-05-31 20:16:40 +0000 | [diff] [blame] | 10 | if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
|
| 11 | include_directories(
|
| 12 | Plugins/Process/FreeBSD
|
| 13 | Plugins/Process/POSIX
|
| 14 | )
|
| 15 | endif ()
|
| 16 |
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 17 | add_subdirectory(API)
|
| 18 | add_subdirectory(Breakpoint)
|
| 19 | add_subdirectory(Commands)
|
| 20 | add_subdirectory(Core)
|
| 21 | add_subdirectory(DataFormatters)
|
| 22 | add_subdirectory(Expression)
|
| 23 | add_subdirectory(Host)
|
| 24 | add_subdirectory(Interpreter)
|
| 25 | add_subdirectory(Plugins)
|
| 26 | add_subdirectory(Symbol)
|
| 27 | add_subdirectory(Target)
|
| 28 | add_subdirectory(Utility)
|
| 29 |
|
| 30 | set( LLDB_USED_LIBS
|
| 31 | lldbAPI
|
| 32 | lldbBreakpoint
|
| 33 | lldbCommands
|
| 34 | lldbDataFormatters
|
| 35 | lldbHostCommon
|
| 36 | lldbCore
|
| 37 | lldbExpression
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 38 | lldbInterpreter
|
| 39 | lldbSymbol
|
| 40 | lldbTarget
|
| 41 | lldbUtility
|
| 42 |
|
| 43 | # Plugins
|
| 44 | lldbPluginDisassemblerLLVM
|
| 45 | lldbPluginSymbolFileDWARF
|
| 46 | lldbPluginSymbolFileSymtab
|
| 47 | lldbPluginDynamicLoaderStatic
|
Filipe Cabecinhas | aad68fa | 2013-04-25 01:36:53 +0000 | [diff] [blame] | 48 | lldbPluginDynamicLoaderPosixDYLD
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 49 |
|
Daniel Malea | e2d0ace | 2013-04-17 18:40:42 +0000 | [diff] [blame] | 50 | lldbPluginObjectFileMachO
|
| 51 | lldbPluginObjectFileELF
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 52 | lldbPluginObjectContainerBSDArchive
|
| 53 | lldbPluginObjectContainerMachOArchive
|
| 54 | lldbPluginProcessGDBRemote
|
Filipe Cabecinhas | aad68fa | 2013-04-25 01:36:53 +0000 | [diff] [blame] | 55 | lldbPluginProcessMachCore
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 56 | lldbPluginProcessUtility
|
| 57 | lldbPluginPlatformGDB
|
| 58 | lldbPluginPlatformFreeBSD
|
| 59 | lldbPluginPlatformLinux
|
Daniel Malea | e2d0ace | 2013-04-17 18:40:42 +0000 | [diff] [blame] | 60 | lldbPluginObjectFileMachO
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 61 | lldbPluginObjectContainerMachOArchive
|
| 62 | lldbPluginObjectContainerBSDArchive
|
| 63 | lldbPluginPlatformMacOSX
|
Daniel Malea | e2d0ace | 2013-04-17 18:40:42 +0000 | [diff] [blame] | 64 | lldbPluginDynamicLoaderMacOSXDYLD
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 65 | lldbPluginUnwindAssemblyInstEmulation
|
| 66 | lldbPluginUnwindAssemblyX86
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 67 | lldbPluginAppleObjCRuntime
|
| 68 | lldbPluginCXXItaniumABI
|
| 69 | lldbPluginABIMacOSX_arm
|
| 70 | lldbPluginABIMacOSX_i386
|
| 71 | lldbPluginABISysV_x86_64
|
| 72 | lldbPluginInstructionARM
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 73 | lldbPluginObjectFilePECOFF
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 74 | lldbPluginOSPython
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 75 | )
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 76 |
|
| 77 | # Windows-only libraries
|
| 78 | if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
| 79 | list(APPEND LLDB_USED_LIBS
|
| 80 | #lldbHostWindows
|
| 81 | #lldbPluginPlatformWindows
|
| 82 | #Ws2_32
|
| 83 | )
|
| 84 | endif ()
|
| 85 |
|
| 86 | # Linux-only libraries
|
| 87 | if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
|
| 88 | list(APPEND LLDB_USED_LIBS
|
| 89 | lldbHostLinux
|
| 90 | lldbPluginProcessLinux
|
| 91 | lldbPluginProcessPOSIX
|
| 92 | )
|
| 93 | endif ()
|
| 94 |
|
Daniel Malea | 764cbd9 | 2013-06-04 15:59:01 +0000 | [diff] [blame] | 95 | # FreeBSD-only libraries
|
| 96 | if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
|
| 97 | list(APPEND LLDB_USED_LIBS
|
| 98 | lldbHostFreeBSD
|
| 99 | lldbPluginProcessFreeBSD
|
| 100 | lldbPluginProcessPOSIX
|
| 101 | )
|
| 102 | endif ()
|
| 103 |
|
Filipe Cabecinhas | aad68fa | 2013-04-25 01:36:53 +0000 | [diff] [blame] | 104 | # Darwin-only libraries
|
| 105 | if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
Daniel Malea | 3933006 | 2013-05-28 03:44:37 +0000 | [diff] [blame] | 106 | set(LLDB_VERS_GENERATED_FILE ${LLDB_BINARY_DIR}/source/LLDB_vers.c)
|
| 107 | add_custom_command(OUTPUT ${LLDB_VERS_GENERATED_FILE}
|
| 108 | COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
|
| 109 | ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj
|
| 110 | > ${LLDB_VERS_GENERATED_FILE})
|
| 111 |
|
| 112 | set_source_files_properties(${LLDB_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
|
Filipe Cabecinhas | aad68fa | 2013-04-25 01:36:53 +0000 | [diff] [blame] | 113 | list(APPEND LLDB_USED_LIBS
|
| 114 | lldbHostMacOSX
|
Daniel Malea | 4463d1e | 2013-05-13 17:30:30 +0000 | [diff] [blame] | 115 | lldbPluginDynamicLoaderDarwinKernel
|
Filipe Cabecinhas | aad68fa | 2013-04-25 01:36:53 +0000 | [diff] [blame] | 116 | lldbPluginProcessMacOSXKernel
|
| 117 | lldbPluginSymbolVendorMacOSX
|
| 118 | )
|
| 119 | endif()
|
| 120 |
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 121 | set( CLANG_USED_LIBS
|
| 122 | clangAnalysis
|
| 123 | clangAST
|
| 124 | clangBasic
|
| 125 | clangCodeGen
|
| 126 | clangDriver
|
| 127 | clangEdit
|
| 128 | clangFrontend
|
| 129 | clangLex
|
| 130 | clangParse
|
| 131 | clangRewriteCore
|
| 132 | clangRewriteFrontend
|
| 133 | clangSema
|
| 134 | clangSerialization
|
| 135 | )
|
| 136 |
|
| 137 | set( LLDB_SYSTEM_LIBS
|
| 138 | edit
|
| 139 | python2.7
|
| 140 | )
|
| 141 |
|
| 142 | set( LLVM_LINK_COMPONENTS
|
| 143 | ${LLVM_TARGETS_TO_BUILD}
|
| 144 | jit
|
| 145 | interpreter
|
| 146 | nativecodegen
|
| 147 | asmparser
|
| 148 | bitreader
|
| 149 | bitwriter
|
| 150 | codegen
|
| 151 | ipo
|
| 152 | selectiondag
|
| 153 | bitreader
|
| 154 | mc
|
| 155 | mcjit
|
| 156 | core
|
| 157 | mcdisassembler
|
| 158 | executionengine
|
| 159 | )
|
| 160 |
|
Daniel Malea | 0856107 | 2013-03-05 21:59:12 +0000 | [diff] [blame] | 161 | set_source_files_properties(${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp PROPERTIES GENERATED 1)
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 162 | set(SHARED_LIBRARY 1)
|
| 163 |
|
| 164 | add_lldb_library(liblldb
|
| 165 | lldb.cpp
|
| 166 | lldb-log.cpp
|
Daniel Malea | 0856107 | 2013-03-05 21:59:12 +0000 | [diff] [blame] | 167 | ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp
|
Daniel Malea | 3933006 | 2013-05-28 03:44:37 +0000 | [diff] [blame] | 168 | ${LLDB_VERS_GENERATED_FILE}
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 169 | )
|
Daniel Malea | e4c2022 | 2013-05-17 20:55:19 +0000 | [diff] [blame] | 170 | set_target_properties(liblldb
|
| 171 | PROPERTIES
|
| 172 | OUTPUT_NAME lldb
|
| 173 | VERSION ${LLDB_VERSION}
|
| 174 | )
|
Daniel Malea | 3933006 | 2013-05-28 03:44:37 +0000 | [diff] [blame] | 175 | add_dependencies(liblldb
|
| 176 | ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp
|
| 177 | ${LLDB_VERS_GENERATED_FILE}
|
| 178 | )
|
Daniel Malea | 0856107 | 2013-03-05 21:59:12 +0000 | [diff] [blame] | 179 | target_link_libraries(liblldb ${LLDB_SYSTEM_LIBS})
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 180 |
|
| 181 | # Determine LLDB revision and repository. GetSourceVersion and GetRepositoryPath are shell-scripts, and as
|
| 182 | # such will not work on Windows.
|
| 183 | if ( NOT CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
| 184 | execute_process(COMMAND ${CMAKE_SOURCE_DIR}/utils/GetSourceVersion ${LLDB_SOURCE_DIR}
|
| 185 | OUTPUT_VARIABLE LLDB_REVISION)
|
Sylvestre Ledru | 3863dd0 | 2013-03-16 17:01:13 +0000 | [diff] [blame] | 186 | if ( LLDB_REVISION )
|
| 187 | string(REGEX REPLACE "(\r?\n)+$" "" LLDB_REVISION ${LLDB_REVISION})
|
| 188 | endif()
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 189 |
|
| 190 | execute_process(COMMAND ${CMAKE_SOURCE_DIR}/utils/GetRepositoryPath ${LLDB_SOURCE_DIR}
|
| 191 | OUTPUT_VARIABLE LLDB_REPOSITORY)
|
Sylvestre Ledru | 3863dd0 | 2013-03-16 17:01:13 +0000 | [diff] [blame] | 192 | if ( LLDB_REPOSITORY )
|
Daniel Malea | 8194512 | 2013-05-15 17:23:19 +0000 | [diff] [blame] | 193 | # Replace newline characters with spaces
|
| 194 | string(REGEX REPLACE "(\r?\n)+" " " LLDB_REPOSITORY ${LLDB_REPOSITORY})
|
| 195 |
|
| 196 | # Remove trailing spaces
|
| 197 | string(REGEX REPLACE "(\ )+$" "" LLDB_REPOSITORY ${LLDB_REPOSITORY})
|
Sylvestre Ledru | 3863dd0 | 2013-03-16 17:01:13 +0000 | [diff] [blame] | 198 | endif()
|
Daniel Malea | 137c4d7 | 2013-02-28 23:11:46 +0000 | [diff] [blame] | 199 |
|
| 200 | set_property(
|
| 201 | SOURCE lldb.cpp
|
| 202 | PROPERTY COMPILE_DEFINITIONS "LLDB_REVISION=\"${LLDB_REVISION}\"" "LLDB_REPOSITORY=\"${LLDB_REPOSITORY}\"")
|
| 203 | endif ()
|
| 204 | # FIXME: implement svn/git revision and repository parsing solution on Windows. There is an SVN-only
|
| 205 | # revision parsing solution in tools/clang/lib/Basic/CMakelists.txt.
|
| 206 |
|
Daniel Malea | aebeefd | 2013-02-21 20:58:22 +0000 | [diff] [blame] | 207 |
|
| 208 | install(TARGETS liblldb
|
| 209 | LIBRARY DESTINATION lib)
|