Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aevseev:devel
clang
clang.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File clang.spec of Package clang
%define realname clang %define realver 17.0.1 %define srcext tar.xz %define gen %(awk -F. '{print $1}' <<< %{realver}) %define mainver %(awk -F. '{printf "%i.%i", $1, $2}' <<< %{realver}) %bcond_with doc %bcond_without ninja %if 0%{?suse_version} %define pkg_name_lib libclang%{gen} %else %define pkg_name_lib clang-libs %endif # turn off the generation of debuginfo rpm (RH9) ?? %global debug_package %{nil} # Common info Name: %{realname} Version: %{realver} Release: wiz%{?extraver:0.}1%{?dist} License: BSD-3-Clause Group: Development/Languages/C and C++ URL: http://clang.llvm.org/ Summary: C language family frontend for LLVM # Install-time parameters Provides: c_compiler c++_compiler Provides: llvm-clang = %{version}-%{release} # Perl-written tools deps Requires: perl%{?suse_version:-base} # Build-time parameters BuildRequires: xz pkg-config cmake >= 3.13.4 BuildRequires: gcc-c++ BuildRequires: python3 %if %{with ninja} BuildRequires: ninja %endif BuildRequires: llvm-devel = %{version} BuildRequires: libffi-devel BuildRequires: libxml2-devel >= 2.5.3 # Documentation %if %{with doc} BuildRequires: doxygen graphviz graphviz-gd BuildRequires: fontconfig ghostscript-fonts%{?suse_version:-std} BuildRequires: python3-Sphinx %if 0%{?suse_version} BuildRequires: fdupes %endif %endif BuildRoot: %{_tmppath}/%{name}-root Source: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{realver}/%{realname}-%{realver}%{?extraver}.src.%{srcext} # CMake modules Source15: https://github.com/llvm/llvm-project/raw/llvmorg-%{realver}/cmake/Modules/CMakePolicy.cmake Source16: https://github.com/llvm/llvm-project/raw/llvmorg-%{realver}/cmake/Modules/GetClangResourceDir.cmake %description The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. %package -n %{pkg_name_lib} Group: System/Libraries Summary: Shared libraries from C language family frontend for LLVM Provides: clang-libs = %{version}-%{release} Provides: libclang = %{version}-%{release} Provides: llvm-clang-libs = %{version}-%{release} %if 0%{?rhel} && %{__isa_bits} == 64 Provides: lib%{realname}.so.%{gen}()(64bit) Provides: lib%{realname}.so.%{gen}(LLVM_%{gen})(64bit) %endif %description -n %{pkg_name_lib} Shared libraries from C language family frontend for LLVM. %package devel Group: Development/Languages/C and C++ Summary: Development files for %{name} Requires: %{name} = %{version}-%{release} Requires: %{pkg_name_lib} = %{version}-%{release} Requires: llvm-devel %description devel Development files for %{name} %package devel-static Group: Development/Languages/C and C++ Summary: clang static libraries Requires: %{name} = %{version}-%{release} Requires: %{pkg_name_lib} = %{version}-%{release} Requires: llvm-devel Requires: clang-devel = %{version}-%{release} %description devel-static clang static libraries # Preparation step (unpackung and patching if necessary) %prep %setup -q -n %{realname}-%{realver}%{?extraver}.src %{__install} -m0644 %{S:15} cmake/modules/ %{__install} -m0644 %{S:16} cmake/modules/ # Don't use upper level CMake modules %{__sed} -ri \ -e '/^\s*set\(LLVM_COMMON_CMAKE_UTILS/ s|\.\./||' \ -e 's|/Modules|/modules|' \ CMakeLists.txt # Set correct libexec dir for scan-build LIBEXEC='%{_libexecdir}' LIBEXEC_LIB="${LIBEXEC##*/}" %{__sed} -i \ -e "s|DESTINATION libexec|DESTINATION $LIBEXEC_LIB|g" \ tools/scan-build/CMakeLists.txt tools/scan-build-py/CMakeLists.txt %{__sed} -ri \ -e '/^my \$Cmd(CXX)?/ s|\$AbsRealBin/../libexec|%{_libexecdir}|' \ tools/scan-build/bin/scan-build %build export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd -P)/build/%{_lib} _CFLAGS="%{optflags}" _LDFLAGS="-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,defs -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro" cmake -S . -B build \ %if %{with ninja} -G Ninja \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \ -DCMAKE_EXE_LINKER_FLAGS_RELEASE="$_LDFLAGS" \ -DCMAKE_MODULE_LINKER_FLAGS_RELEASE="$_LDFLAGS" \ -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$_LDFLAGS" \ -DCMAKE_SKIP_RPATH=YES \ -DCMAKE_VERBOSE_MAKEFILE=YES \ \ -DBUILD_SHARED_LIBS=YES \ \ -DCLANG_BUILT_STANDALONE=YES \ \ -DCLANG_INCLUDE_TESTS=NO \ -DLLVM_INCLUDE_TESTS=NO \ %if %{with doc} -DCLANG_INCLUDE_DOCS=YES \ -DLLVM_ENABLE_SPHINX=YES \ %else -DCLANG_INCLUDE_DOCS=NO \ %endif \ -DLLVM_ENABLE_LTO=YES %if %{with ninja} ninja -v -C build %{?_smp_mflags} %else %{__make} -C build %{?_smp_mflags} %endif %install %if %{with ninja} DESTDIR=%{buildroot} ninja -v -C build install %else %{__make} -C build install DESTDIR=%{buildroot} %endif %__ln_s -fn %{gen} %{buildroot}%{_libdir}/clang/%{version} %if %{with doc} # Handle file duplicates %if 0%{?suse_version} %fdupes %{buildroot}%{_defaultdocdir} %endif %endif # Explicitly set python interpreter %{__sed} -ri '1 s|#!.+python$|#!%{_bindir}/python3|' \ %{buildroot}%{_bindir}/analyze-build \ %{buildroot}%{_bindir}/git-clang-format \ %{buildroot}%{_bindir}/hmaptool \ %{buildroot}%{_bindir}/intercept-build \ %{buildroot}%{_bindir}/scan-build-py \ %{buildroot}%{_bindir}/scan-view \ %{buildroot}%{_datadir}/clang/clang-format-diff.py \ %{buildroot}%{_datadir}/scan-view/startfile.py \ %{buildroot}%{_libexecdir}/analyze-c++ \ %{buildroot}%{_libexecdir}/intercept-c++ \ %{buildroot}%{_libexecdir}/analyze-cc \ %{buildroot}%{_libexecdir}/intercept-cc %{__sed} -ri '1 s|#!.+perl$|#!%{_bindir}/perl|' \ %{buildroot}%{_libexecdir}/c++-analyzer \ %{buildroot}%{_libexecdir}/ccc-analyzer \ %{buildroot}%{_bindir}/scan-build %clean [ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} %files %defattr(-,root,root) %license LICENSE.TXT %doc NOTES.txt README.txt %{_bindir}/* %{_libexecdir}/* %{_libdir}/libear/ %{_libdir}/libscanbuild/ %{_datadir}/clang/ %{_datadir}/scan-build/ %{_datadir}/scan-view/ %if %{with doc} %doc %attr(0644,root,root) %{_mandir}/man1/* %else %doc %attr(0644,root,root) %{_mandir}/man1/scan-build.1* %endif # Clang shared libraries %files -n %{pkg_name_lib} %defattr(-,root,root) %{_libdir}/libclang*.so.%{gen}* # Development stuff %files devel %defattr(-,root,root) %{_libdir}/libclang*.so %{_includedir}/clang/ %{_includedir}/clang-c/ %{_libdir}/clang/ %dir %{_libdir}/cmake/clang %dir %{_libdir}/cmake %{_libdir}/cmake/clang/*.cmake # Static libraries %files devel-static %defattr(-,root,root) ### %{_libdir}/libclang*.a %post -n %{pkg_name_lib} -p /sbin/ldconfig %postun -n %{pkg_name_lib} -p /sbin/ldconfig %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor