1if ( CMAKE_SYSTEM_NAME MATCHES "Windows" OR CMAKE_SYSTEM_NAME MATCHES "NetBSD" )
2  add_definitions( -DIMPORT_LIBLLDB )
3  list(APPEND extra_libs lldbHost)
4endif ()
5
6if (HAVE_LIBPTHREAD)
7  list(APPEND extra_libs pthread)
8endif ()
9
10
11if(APPLE)
12  configure_file(
13    ${CMAKE_CURRENT_SOURCE_DIR}/lldb-vscode-Info.plist.in
14    ${CMAKE_CURRENT_BINARY_DIR}/lldb-vscode-Info.plist
15    )
16  # Inline info plist in binary (use target_link_options for this as soon as CMake 3.13 is available)
17  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_BINARY_DIR}/lldb-vscode-Info.plist")
18endif()
19
20# We need to include the llvm components we depend on manually, as liblldb does
21# not re-export those.
22set(LLVM_LINK_COMPONENTS Support)
23set(LLVM_TARGET_DEFINITIONS Options.td)
24tablegen(LLVM Options.inc -gen-opt-parser-defs)
25add_public_tablegen_target(LLDBVSCodeOptionsTableGen)
26add_lldb_tool(lldb-vscode
27  lldb-vscode.cpp
28  BreakpointBase.cpp
29  ExceptionBreakpoint.cpp
30  FunctionBreakpoint.cpp
31  IOStream.cpp
32  JSONUtils.cpp
33  LLDBUtils.cpp
34  SourceBreakpoint.cpp
35  VSCode.cpp
36
37  LINK_LIBS
38    liblldb
39    ${host_lib}
40    ${extra_libs}
41
42  LINK_COMPONENTS
43    Option
44    Support
45  )
46
47if(LLDB_BUILD_FRAMEWORK)
48  # In the build-tree, we know the exact path to the framework directory.
49  # The installed framework can be in different locations.
50  lldb_setup_rpaths(lldb-vscode
51    BUILD_RPATH
52      "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}"
53    INSTALL_RPATH
54      "@loader_path/../../../SharedFrameworks"
55      "@loader_path/../../System/Library/PrivateFrameworks"
56      "@loader_path/../../Library/PrivateFrameworks"
57  )
58endif()
59