]> git.pld-linux.org Git - packages/libprojectM.git/blob - libprojectM.spec
f0f49ff8b9caa7142d481e3a60c2dc737a76fb13
[packages/libprojectM.git] / libprojectM.spec
1 # TODO
2 # - cmake is borken and adds objects (static libs) in the middle of lists (Renderer/libRenderer.a):
3 #   Linking CXX shared library libprojectM.so
4 #   /usr/bin/cmake -E cmake_link_script CMakeFiles/projectM-shared.dir/link.txt --verbose=1
5 #   /usr/bin/ccache  i686-pld-linux-g++ -fPIC -O2 -fno-strict-aliasing -fwrapv -march=i686 -mtune=pentium4 -gdwarf-3 -g2   -fopenmp  -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc  -shared -Wl,-soname,libprojectM.so.2 -o libprojectM.so.2.0.1 CMakeFiles/projectM-shared.dir/projectM.cpp.o CMakeFiles/projectM-shared.dir/PCM.cpp.o CMakeFiles/projectM-shared.dir/Preset.cpp.o CMakeFiles/projectM-shared.dir/fftsg.cpp.o CMakeFiles/projectM-shared.dir/KeyHandler.cpp.o CMakeFiles/projectM-shared.dir/timer.cpp.o CMakeFiles/projectM-shared.dir/wipemalloc.cpp.o CMakeFiles/projectM-shared.dir/PresetLoader.cpp.o CMakeFiles/projectM-shared.dir/PresetChooser.cpp.o CMakeFiles/projectM-shared.dir/PipelineMerger.cpp.o CMakeFiles/projectM-shared.dir/ConfigFile.cpp.o CMakeFiles/projectM-shared.dir/TimeKeeper.cpp.o CMakeFiles/projectM-shared.dir/PresetFactory.cpp.o CMakeFiles/projectM-shared.dir/PresetFactoryManager.cpp.o Renderer/libRenderer.a NativePresetFactory/libNativePresetFactory.a MilkdropPresetFactory/libMilkdropPresetFactory.a -lGLEW -lftgl -lfreetype -lGLU -lGL -lSM -lICE -lX11 -lXext Renderer/libRenderer.a -lm
6 #
7 #   CMakeLists.txt having:
8 #   TARGET_LINK_LIBRARIES(projectM-shared ${PRESET_FACTORY_LINK_TARGETS} ${GLEW_LINK_TARGETS} m dl ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES}  ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS})
9 #
10 #   NativePresetFactory/CMakeLists.txt has:
11 #   TARGET_LINK_LIBRARIES(NativePresetFactory Renderer m)
12 #   which mixes .a between -l for dl
13
14 %define         pkgname projectM
15 Summary:        Awesome music visualizer
16 Summary(pl.UTF-8):      Imponujący wizualizator muzyki
17 Name:           libprojectM
18 Version:        2.0.1
19 Release:        10
20 Epoch:          1
21 License:        LGPL v2.1+
22 Group:          Libraries
23 Source0:        http://downloads.sourceforge.net/project/projectm/%{version}/projectM-%{version}-Source.tar.gz
24 # Source0-md5:  f8bf795878cdbbef54784cf2390b4c89
25 Patch0:         %{name}-soname.patch
26 Patch1:         %{name}-fonts.patch
27 Patch2:         %{name}-static.patch
28 Patch3:         as-needed.patch
29 Patch4:         %{name}-pkgconfig.patch
30 Patch5:         01-change-texture-size.patch
31 Patch6:         04-change-preset-duration.patch
32 Patch7:         06-fix-numeric-locale.patch
33 Patch8:         freetype.patch
34 URL:            http://projectm.sourceforge.net/
35 BuildRequires:  OpenGL-devel
36 BuildRequires:  cmake >= 2.6.0
37 BuildRequires:  freetype-devel >= 2.0
38 BuildRequires:  ftgl-devel >= 2.1.3
39 BuildRequires:  gcc-c++ >= 6:4.2
40 BuildRequires:  glew-devel
41 BuildRequires:  libgomp-devel
42 BuildRequires:  libstdc++-devel
43 BuildRequires:  pkgconfig
44 BuildRequires:  rpmbuild(macros) >= 1.577
45 BuildRequires:  sed >= 4.0
46 Requires:       fonts-TTF-bitstream-vera
47 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49 # cmake (or cmake rules) are broken, mixes .a (objects) with libs (-l)
50 %define         filterout_ld    -Wl,--as-needed
51
52 %description
53 projectM is a reimplementation of Milkdrop under OpenGL. It is an
54 awesome music visualizer. There is nothing better in the world of
55 Unix.
56
57 %description -l pl.UTF-8
58 projectM jest reimplementacją projektu Milkdrop na OpenGL. Jest
59 imponującym wizualizatorem muzyki. Nie ma nic lepszego w świecie
60 uniksa.
61
62 %package devel
63 Summary:        Header files for projectM library
64 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki projectM
65 Group:          Development/Libraries
66 Requires:       %{name} = %{epoch}:%{version}-%{release}
67
68 %description devel
69 Header files for projectM library.
70
71 %description devel -l pl.UTF-8
72 Pliki nagłówkowe biblioteki projectM.
73
74 %package static
75 Summary:        Static projectM library
76 Summary(pl.UTF-8):      Statyczna biblioteka projectM
77 Group:          Development/Libraries
78 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
79
80 %description static
81 Static projectM library.
82
83 %description static -l pl.UTF-8
84 Statyczna biblioteka projectM.
85
86 %prep
87 %setup -q -n projectM-%{version}-Source
88 %undos config.inp.in
89 %patch0 -p1
90 %patch1 -p1
91 %patch2 -p1
92 %patch3 -p1
93 %patch4 -p1
94 %patch5 -p0
95 %patch6 -p0
96 %patch7 -p0
97 %patch8 -p1
98
99 %build
100 install -d build
101 cd build
102 %cmake \
103         -DCMAKE_LIB_DIR=%{_libdir} \
104         -DBUILD_PROJECTM_STATIC=yes \
105         ../
106 %{__make}
107
108 %install
109 rm -rf $RPM_BUILD_ROOT
110 %{__make} -C build install \
111         DESTDIR=$RPM_BUILD_ROOT
112
113 %clean
114 rm -rf $RPM_BUILD_ROOT
115
116 %post   -p /sbin/ldconfig
117 %postun -p /sbin/ldconfig
118
119 %files
120 %defattr(644,root,root,755)
121 # COPYING is just license information, not actual LGPL text
122 %doc COPYING ChangeLog
123 %attr(755,root,root) %{_libdir}/libprojectM.so.*.*
124 %attr(755,root,root) %ghost %{_libdir}/libprojectM.so.2
125 %dir %{_datadir}/%{pkgname}
126 %{_datadir}/%{pkgname}/config.inp
127 %dir %{_datadir}/%{pkgname}/presets
128 %{_datadir}/%{pkgname}/presets/*.milk
129 %{_datadir}/%{pkgname}/presets/*.prjm
130 %{_datadir}/%{pkgname}/presets/*.tga
131 %dir %{_datadir}/%{pkgname}/shaders
132 %{_datadir}/%{pkgname}/shaders/*.cg
133
134 %files devel
135 %defattr(644,root,root,755)
136 %attr(755,root,root) %{_libdir}/libprojectM.so
137 %{_includedir}/%{name}
138 %{_pkgconfigdir}/libprojectM.pc
139
140 %files static
141 %defattr(644,root,root,755)
142 %{_libdir}/libprojectM.a
This page took 0.04913 seconds and 2 git commands to generate.