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