diff --git a/cmake.spec b/cmake.spec index 1615d510c95075fd22152db17ff5c134566a5318..cc62cdde01211a1b81fa98194b37583902d801c6 100644 --- a/cmake.spec +++ b/cmake.spec @@ -11,7 +11,7 @@ Name: cmake Version: 3.24.3 -Release: 1 +Release: 2 Summary: Cross-platform make system License: BSD and MIT and zlib URL: http://www.cmake.org @@ -238,6 +238,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %exclude %{_pkgdocdir}/Copyright.txt %changelog +* Mon Nov 14 2022 jchzhou - 3.24.3-2 +- Add cmake_build, cmake_install and ctest macros + * Mon Nov 14 2022 jchzhou - 3.24.3-1 - Update to 3.24.3 diff --git a/macros.cmake b/macros.cmake index 1768aab399a51ce295805d26d80f4e5923d6afb9..e9da17bd521db585c3522fe98f8f66184d31c4e8 100644 --- a/macros.cmake +++ b/macros.cmake @@ -5,6 +5,12 @@ %_cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON %_cmake_version @@CMAKE_VERSION@@ %__cmake /usr/bin/cmake +%__ctest /usr/bin/ctest + +## NOTE: following macro is set to keep in-source builiding at the moment to avoid +## breaking anything existing, though CMake upstream recommends out-of-source +## building instead. +%__cmake_builddir %{!?__cmake_in_source_build:.}%{?__cmake_in_source_build:.} # - Set default compile flags # - CMAKE_*_FLAGS_RELEASE are added *after* the *FLAGS environment variables @@ -19,6 +25,8 @@ FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ; \ %{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} \ %__cmake \\\ + %{!?__cmake_in_source_build:-S "%{_vpath_srcdir}"} \\\ + %{!?__cmake_in_source_build:-B "%{__cmake_builddir}"} \\\ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ @@ -33,4 +41,19 @@ %endif \ -DBUILD_SHARED_LIBS:BOOL=ON +%cmake_build \ + %__cmake --build "%{__cmake_builddir}" %{?_smp_mflags} --verbose + +%cmake_install \ + DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}" + +%ctest(:-:h:j:u:v:A:C:D:E:F:H:I:L:M:N:O:Q:R:S:T:U:V:) \ + cd "%{__cmake_builddir}" \ + %__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**} \ + cd - + %cmake@@CMAKE_MAJOR_VERSION@@ %cmake +%cmake@@CMAKE_MAJOR_VERSION@@_build %cmake_build +%cmake@@CMAKE_MAJOR_VERSION@@_install %cmake_install +%ctest@@CMAKE_MAJOR_VERSION@@(:-:h:j:u:v:A:C:D:E:F:H:I:L:M:N:O:Q:R:S:T:U:V:) \ + %ctest %{**}