Build with cmake
Add patch to use install paths in installed cmake files
This commit is contained in:
parent
15953bcc22
commit
db75149c65
17
double-conversion-cmake.patch
Normal file
17
double-conversion-cmake.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff --git a/double-conversionConfig.cmake.in b/double-conversionConfig.cmake.in
|
||||
index bbe784b..6c967f4 100644
|
||||
--- a/double-conversionConfig.cmake.in
|
||||
+++ b/double-conversionConfig.cmake.in
|
||||
@@ -8,10 +8,9 @@ get_filename_component(double-conversion_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}"
|
||||
if(EXISTS "${double-conversion_CMAKE_DIR}/CMakeCache.txt")
|
||||
include("${double-conversion_CMAKE_DIR}/double-conversionBuildTreeSettings.cmake")
|
||||
else()
|
||||
- set(double-conversion_INCLUDE_DIRS
|
||||
- "${double-conversion_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/include/double-conversion")
|
||||
+ set(double-conversion_INCLUDE_DIRS "@INCLUDE_INSTALL_DIR@/double-conversion")
|
||||
endif()
|
||||
|
||||
-include("${double-conversion_CMAKE_DIR}/double-conversionLibraryDepends.cmake")
|
||||
+include("@LIB_INSTALL_DIR@/cmake/double-conversion/double-conversionLibraryDepends.cmake")
|
||||
|
||||
set(double-conversion_LIBRARIES double-conversion)
|
||||
106
double-conversion-soversion.patch
Normal file
106
double-conversion-soversion.patch
Normal file
@ -0,0 +1,106 @@
|
||||
commit c7734598e2ee084c17e1b8a41daa569fb021d593
|
||||
Author: Florian Loitsch <florian@loitsch.com>
|
||||
Date: Sat Mar 8 15:02:13 2014 +0100
|
||||
|
||||
Support shared libraries with Cmake. Improve README.
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 5bf382e..7b09be0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -2,8 +2,12 @@ cmake_minimum_required(VERSION 2.8)
|
||||
project(double-conversion)
|
||||
|
||||
# pick a version #
|
||||
-set(double-conversion_VERSION
|
||||
- 1.1.1)
|
||||
+set(double-conversion_VERSION 2.0.1)
|
||||
+set(double-conversion_SOVERSION_MAJOR 1)
|
||||
+set(double-conversion_SOVERSION_MINOR 0)
|
||||
+set(double-conversion_SOVERSION_PATCH 0)
|
||||
+set(double-conversion_SOVERSION
|
||||
+ ${double-conversion_SOVERSION_MAJOR}.${double-conversion_SOVERSION_MINOR}.${double-conversion_SOVERSION_PATCH})
|
||||
|
||||
# set paths for install -- empty initially
|
||||
# Offer the user the choice of overriding the installation directories
|
||||
diff --git a/Changelog b/Changelog
|
||||
index 516f6d2..526756b 100644
|
||||
--- a/Changelog
|
||||
+++ b/Changelog
|
||||
@@ -1,3 +1,8 @@
|
||||
+2014-03-08:
|
||||
+ Update version number for cmake.
|
||||
+ Support shared libraries with cmake.
|
||||
+ Add build instructions to the README.
|
||||
+
|
||||
2014-01-12:
|
||||
Tagged v2.0.1.
|
||||
Fix compilation for ARMv8 64bit (used wrong define).
|
||||
diff --git a/README b/README
|
||||
index f186b42..167f9c5 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -9,3 +9,46 @@ it can be used more easily in other projects.
|
||||
|
||||
There is extensive documentation in src/double-conversion.h. Other examples can
|
||||
be found in test/cctest/test-conversions.cc.
|
||||
+
|
||||
+
|
||||
+Building
|
||||
+========
|
||||
+
|
||||
+This library can be built with scons [0] or cmake [1].
|
||||
+The checked-in Makefile simply forwards to scons, and provides a
|
||||
+shortcut to run all tests:
|
||||
+
|
||||
+ make
|
||||
+ make test
|
||||
+
|
||||
+Scons
|
||||
+-----
|
||||
+
|
||||
+The easiest way to install this library is to use `scons`. It builds
|
||||
+the static and shared library, and is set up to install those at the
|
||||
+correct locations:
|
||||
+
|
||||
+ scons install
|
||||
+
|
||||
+Use the `DESTDIR` option to change the target directory:
|
||||
+
|
||||
+ scons DESTDIR=alternative_directory install
|
||||
+
|
||||
+Cmake
|
||||
+-----
|
||||
+
|
||||
+To use cmake run `cmake .` in the root directory. This overwrites the
|
||||
+existing Makefile.
|
||||
+
|
||||
+Use `-DBUILD_SHARED_LIBS=ON` to enable the compilation of shared libraries.
|
||||
+Note that this disables static libraries. There is currently no way to
|
||||
+build both libraries at the same time with cmake.
|
||||
+
|
||||
+Use `-DBUILD_TESTING=ON` to build the test executable.
|
||||
+
|
||||
+ cmake . -DBUILD_TESTING=ON
|
||||
+ make
|
||||
+ test/cctest/cctest --list | tr -d '<' | xargs test/cctest/cctest
|
||||
+
|
||||
+[0]: http://www.scons.org
|
||||
+[1]: http://www.cmake.org
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 7f5c985..0da50b1 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -29,6 +29,12 @@ ${headers}
|
||||
set_target_properties(double-conversion
|
||||
PROPERTIES PUBLIC_HEADER "${headers}")
|
||||
|
||||
+if (BUILD_SHARED_LIBS)
|
||||
+ set_target_properties(double-conversion
|
||||
+ PROPERTIES VERSION ${double-conversion_SOVERSION}
|
||||
+ SOVERSION ${double-conversion_SOVERSION_MAJOR})
|
||||
+endif()
|
||||
+
|
||||
#
|
||||
# install command to set up library install
|
||||
# given the above PUBLIC_HEADER property set, this
|
||||
@ -3,12 +3,17 @@
|
||||
Summary: Library providing binary-decimal and decimal-binary routines for IEEE doubles
|
||||
Name: double-conversion
|
||||
Version: 2.0.1
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: BSD
|
||||
Group: Development/Libraries
|
||||
Source0: http://double-conversion.googlecode.com/files/%{name}-%{version}.tar.gz
|
||||
URL: http://code.google.com/p/double-conversion
|
||||
BuildRequires: scons >= 2.3.0
|
||||
# Upstream patch to support SOVERSION
|
||||
Patch0: double-conversion-soversion.patch
|
||||
# Use install paths in installed cmake files
|
||||
# https://github.com/floitsch/double-conversion/pull/9
|
||||
Patch1: double-conversion-cmake.patch
|
||||
URL: https://github.com/floitsch/double-conversion
|
||||
BuildRequires: cmake
|
||||
|
||||
%description
|
||||
Provides binary-decimal and decimal-binary routines for IEEE doubles.
|
||||
@ -38,36 +43,43 @@ Static %{name} library.
|
||||
|
||||
%prep
|
||||
%setup -q -c %{name}-%{version}
|
||||
%patch0 -p1 -b .soversion
|
||||
%patch1 -p1 -b .cmake
|
||||
# Fix up install locations
|
||||
# https://github.com/floitsch/double-conversion/issues/8
|
||||
sed -i -e s,lib/CMake,%{_lib}/cmake, CMakeLists.txt
|
||||
sed -i -e s,/lib,/%{_lib}, src/CMakeLists.txt
|
||||
|
||||
%build
|
||||
scons %{?_smp_mflags} \
|
||||
CXXFLAGS="%{optflags}" \
|
||||
VERSION="%{version}"
|
||||
|
||||
# With scons 2.3.0 setting the version fails without this
|
||||
# http://comments.gmane.org/gmane.comp.programming.tools.scons.user/24448
|
||||
rm -f libdouble-conversion.so*
|
||||
|
||||
%install
|
||||
install -d %{buildroot}{%{_libdir},%{_includedir}/%{name}}
|
||||
mkdir -p build-shared
|
||||
pushd build-shared
|
||||
%cmake -DBUILD_TESTING=ON ..
|
||||
make %{_smp_mflags}
|
||||
popd
|
||||
|
||||
%if %{with static_libs}
|
||||
%global target install
|
||||
%else
|
||||
%global target install-shared
|
||||
mkdir -p build-static
|
||||
pushd build-static
|
||||
CXXFLAGS="%{optflags} -fPIC" %cmake -DBUILD_SHARED_LIBS=NO ..
|
||||
make %{_smp_mflags}
|
||||
popd
|
||||
%endif
|
||||
|
||||
scons %{target} \
|
||||
CXXFLAGS="%{optflags}" \
|
||||
libsuffix=%{_lib} \
|
||||
prefix=%{_prefix} \
|
||||
DESTDIR=%{buildroot}
|
||||
%install
|
||||
%if %{with static_libs}
|
||||
pushd build-static
|
||||
make install DESTDIR=%{buildroot}
|
||||
popd
|
||||
%endif
|
||||
|
||||
cp -p src/*.h %{buildroot}%{_includedir}/%{name}
|
||||
pushd build-shared
|
||||
make install DESTDIR=%{buildroot}
|
||||
popd
|
||||
|
||||
%check
|
||||
scons CXXFLAGS="%{optflags}" run_tests
|
||||
./run_tests --list | tr -d '<' | xargs ./run_tests
|
||||
pushd build-shared
|
||||
ctest -V
|
||||
popd
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
@ -78,15 +90,18 @@ scons CXXFLAGS="%{optflags}" run_tests
|
||||
|
||||
%files devel
|
||||
%{_libdir}/libdouble-conversion.so
|
||||
%{_libdir}/cmake/%{name}
|
||||
%{_includedir}/%{name}
|
||||
|
||||
%if %{with static_libs}
|
||||
%files static
|
||||
%{_libdir}/libdouble-conversion.a
|
||||
%{_libdir}/libdouble-conversion_pic.a
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Mar 11 2015 Orion Poplawski <orion@cora.nwra.com> - 2.0.1-4
|
||||
- Build with cmake
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user