File: 04_fix_soname.patch

package info (click to toggle)
luabind 0.9.1%2Bgit20150823%2Bdfsg-3.2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 1,708 kB
  • sloc: cpp: 14,884; makefile: 204; sh: 41; python: 38; ansic: 11
file content (69 lines) | stat: -rw-r--r-- 2,611 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Author: Roberto C. Sanchez <roberto@connexer.com>
Description: Allow better control over SONAME and specifying version on the command-line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6810c19..bb309d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,11 +10,22 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 include(CheckCXXCompilerFlag)
 
-set(CPACK_PACKAGE_VERSION_MAJOR "0")
-set(CPACK_PACKAGE_VERSION_MINOR "9")
-set(CPACK_PACKAGE_VERSION_PATCH "1")
-set(CPACK_PACKAGE_VERSION
-    "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+if(NOT LUABIND_LIBRARY_VERSION)
+    set(LUABIND_LIBRARY_VERSION_MAJOR "0")
+    set(LUABIND_LIBRARY_VERSION_MINOR "9")
+    set(LUABIND_LIBRARY_VERSION_PATCH "1")
+    set(LUABIND_LIBRARY_VERSION
+        "${LUABIND_LIBRARY_VERSION_MAJOR}.${LUABIND_LIBRARY_VERSION_MINOR}.${LUABIND_LIBRARY_VERSION_PATCH}")
+else()
+    string(REGEX MATCHALL "[^.]+" VERSION ${LUABIND_LIBRARY_VERSION})
+    list (GET VERSION 0 LUABIND_LIBRARY_VERSION_MAJOR)
+    list (GET VERSION 1 LUABIND_LIBRARY_VERSION_MINOR)
+    list (GET VERSION 2 LUABIND_LIBRARY_VERSION_PATCH)
+endif()
+set(CPACK_PACKAGE_VERSION_MAJOR "${LUABIND_LIBRARY_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${LUABIND_LIBRARY_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${LUABIND_LIBRARY_VERSION_PATCH}")
+set(CPACK_PACKAGE_VERSION "${LUABIND_LIBRARY_VERSION}")
 
 list(APPEND CMAKE_MODULE_PATH
     "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
diff --git a/doc/build-options.rst b/doc/build-options.rst
index edee8e2..48b1e59 100644
--- a/doc/build-options.rst
+++ b/doc/build-options.rst
@@ -84,6 +84,9 @@ use the CMake equivalent of these options. Then, when building with CMake the
    throws (e.g. the destructor of the proxy returned by ``call_function`` or
    ``object::operator()``).
 
+``LUABIND_LIBRARY_VERSION``
+   Specify the version of luabind being built, in x.y.z form.
+
 CMake options
 ~~~~~~~~~~~~~
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 77c22b3..3bdff05 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -141,11 +141,12 @@ set_property(TARGET
     "LuaBind Library")
 
 if (LUABIND_APPEND_VERSION_SUFFIX)
-    set_property(TARGET
+    set_target_properties(
         luabind
-        PROPERTY
-        OUTPUT_NAME
-        "luabind09")
+        PROPERTIES
+        SOVERSION ${LUABIND_LIBRARY_VERSION}
+        VERSION ${LUABIND_LIBRARY_VERSION}
+        OUTPUT_NAME "luabind")
 else()
     # This is neccesary when the LUABIND_APPEND_VERSION_SUFFIX variable is
     # changed from ON to OFF.