Browse Source

Add rpm package distribution

- Add RPM generation using CPack
- Update README

Fixes: #47
Alexey Edelev 4 years ago
parent
commit
c369f825d0
3 changed files with 31 additions and 4 deletions
  1. 3 3
      CMakeLists.txt
  2. 12 0
      README.md
  3. 16 1
      cmake/rpm.cmake

+ 3 - 3
CMakeLists.txt

@@ -13,11 +13,11 @@ set(QT_PROTOBUF_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
 set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
 
 find_package(Qt5 COMPONENTS Core Network Qml REQUIRED)
-if(Qt5Core_VERSION VERSION_LESS "5.12.3")
-    # grpc target requires QT version not less than 5.12.3
+if(Qt5Core_VERSION VERSION_LESS "5.12.4")
+    # grpc target requires QT version not less than 5.12.4
     # earlier versions Http2DirectAttribute is broken: https://doc.qt.io/qt-5/whatsnew511.html
     #                                                  https://bugreports.qt.io/browse/QTBUG-74765
-    message(FATAL_ERROR "Required Qt version is 5.12.3+")
+    message(FATAL_ERROR "Required Qt version is 5.12.4+")
 endif()
 
 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/grpc/CMakeLists.txt")

+ 12 - 0
README.md

@@ -90,6 +90,18 @@ cpack -G DEB ..
 
 >**Note:** Only tested on Ubuntu 19.10
 
+### .rpm
+You can create .rpm package for rpm-based operating systems, using commands below:
+
+```bash
+mkdir build
+cd build
+cmake .. -DQT_PROTOBUF_MAKE_TESTS=FALSE -DQT_PROTOBUF_MAKE_EXAMPLES=FALSE
+cpack -G RPM ..
+```
+
+>**Note:** Only tested on OpenSUSE 15.2
+
 # Windows Build
 ## Prerequesties
 Download and install:

+ 16 - 1
cmake/rpm.cmake

@@ -1 +1,16 @@
-#TODO: implement rpm packaging
+set(CPACK_RPM_COMPONENT_INSTALL ON)
+
+set(CPACK_RPM_LIB_PACKAGE_NAME "libQtProtobuf")
+set(CPACK_RPM_DEV_PACKAGE_NAME "libQtProtobuf-devel")
+set(CPACK_RPM_PACKAGE_SUMMARY "Protobuf generator and bindings for Qt framework")
+set(CPACK_RPM_LIB_FILE_NAME "lib${CPACK_PACKAGE_NAME}-${QT_PROTOBUF_VERSION}.rpm")
+set(CPACK_RPM_DEV_FILE_NAME "lib${CPACK_PACKAGE_NAME}-${QT_PROTOBUF_VERSION}-devel.rpm")
+set(CPACK_RPM_PACKAGE_RELEASE 0)
+set(CPACK_RPM_PACKAGE_LICENSE "MIT")
+set(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
+set(CPACK_RPM_PACKAGE_VENDOR "Alexey Edelev <semlanik@gmail.com>")
+set(CPACK_RPM_PACKAGE_URL "https://semlanik.github.io/qtprotobuf/")
+set(CPACK_RPM_PACKAGE_DESCRIPTION "gRPC and Protobuf generator and bindings for Qt framework")
+set(CPACK_RPM_COMPRESSION_TYPE "gzip")
+set(CPACK_RPM_PACKAGE_REQUIRES_PRE "libQt5Core5 >= 5.12.4, libQt5Network5 >= 5.12.4, libQtQuick5 >= 5.12.4, go >= 1.10.8, libprotoc22 >= 3.6.0")
+set(CPACK_RPM_DEV_PACKAGE_REQUIRES_PRE "${CPACK_RPM_LIB_PACKAGE_NAME} == ${QT_PROTOBUF_VERSION}, libqt5-qttools >= 5.12.4, libqt5-qtbase-devel >= 5.12.4, libqt5-qtdeclarative-devel >= 5.12.4, go >= 1.10.8, protobuf-devel >= 3.6.0, grpc-devel >= 1.25.0")