From bdaf1db7044ce944203776975a6ad3fdd033f07a Mon Sep 17 00:00:00 2001
From: Tomas Pecka <peckato1@fit.cvut.cz>
Date: Tue, 12 Mar 2019 15:35:22 +0100
Subject: [PATCH] CMake: Fix lib versioning

---
 CMake/generate.py                    | 9 +++++++++
 CMake/templates/CMakeLists_bin.txt   | 4 +++-
 CMake/templates/CMakeLists_itest.txt | 4 +++-
 CMake/templates/CMakeLists_lib.txt   | 8 +++++---
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/CMake/generate.py b/CMake/generate.py
index 91f9fc50b1..ae3d302f62 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 020aa0e28e..ad53264206 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 fa4110869d..267024a678 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 82c420b0dd..8ae2a618bd 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")
-- 
GitLab