diff --git a/CMakeLists.txt b/CMakeLists.txt
index 18190f647..f4b1b359d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,9 @@ endif()
 
 project(AOM C CXX)
 
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
 # GENERATED source property global visibility.
 if(POLICY CMP0118)
   cmake_policy(SET CMP0118 NEW)
@@ -302,6 +305,52 @@ if(BUILD_SHARED_LIBS)
   set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_static)
 endif()
 
+set(PUBLIC_HEADERS
+    aom/aom.h
+    aom/aom_codec.h
+    aom/aom_decoder.h
+    aom/aom_encoder.h
+    aom/aom_frame_buffer.h
+    aom/aom_image.h
+    aom/aom_integer.h
+    aom/aomcx.h
+    aom/aomdx.h
+)
+
+set_target_properties(aom PROPERTIES
+                          PUBLIC_HEADER "${PUBLIC_HEADERS}")
+
+
+target_include_directories(aom
+                            PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+                                   $<INSTALL_INTERFACE:include>)
+
+install(TARGETS aom
+        EXPORT unofficial-aom-targets
+        ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+        LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+        RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+        PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aom")
+
+install(EXPORT unofficial-aom-targets
+        FILE unofficial-aom-targets.cmake
+        NAMESPACE unofficial::
+        DESTINATION lib/cmake/aom)
+
+configure_package_config_file(cmake/aom-config.cmake.in
+                              ${CMAKE_CURRENT_BINARY_DIR}/aom-config.cmake
+                              INSTALL_DESTINATION lib/cmake/aom
+                              NO_SET_AND_CHECK_MACRO
+                              NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/aom-config-version.cmake
+                                 VERSION ${SO_FILE_VERSION}
+                                 COMPATIBILITY SameMajorVersion)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/aom-config.cmake
+              ${CMAKE_CURRENT_BINARY_DIR}/aom-config-version.cmake
+        DESTINATION lib/cmake/aom)
+
 # Setup dependencies.
 if(CONFIG_THREE_PASS)
   setup_ivf_dec_targets()
diff --git a/cmake/aom-config.cmake.in b/cmake/aom-config.cmake.in
new file mode 100644
index 000000000..91cac3b5b
--- /dev/null
+++ b/cmake/aom-config.cmake.in
@@ -0,0 +1,2 @@
+@PACKAGE_INIT@
+include(${CMAKE_CURRENT_LIST_DIR}/unofficial-aom-targets.cmake)
