diff --git a/CMake/generate.py b/CMake/generate.py
index 91f9fc50b18fda4e8d19c4a334bfec8c3e2fdf9c..ae3d302f62e4651595e07fc5b0af74de5268ec20 100755
--- a/CMake/generate.py
+++ b/CMake/generate.py
@@ -229,6 +229,9 @@ class Generator:
                 include_files=Helpers.join(project.find_install_sources()),
                 find_packages=Helpers.join(map(lambda p: "find_package({})".format(p), finds), "\n"),
                 find_packages_tests=Helpers.join(map(lambda p: "find_package({})".format(p), test_finds), "\n"),
+                alib_versioning_major=Config.get(CONFIG, 'Versioning', 'major'),
+                alib_versioning_minor=Config.get(CONFIG, 'Versioning', 'minor'),
+                alib_versioning_patch=Config.get(CONFIG, 'Versioning', 'patch'),
             ))
 
     @classmethod
@@ -243,6 +246,9 @@ class Generator:
                 cmake_options=Helpers.join(["set({} {})".format(k.upper(), v) for k, v in project.cmake_additional_set], sep='\n'),
                 source_files_test=Helpers.join(project.find_sources_test()),
                 find_packages_tests=Helpers.join(map(lambda p: "find_package({})".format(p), test_finds), "\n"),
+                alib_versioning_major=Config.get(CONFIG, 'Versioning', 'major'),
+                alib_versioning_minor=Config.get(CONFIG, 'Versioning', 'minor'),
+                alib_versioning_patch=Config.get(CONFIG, 'Versioning', 'patch'),
             ))
 
     @classmethod
@@ -257,6 +263,9 @@ class Generator:
                 cmake_options=Helpers.join(["set({} {})".format(k.upper(), v) for k, v in project.cmake_additional_set], sep='\n'),
                 source_files=Helpers.join(project.find_sources()),
                 find_packages=Helpers.join(map(lambda p: "find_package({})".format(p), finds), "\n"),
+                alib_versioning_major=Config.get(CONFIG, 'Versioning', 'major'),
+                alib_versioning_minor=Config.get(CONFIG, 'Versioning', 'minor'),
+                alib_versioning_patch=Config.get(CONFIG, 'Versioning', 'patch'),
             ))
 
     @staticmethod
diff --git a/CMake/templates/CMakeLists_bin.txt b/CMake/templates/CMakeLists_bin.txt
index 020aa0e28eb00c613927a05e3f30d650d5477336..ad53264206d05f7f6dd0ebb271681feb1f34afe4 100644
--- a/CMake/templates/CMakeLists_bin.txt
+++ b/CMake/templates/CMakeLists_bin.txt
@@ -1,4 +1,6 @@
-project({project_name})
+project({project_name}
+	VERSION {alib_versioning_major}.{alib_versioning_minor}.{alib_versioning_patch}
+	LANGUAGES CXX)
 set(PROJECT_NAME {project_name})
 
 find_package(tclap REQUIRED)
diff --git a/CMake/templates/CMakeLists_itest.txt b/CMake/templates/CMakeLists_itest.txt
index fa4110869d777d23d2fd0dc1199920f99f50fc7d..267024a6781286a7cb8b6c9e1db9c428d9b8fbfe 100644
--- a/CMake/templates/CMakeLists_itest.txt
+++ b/CMake/templates/CMakeLists_itest.txt
@@ -1,4 +1,6 @@
-project({project_name})
+project({project_name}
+	VERSION {alib_versioning_major}.{alib_versioning_minor}.{alib_versioning_patch}
+	LANGUAGES CXX)
 set(PROJECT_NAME_TEST test-{project_name})
 
 {cmake_options}
diff --git a/CMake/templates/CMakeLists_lib.txt b/CMake/templates/CMakeLists_lib.txt
index 82c420b0dd5cf454ce7f7cc8e4c26673d57528d1..8ae2a618bda58e86372e02dce83f113b58dddeea 100644
--- a/CMake/templates/CMakeLists_lib.txt
+++ b/CMake/templates/CMakeLists_lib.txt
@@ -1,4 +1,6 @@
-project({project_name})
+project({project_name}
+	VERSION {alib_versioning_major}.{alib_versioning_minor}.{alib_versioning_patch}
+	LANGUAGES CXX)
 set(PROJECT_NAME {project_name})
 
 {cmake_options}
@@ -28,8 +30,8 @@ set_target_properties(${{PROJECT_NAME}} PROPERTIES
 
         INTERFACE_POSITION_INDEPENDENT_CODE ON
 
-        VERSION ${{ALIB_VERSION}}
-        SOVERSION ${{ALIB_VERSION_MAJOR}}
+        VERSION ${{PROJECT_VERSION}}
+        SOVERSION ${{PROJECT_VERSION_MAJOR}}
         )
 
 # if (CMAKE_BUILD_TYPE STREQUAL "Release")