--- a/host/libraries/libbladeRF/CMakeLists.txt
+++ b/host/libraries/libbladeRF/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.5)
+cmake_minimum_required(VERSION 2.8.12)
 project(libbladeRF C)
 
 
@@ -511,13 +511,30 @@
 ################################################################################
 # Library installation information
 ################################################################################
+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/BladeRFConfigVersion.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/BladeRFConfigVersion.cmake
+    @ONLY
+)
 
 install(TARGETS libbladerf_shared
+    EXPORT BLADERF-export
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .a/.lib
     RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} # .dll
 )
 
+install(EXPORT BLADERF-export
+  FILE BladeRFTargets.cmake
+  NAMESPACE BladeRF::
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/BladeRF/
+  )
+
+install( FILES
+  ${CMAKE_CURRENT_SOURCE_DIR}/cmake/BladeRFConfig.cmake
+  ${CMAKE_CURRENT_BINARY_DIR}/BladeRFConfigVersion.cmake
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/BladeRF/
+)
 
 ################################################################################
 # Informational output
--- a/host/libraries/CMakeLists.txt
+++ b/host/libraries/CMakeLists.txt
@@ -1,3 +1,3 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.12)
 add_subdirectory(libbladeRF)
 add_subdirectory(libbladeRF_test)
--- a/host/libraries/libbladeRF_test/CMakeLists.txt
+++ b/host/libraries/libbladeRF_test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.12)
 
 add_subdirectory(test_async)
 add_subdirectory(test_bootloader_recovery)
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.4)
+cmake_minimum_required(VERSION 2.8.12)
 project(bladeRF C)
 
 ################################################################################
--- /dev/null
+++ b/host/libraries/libbladeRF/cmake/BladeRFConfig.cmake
@@ -0,0 +1,5 @@
+get_filename_component(BLADERF_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+if(NOT TARGET BladeRF::bladerf)
+  include("${BLADERF_CMAKE_DIR}/VolkTargets.cmake")
+endif()
--- /dev/null
+++ b/host/libraries/libbladeRF/cmake/BladeRFConfigVersion.cmake.in
@@ -0,0 +1,15 @@
+set(MAJOR_VERSION @VERSION_INFO_MAJOR@)
+set(MINOR_VERSION @VERSION_INFO_MINOR@)
+set(MAINT_VERSION @VERSION_INFO_PATCH@)
+
+set(PACKAGE_VERSION
+  ${MAJOR_VERSION}.${MINOR_VERSION}.${MAINT_VERSION})
+
+if(${PACKAGE_FIND_VERSION_MAJOR} EQUAL ${MAJOR_VERSION})
+  if(${PACKAGE_FIND_VERSION_MINOR} EQUAL ${MINOR_VERSION})
+    if(NOT ${PACKAGE_FIND_VERSION_PATCH} GREATER ${MAINT_VERSION})
+      set(PACKAGE_VERSION_EXACT 1)    # exact match for API version
+      set(PACKAGE_VERSION_COMPATIBLE 1)  # compat for minor/patch version
+    endif(NOT ${PACKAGE_FIND_VERSION_PATCH} GREATER ${MINOR_VERSION})
+  endif(${PACKAGE_FIND_VERSION_MINOR} EQUAL ${MINOR_VERSION})
+endif(${PACKAGE_FIND_VERSION_MAJOR} EQUAL ${MAJOR_VERSION})
