Build with cmake

Add patch to use install paths in installed cmake files
epel8
Orion Poplawski 10 years ago
parent 15953bcc22
commit db75149c65

@ -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)

@ -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…
Cancel
Save