winft / disman

Qt/C++ display management library
GNU Lesser General Public License v2.1
2 stars 1 forks source link

libDismanWayland.so has no version #8

Closed romangg closed 7 months ago

romangg commented 4 years ago

In GitLab by @zawertun on May 25, 2020, 19:20

Hello!

Just tried to package Disman.

After make install I've got just libDismanWayland.so. without version appended:

/usr/lib64/libDisman.so
/usr/lib64/libDisman.so.0
/usr/lib64/libDisman.so.0.518.90
/usr/lib64/libDismanWayland.so
/usr/lib64/libDismanWayland.so.
romangg commented 4 years ago

Thank you Yaroslav. I watched approximately half a day of presentations about modern CMake in the last few weeks and still got it wrong in one of the libraries.

Can you check if the following patch makes it work for you:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2b106ff..e1b67c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.0)

 project(Disman)
 set(PROJECT_VERSION "0.518.90")
+set(PROJECT_VERSION_MAJOR "0")

 set(QT_MIN_VERSION "5.14.0")
 set(KF5_MIN_VERSION "5.66.0")
@@ -46,7 +47,7 @@ add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt
 ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX Disman
                         VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/disman_version.h"
                         PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DismanConfigVersion.cmake"
-                        SOVERSION 0
+                        SOVERSION ${PROJECT_VERSION_MAJOR}
 )

 check_cxx_compiler_flag(-fvisibility=hidden _HAVE_VISIBILITY)
diff --git a/backends/kwayland/CMakeLists.txt b/backends/kwayland/CMakeLists.txt
index 46762f6..36aec06 100644
--- a/backends/kwayland/CMakeLists.txt
+++ b/backends/kwayland/CMakeLists.txt
@@ -40,8 +40,8 @@ target_include_directories(DismanWayland PUBLIC
 target_link_libraries(DismanWayland PUBLIC ${wayland_LIBS})

 set_target_properties(DismanWayland PROPERTIES
-    VERSION "${DISMAN_VERSION_STRING}"
-    SOVERSION "${DISMAN_SOVERSION}"
+    VERSION "${PROJECT_VERSION}"
+    SOVERSION "${PROJECT_VERSION_MAJOR}"
     EXPORT_NAME DismanWayland
 )

On the other side that's a good example for modern CMake being better (that tries to minimize the usage of variables that were accidentally not set here).

romangg commented 4 years ago

In GitLab by @zawertun on May 26, 2020, 09:08

Looks good:

-- Installing: /builddir/build/BUILDROOT/disman-0.519.0~beta.0-1.fc32.x86_64/usr/lib64/libDismanWayland.so.0.518.90
-- Installing: /builddir/build/BUILDROOT/disman-0.519.0~beta.0-1.fc32.x86_64/usr/lib64/libDismanWayland.so.0
romangg commented 4 years ago

In GitLab by @frmonteiro on May 26, 2020, 13:07

Closed by !3

romangg commented 4 years ago

In GitLab by @frmonteiro on May 26, 2020, 13:07

closed

romangg commented 4 years ago

@zawertun I have just created a new beta release 0.519.0-beta.1 that includes above patch. If there are still issues with the package we can reopen this issue. Thank you Yaroslav for packaging KWinFT.

romangg commented 4 years ago

In GitLab by @zawertun on May 26, 2020, 14:17

Thanks!

I'll try to package Disman & KDisplay another time after Fedora 32 got update Qt to version 5.14.

There was some issues building Qt-5.14 with GCC-10.