diff --git a/CMakeLists.txt b/CMakeLists.txt
index 893a4d8..ab94312 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,7 +19,7 @@ endif()
 
 add_library(tree-sitter ${TS_SOURCE_FILES})
 
-target_include_directories(tree-sitter PRIVATE lib/src lib/src/wasm PUBLIC lib/include)
+target_include_directories(tree-sitter PRIVATE lib/src lib/src/wasm PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib/include>)
 
 if(MSVC)
   target_compile_options(tree-sitter PRIVATE
@@ -92,4 +92,12 @@ install(FILES lib/include/tree_sitter/api.h
 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter.pc"
         DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 install(TARGETS tree-sitter
+        EXPORT unofficial-tree-sitter-config
         LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+
+target_include_directories(tree-sitter PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
+install(
+    EXPORT unofficial-tree-sitter-config
+    NAMESPACE unofficial::tree-sitter::
+    DESTINATION share/unofficial-tree-sitter
+)
