blob: d031be940cb4fc3c7a8a7a3796250e1e9986afb3 [file] [log] [blame]
Joerg Sonnenberger340a1752013-09-25 10:37:32 +00001include_directories(.)
2
3if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
4include_directories(
5 Plugins/Process/Linux
6 Plugins/Process/POSIX
7 )
8endif ()
9
10if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
11include_directories(
12 Plugins/Process/FreeBSD
13 Plugins/Process/POSIX
14 )
15endif ()
16
Bruce Mitchener64f74da2015-10-24 00:27:04 +000017if ( CMAKE_SYSTEM_NAME MATCHES "NetBSD" )
18include_directories(
19 Plugins/Process/POSIX
20 )
21endif ()
22
23
Bruce Mitchener6ec5d612015-10-09 03:40:55 +000024set(lldbBase_SOURCES
25 lldb.cpp
Zachary Turner799770c2015-03-18 16:56:24 +000026 )
27
Chris Bienemanaa098de2016-09-23 23:33:52 +000028foreach(file
29 "${LLDB_SOURCE_DIR}/.git/logs/HEAD" # Git
30 "${LLDB_SOURCE_DIR}/.svn/wc.db" # SVN 1.7
31 "${LLDB_SOURCE_DIR}/.svn/entries" # SVN 1.6
32 )
33 if(EXISTS "${file}")
34 set(lldb_vc "${file}")
35 break()
36 endif()
37endforeach()
38
39if(DEFINED lldb_vc)
40 set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
Michal Gornye2f4b252016-10-19 12:54:28 +000041 set(get_svn_script "${LLVM_CMAKE_PATH}/GetSVN.cmake")
Chris Bienemanaa098de2016-09-23 23:33:52 +000042
43 # Create custom target to generate the VC revision include.
44 add_custom_command(OUTPUT "${version_inc}"
45 DEPENDS "${lldb_vc}" "${get_svn_script}"
46 COMMAND
47 ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLDB_SOURCE_DIR}"
48 "-DFIRST_NAME=LLDB"
49 "-DHEADER_FILE=${version_inc}"
50 -P "${get_svn_script}")
51
52 # Mark the generated header as being generated.
53 set_source_files_properties("${version_inc}"
54 PROPERTIES GENERATED TRUE
55 HEADER_FILE_ONLY TRUE)
56
57 # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
Chris Bieneman1c9da8b2016-11-10 23:56:32 +000058 set_property(SOURCE lldb.cpp APPEND PROPERTY
59 COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
Chris Bienemanaa098de2016-09-23 23:33:52 +000060 list(APPEND lldbBase_SOURCES ${version_inc})
61endif()
62
Chris Bienemanb92cfe62016-11-10 17:33:19 +000063if(APPLE)
64 set(apple_version_inc "${CMAKE_CURRENT_BINARY_DIR}/AppleVersion.inc")
65 set(apple_version_script "${LLDB_SOURCE_DIR}/cmake/modules/EmbedAppleVersion.cmake")
66 set(info_plist ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist)
67
68 # Create custom target to generate the VC revision include.
69 add_custom_command(OUTPUT "${apple_version_inc}"
70 DEPENDS "${apple_version_script}" "${info_plist}"
71 COMMAND
72 ${CMAKE_COMMAND} "-DLLDB_INFO_PLIST=${info_plist}"
73 "-DHEADER_FILE=${apple_version_inc}"
74 -P "${apple_version_script}")
75
76 # Mark the generated header as being generated.
77 set_source_files_properties("${apple_version_inc}"
78 PROPERTIES GENERATED TRUE
79 HEADER_FILE_ONLY TRUE)
80
81 # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
Chris Bieneman1c9da8b2016-11-10 23:56:32 +000082 set_property(SOURCE lldb.cpp APPEND PROPERTY
83 COMPILE_DEFINITIONS "HAVE_APPLE_VERSION_INC")
Chris Bienemanb92cfe62016-11-10 17:33:19 +000084 list(APPEND lldbBase_SOURCES ${apple_version_inc})
85elseif(LLDB_VERSION_STRING)
Chris Bieneman1c9da8b2016-11-10 23:56:32 +000086 set_property(SOURCE lldb.cpp APPEND PROPERTY
87 COMPILE_DEFINITIONS "LLDB_VERSION_STRING=${LLDB_VERSION_STRING}")
Chris Bienemanb92cfe62016-11-10 17:33:19 +000088endif()
89
Bruce Mitchener6ec5d612015-10-09 03:40:55 +000090add_lldb_library(lldbBase
91 ${lldbBase_SOURCES}
92 )
93
Joerg Sonnenberger340a1752013-09-25 10:37:32 +000094add_subdirectory(Breakpoint)
95add_subdirectory(Commands)
96add_subdirectory(Core)
97add_subdirectory(DataFormatters)
98add_subdirectory(Expression)
99add_subdirectory(Host)
Zachary Turner3a006912015-03-19 22:00:21 +0000100add_subdirectory(Initialization)
Joerg Sonnenberger340a1752013-09-25 10:37:32 +0000101add_subdirectory(Interpreter)
102add_subdirectory(Plugins)
103add_subdirectory(Symbol)
104add_subdirectory(Target)
105add_subdirectory(Utility)
106
Zachary Turner3a006912015-03-19 22:00:21 +0000107# Build API last. Since liblldb needs to link against every other target, it needs
108# those targets to have already been created.
Zachary Turner799770c2015-03-18 16:56:24 +0000109add_subdirectory(API)