diff --git a/CMakeLists.txt b/CMakeLists.txt
index 89c6703..ab8e553 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,9 @@
 cmake_minimum_required(VERSION 3.1)
 project(EABase CXX)
 
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
 #-------------------------------------------------------------------------------------------
 # Options
 #-------------------------------------------------------------------------------------------
@@ -22,13 +25,51 @@ endif()
 add_definitions(-D_CHAR16T)
 
 if (NOT EABASE_BUILD_TESTS)
-	#-------------------------------------------------------------------------------------------
-	# Header only library 
-	#-------------------------------------------------------------------------------------------
-	add_library(EABase INTERFACE) 
-
-	#-------------------------------------------------------------------------------------------
-	# Include dirs
-	#-------------------------------------------------------------------------------------------
-	target_include_directories(EABase INTERFACE include/Common)
+    #-------------------------------------------------------------------------------------------
+    # Header only library 
+    #-------------------------------------------------------------------------------------------
+    add_library(EABase INTERFACE)
+    add_library(EABase::EABase ALIAS EABase)
+
+    #-------------------------------------------------------------------------------------------
+    # Include dirs
+    #-------------------------------------------------------------------------------------------
+    target_include_directories(EABase INTERFACE
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include/Common>
+        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+    )
+
+    # create and install an export set for eabase target as EABase::EABase
+    set(EABase_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EABase")
+
+    configure_package_config_file(
+        EABaseConfig.cmake.in
+        ${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake
+        INSTALL_DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION}
+    )
+
+    # create and install an export set for Terra target as Terra
+    install(
+        TARGETS EABase EXPORT EABaseTargets
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    )
+
+
+    install(EXPORT EABaseTargets DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION})
+
+    write_basic_package_version_file(
+      "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake"
+      VERSION 2.09.12
+      COMPATIBILITY SameMajorVersion
+    )
+
+    install(TARGETS EABase LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+    install(DIRECTORY "include/Common/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+
+    install(
+        FILES
+            "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake"
+            "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake"
+        DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION}
+    )
 endif()