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