Skip to content

Commit 502d608

Browse files
committed
[Clang] [Docs] Add some CMake example code for linking against libclang
1 parent 5378584 commit 502d608

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

clang/docs/LibClang.rst

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Code example
3838
3939
.. code-block:: cpp
4040
41+
// main.cpp
4142
#include <clang-c/Index.h>
4243
#include <iostream>
4344
@@ -57,6 +58,18 @@ Code example
5758
CXCursor cursor = clang_getTranslationUnitCursor(unit); //Obtain a cursor at the root of the translation unit
5859
}
5960
61+
.. code-block:: cmake
62+
63+
# CMakeLists.txt
64+
cmake_minimum_required(VERSION 3.30)
65+
project(my_clang_tool VERSION 0.1.0)
66+
67+
find_package(Clang CONFIG REQUIRED)
68+
69+
add_executable(my_clang_tool main.cpp)
70+
target_include_directories(my_clang_tool PRIVATE ${CLANG_INCLUDE_DIRS})
71+
target_link_libraries(my_clang_tool PRIVATE libclang)
72+
6073
Visiting elements of an AST
6174
~~~~~~~~~~~~~~~~~~~~~~~~~~~
6275
The elements of an AST can be recursively visited with pre-order traversal with ``clang_visitChildren``.
@@ -283,6 +296,7 @@ Complete example code
283296

284297
.. code-block:: cpp
285298
299+
// main.cpp
286300
#include <clang-c/Index.h>
287301
#include <iostream>
288302
@@ -356,6 +370,17 @@ Complete example code
356370
);
357371
}
358372
373+
.. code-block:: cmake
374+
375+
# CMakeLists.txt
376+
cmake_minimum_required(VERSION 3.30)
377+
project(my_clang_tool VERSION 0.1.0)
378+
379+
find_package(Clang CONFIG REQUIRED)
380+
381+
add_executable(my_clang_tool main.cpp)
382+
target_include_directories(my_clang_tool PRIVATE ${CLANG_INCLUDE_DIRS})
383+
target_link_libraries(my_clang_tool PRIVATE libclang)
359384
360385
.. _Index.h: https://github.com/llvm/llvm-project/blob/main/clang/include/clang-c/Index.h
361386

0 commit comments

Comments
 (0)