Backport support for out-of-source builds controlled by __cmake_in_source_build macro (#1861329)
- Backport cmake_build and cmake_install macros - Backport ctest macroepel9
parent
ec3dee4d05
commit
3d7bea8322
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# Shell wrapper for supporting compiling with different backends for CMake < 3.13
|
||||
|
||||
# Collect arguments
|
||||
__cmake_builddir="$1"
|
||||
__build_flags="${@:2}"
|
||||
|
||||
if [ -f "${__cmake_builddir}/Makefile" ]; then
|
||||
/usr/bin/make -C "${__cmake_builddir}" V=1 VERBOSE=1 ${__build_flags}
|
||||
exit $?
|
||||
elif [ -f "${__cmake_builddir}/build.ninja" ]; then
|
||||
/usr/bin/ninja -C "${__cmake_builddir}" -v ${__build_flags}
|
||||
exit $?
|
||||
else
|
||||
echo "Unknown build format, exiting!"
|
||||
exit 99
|
||||
fi
|
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Shell wrapper for supporting out-of-source builds with CMake < 3.13
|
||||
|
||||
# Collect arguments
|
||||
__cmake="$1"
|
||||
__cmake_srcdir="$2"
|
||||
__cmake_builddir="$3"
|
||||
__cmake_flags="${@:4}"
|
||||
|
||||
# Do the build
|
||||
mkdir -p "${__cmake_builddir}"
|
||||
"${__cmake}" ${__cmake_flags} "${__cmake_srcdir}" "${__cmake_builddir}"
|
||||
exit $?
|
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# Shell wrapper for supporting installing with different backends for CMake < 3.13
|
||||
|
||||
# Collect arguments
|
||||
__cmake_builddir="$1"
|
||||
__cmake_destdir="$2"
|
||||
|
||||
if [ -f "${__cmake_builddir}/Makefile" ]; then
|
||||
/usr/bin/make -C "${__cmake_builddir}" install DESTDIR="${__cmake_destdir}"
|
||||
exit $?
|
||||
elif [ -f "${__cmake_builddir}/build.ninja" ]; then
|
||||
DESTDIR="${__cmake_destdir}" /usr/bin/ninja -C "${__cmake_builddir}" install -v
|
||||
exit $?
|
||||
else
|
||||
echo "Unknown build format, exiting!"
|
||||
exit 99
|
||||
fi
|
@ -0,0 +1,54 @@
|
||||
#
|
||||
# EPEL override macros for cmake
|
||||
#
|
||||
%_cmake_shared_libs -DBUILD_SHARED_LIBS:BOOL=ON
|
||||
%__ctest /usr/bin/ctest
|
||||
%__cmake_in_source_build 1
|
||||
%__cmake_builddir %{!?__cmake_in_source_build:%{_vpath_builddir}}%{?__cmake_in_source_build:.}
|
||||
%__cmake_configure %{_rpmconfigdir}/cmake-configure %{__cmake} %{_vpath_srcdir} %{__cmake_builddir}
|
||||
|
||||
# - Set default compile flags
|
||||
# - CMAKE_*_FLAGS_RELEASE are added *after* the *FLAGS environment variables
|
||||
# and default to -O3 -DNDEBUG. Strip the -O3 so we can override with *FLAGS
|
||||
# - Turn on verbose makefiles so we can see and verify compile flags
|
||||
# - Set default install prefixes and library install directories
|
||||
# - Turn on shared libraries by default
|
||||
%cmake \
|
||||
%if 0%{?set_build_flags:1} \
|
||||
%set_build_flags \
|
||||
%else \
|
||||
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
|
||||
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
|
||||
FFLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FFLAGS ; \
|
||||
FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ; \
|
||||
%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} \
|
||||
%endif \
|
||||
%{!?__cmake_in_source_build:%__cmake_configure}%{?__cmake_in_source_build:%__cmake} \\\
|
||||
-DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
|
||||
-DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
|
||||
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \\\
|
||||
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\
|
||||
-DLIB_INSTALL_DIR:PATH=%{_libdir} \\\
|
||||
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\
|
||||
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\
|
||||
%if "%{?_lib}" == "lib64" \
|
||||
%{?_cmake_lib_suffix64} \\\
|
||||
%endif \
|
||||
%{?_cmake_shared_libs}
|
||||
|
||||
%cmake_build \
|
||||
%{_rpmconfigdir}/cmake-build "%{__cmake_builddir}" %{?_smp_mflags}
|
||||
|
||||
%cmake_install \
|
||||
%{_rpmconfigdir}/cmake-install "%{__cmake_builddir}" "%{buildroot}"
|
||||
|
||||
%ctest(:-:) \
|
||||
cd "%{__cmake_builddir}" \
|
||||
%__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**} \
|
||||
cd -
|
||||
|
||||
%cmake3_build %cmake_build
|
||||
%cmake3_install %cmake_install
|
||||
%ctest3 %ctest
|
Loading…
Reference in new issue