Browse Source

Merge pull request #1195 from ctron/feature/rpm_on_master

Add RPM build for Fedora
Stefan Profanter 7 years ago
parent
commit
c2e52d79e1
4 changed files with 80 additions and 7 deletions
  1. 5 0
      .tito/tito.props
  2. 8 6
      CMakeLists.txt
  3. 2 1
      doc/conf.py
  4. 65 0
      open62541.spec

+ 5 - 0
.tito/tito.props

@@ -0,0 +1,5 @@
+[buildconfig]
+builder = tito.builder.Builder
+tagger = tito.tagger.VersionTagger
+changelog_do_not_remove_cherrypick = 0
+changelog_format = %s (%ae)

+ 8 - 6
CMakeLists.txt

@@ -15,6 +15,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 
+set(LIB_INSTALL_DIR /usr/lib CACHE PATH "Installation path of libraries")
+
 ###########
 # Version #
 ###########
@@ -621,7 +623,7 @@ add_dependencies(lint open62541)
 # specify install location with `-DCMAKE_INSTALL_PREFIX=xyz`
 # Enable shared library with `-DBUILD_SHARED_LIBS=ON`
 
-set(cmake_configfile_install lib/cmake)
+set(cmake_configfile_install ${LIB_INSTALL_DIR}/cmake3)
 set(target_install_dest_name "${cmake_configfile_install}/open62541Targets.cmake")
 set(open62541_tools_dir share/open62541/tools)
 set(open62541_deps_dir include/open62541/deps)
@@ -629,10 +631,10 @@ set(open62541_deps_dir include/open62541/deps)
 # export library (either static or shared depending on BUILD_SHARED_LIBS)
 install(TARGETS open62541
         EXPORT open62541Targets
-        LIBRARY DESTINATION lib
-        ARCHIVE DESTINATION lib
-        RUNTIME DESTINATION bin
-        INCLUDES DESTINATION include/open62541 ${open62541_deps_dir})
+        LIBRARY DESTINATION ${LIB_INSTALL_DIR}
+        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+        RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}
+        INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR}/open62541 ${open62541_deps_dir})
 
 include(CMakePackageConfigHelpers)
 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/tools/cmake/open62541-config.cmake.in"
@@ -658,7 +660,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/open62541-config.cmake"
 
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
     install(FILES "${PROJECT_BINARY_DIR}/src_generated/open62541.pc"
-            DESTINATION lib/pkgconfig)
+            DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
 endif()
 # export amalgamated header open62541.h which is generated due to build of open62541-object
 if(UA_ENABLE_AMALGAMATION)

+ 2 - 1
doc/conf.py

@@ -19,6 +19,7 @@
 import sys
 import os
 import shlex
+import sphinx_rtd_theme
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -123,7 +124,7 @@ html_theme = 'sphinx_rtd_theme'
 #html_theme_options = {}
 
 # Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
 
 # The name for this set of Sphinx documents.  If None, it defaults to
 # "<project> v<release> documentation".

+ 65 - 0
open62541.spec

@@ -0,0 +1,65 @@
+Name:     open62541
+Version:  0.3
+Release:  1%{?dist}
+Summary:  OPC UA implementation
+License:  MPLv2.0
+URL:      http://open62541.org
+Source0:  https://github.com/open62541/open62541/archive/%{name}-%{version}.tar.gz
+
+BuildRequires: cmake3, python
+
+%description
+open62541 is a C-based library (linking with C++ projects is possible)
+with all necessary tools to implement dedicated OPC UA clients and servers,
+or to integrate OPC UA-based communication into existing applications.
+
+%package  devel
+Summary:  Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+%prep
+%setup -q -n %{name}-%{name}-%{version} # double-name prefix by GitHub
+
+%build
+%cmake3 -DUA_ENABLE_AMALGAMATION=ON .
+make
+
+%install
+%make_install
+
+# Remove this from the examples installation
+rm examples/CMakeLists.txt
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%license LICENSE
+%doc AUTHORS CHANGELOG README.md
+%{_libdir}/libopen62541.so.*
+
+%files devel
+%license LICENSE LICENSE-CC0
+%{_libdir}/libopen62541.so
+%{_libdir}/pkgconfig/open62541.pc
+%dir %{_includedir}/open62541
+%{_includedir}/open62541/*
+%{_libdir}/cmake3/open62541*
+%dir %{_exec_prefix}/share/open62541
+%{_exec_prefix}/share/open62541/*
+
+%doc FEATURES.md
+%doc examples/
+
+%changelog
+* Tue Sep 05 2017 Jens Reimann <jreimann@redhat.com> - 0.3-1
+- New version of open62541
+- Adapt for cmake3
+* Thu Aug 31 2017 Jens Reimann <jreimann@redhat.com> - 0.2-1
+- Initial version of the package
+