summaryrefslogtreecommitdiff
path: root/packaging/cmake.spec
blob: 504a5e98a4d76446675e6704740c208c58686ae0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Name:           cmake
Version:        2.8.9
Release:        1
License:        BSD
Summary:        Cross-platform make system
Url:            http://www.cmake.org
Group:          Development/Tools
Source0:        http://www.cmake.org/files/v2.8/cmake-%{version}.tar.gz
Source1:        macros.cmake
BuildRequires:  expat-devel
BuildRequires:  pkgconfig(libarchive) >= 2.8.0
BuildRequires:  pkgconfig(libcurl)
BuildRequires:  pkgconfig(zlib)
BuildRequires:  procps
BuildRequires:  pkgconfig(ncurses)
BuildRequires:  gcc-c++

%description
CMake is used to control the software compilation process using simple platform
and compiler independent configuration files. CMake generates native makefiles
and workspaces that can be used in the compiler environment of your choice.
CMake is quite sophisticated: it is possible to support complex environments
requiring system configuration, pre-processor generation, code generation, and
template instantiation.


%prep
%setup -q -n cmake-%{version}

# Fixup permissions
find -name \*.h -o -name \*.cxx -print0 | xargs -0 chmod -x

%build
cat > %{buildroot}build-flags.cmake << EOF
set(CMAKE_SKIP_RPATH YES CACHE BOOL "Skip rpath" FORCE)
set(CMAKE_USE_RELATIVE_PATHS YES CACHE BOOL "Use relative paths" FORCE)
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Verbose build" FORCE)
set(CMAKE_C_FLAGS "%{optflags}" CACHE STRING "C flags" FORCE)
set(CMAKE_CXX_FLAGS "%{optflags}" CACHE STRING "C++ flags" FORCE)
set(CMAKE_SKIP_BOOTSTRAP_TEST ON CACHE BOOL "Skip BootstrapTest" FORCE)
set(BUILD_CursesDialog YES CACHE BOOL "Build curses GUI" FORCE)
set(MINGW_CC_LINUX2WIN_EXECUTABLE "" CACHE FILEPATH "Never detect mingw" FORCE)
set(CMAKE_USE_SYSTEM_LIBARCHIVE YES CACHE BOOL "" FORCE)
EOF
rm -rf %{_target_platform} && mkdir %{_target_platform}
cd %{_target_platform} && ../bootstrap \
                          --prefix=%{_prefix} \
                          --docdir=/share/doc/packages/%{name} \
                          --mandir=/share/man \
                          --datadir=/share/cmake \
                          --%{?with_bootstrap:no-}system-libs \
                          --parallel=`/usr/bin/getconf _NPROCESSORS_ONLN` \
                          --init=%{buildroot}build-flags.cmake \
                          --system-libs

make VERBOSE=1 %{?_smp_mflags}

%install
%makeinstall -C %{_target_platform} DESTDIR=%{buildroot}
find %{buildroot}%{_datadir}/%{name}/Modules -name '*.sh*' -type f | xargs chmod -x
mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp
cp -a Example %{buildroot}%{_datadir}/doc/%{name}-%{version}/
install -m 0644 Docs/cmake-mode.el %{buildroot}%{_datadir}/emacs/site-lisp/
# Install cmake rpm macros
install -D -p -m 0644 %{_sourcedir}/macros.cmake \
  %{buildroot}%{_sysconfdir}/rpm/macros.cmake

%remove_docs
rm -rf %{buildroot}/usr/share/doc

%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/rpm/macros.cmake
%{_datadir}/aclocal/cmake.m4
%{_bindir}/ccmake
%{_bindir}/cmake
%{_bindir}/cpack
%{_bindir}/ctest
%{_datadir}/%{name}/*
%{_datadir}/emacs/*