Adding CMake install. Fixes #18
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5ad7f9b..9482fe4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.0)
 
-project(CpuFeatures)
+project(CpuFeatures VERSION 0.1.0)
 
 # Default Build Type to be Release
 if(NOT CMAKE_BUILD_TYPE)
@@ -12,16 +12,23 @@
 # BUILD_TESTING is a standard CMake variable, but we declare it here to make it
 # prominent in the GUI.
 option(BUILD_TESTING "Enable test (depends on googletest)." OFF)
+# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make
+# it prominent in the GUI.
+option(BUILD_SHARED_LIBS "Build library as shared." OFF)
 
 #
 # library : cpu_features
 #
 
-add_library(cpu_features
+set(_HDRS
   include/cpuinfo_aarch64.h
   include/cpuinfo_arm.h
   include/cpuinfo_mips.h
   include/cpuinfo_x86.h
+)
+
+add_library(cpu_features
+  ${_HDRS}
   include/internal/bit_utils.h
   include/internal/linux_features_aggregator.h
   include/internal/cpuid_x86.h
@@ -44,8 +51,14 @@
   src/string_view.c
 )
 
-target_include_directories(cpu_features PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
-target_include_directories(cpu_features PRIVATE include/internal)
+target_include_directories(cpu_features
+  PUBLIC
+  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+  $<INSTALL_INTERFACE:include/cpu_features>
+  PRIVATE
+  include/internal
+)
+set_target_properties(cpu_features PROPERTIES PUBLIC_HEADER "${_HDRS}")
 target_compile_definitions(cpu_features PUBLIC STACK_LINE_READER_BUFFER_SIZE=1024)
 target_link_libraries(cpu_features PUBLIC ${CMAKE_DL_LIBS})
 
@@ -55,6 +68,7 @@
 if(BUILD_SHARED_LIBS)
   set_property(TARGET cpu_features PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
+add_library(CpuFeature::cpu_features ALIAS cpu_features)
 
 #
 # program : list_cpu_features
@@ -62,6 +76,7 @@
 
 add_executable(list_cpu_features src/list_cpu_features.c)
 target_link_libraries(list_cpu_features PRIVATE cpu_features)
+add_executable(CpuFeature::list_cpu_features ALIAS list_cpu_features)
 
 #
 # tests
@@ -108,3 +123,39 @@
 
   add_subdirectory(test)
 endif()
+
+#
+# Install
+#
+
+include(GNUInstallDirs)
+install(TARGETS cpu_features list_cpu_features
+  EXPORT CpuFeaturesTargets
+  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cpu_features
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+)
+install(EXPORT CpuFeaturesTargets
+  NAMESPACE CpuFeatures::
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures
+  COMPONENT Devel
+)
+include(CMakePackageConfigHelpers)
+configure_package_config_file(cmake/CpuFeaturesConfig.cmake.in
+  ${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake"
+  INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures"
+  NO_SET_AND_CHECK_MACRO
+  NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+write_basic_package_version_file(
+  "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake"
+  COMPATIBILITY SameMajorVersion
+)
+install(
+  FILES
+  "${PROJECT_BINARY_DIR}/CpuFeaturesConfig.cmake"
+  "${PROJECT_BINARY_DIR}/CpuFeaturesConfigVersion.cmake"
+  DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/CpuFeatures"
+  COMPONENT Devel
+)