summaryrefslogtreecommitdiff
path: root/macros.cmake.in
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-11-01 14:05:52 +0000
committerCoprDistGit <infra@openeuler.org>2024-11-01 14:05:52 +0000
commit76029bd3a3fb084bfd62ceb241d9c5a32578dea6 (patch)
treecc2f8aae579615304aba22ec5ba070b552ecca16 /macros.cmake.in
parent0a3d9d1adef8566c337859aeb5027352aedc3014 (diff)
automatic import of cmake
Diffstat (limited to 'macros.cmake.in')
-rw-r--r--macros.cmake.in78
1 files changed, 78 insertions, 0 deletions
diff --git a/macros.cmake.in b/macros.cmake.in
new file mode 100644
index 0000000..accad53
--- /dev/null
+++ b/macros.cmake.in
@@ -0,0 +1,78 @@
+#
+# Macros for cmake
+#
+
+%_cmake_lib_suffix64 -DLIB_SUFFIX=64
+%_cmake_lib_suffixilp32 -DLIB_SUFFIX=ilp32
+%_cmake_shared_libs -DBUILD_SHARED_LIBS:BOOL=ON
+%_cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON
+%_cmake_version @@CMAKE_VERSION@@
+%__cmake /usr/bin/cmake
+%__ctest /usr/bin/ctest
+%__cmake_builddir %{!?__cmake_in_source_build:%{_vpath_builddir}}%{?__cmake_in_source_build:.}
+%_cmake_module_linker_flags %(echo %build_ldflags|sed -e 's#-Wl,--no-undefined##')
+
+# - 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
+# - Turn off stripping by default so RPM can do it separately
+# - Set default install prefixes and library install directories
+# - Turn on shared libraries by default
+%cmake \
+ %{set_build_flags} \
+ %__cmake \\\
+ -S "%{_vpath_srcdir}" \\\
+ -B "%{__cmake_builddir}" \\\
+ -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_DO_STRIP:BOOL=OFF \\\
+ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \\\
+ -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\
+ -DLIB_INSTALL_DIR:PATH=%{_libdir} \\\
+ -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\
+ -DCMAKE_INSTALL_RUNSTATEDIR:PATH=%{_rundir} \\\
+ -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\
+%if "%{?_lib}" == "lib64" \
+ %{?_cmake_lib_suffix64} \\\
+%endif \
+%if "%{?_lib}" == "libilp32" \
+ %{?_cmake_lib_suffixilp32} \\\
+%endif \
+ %{?_cmake_shared_libs} \\\
+ %{?_cmake_module_linker_flags:-DCMAKE_MODULE_LINKER_FLAGS="%_cmake_module_linker_flags%{?_cmake_module_linker_flags_extra: %_cmake_module_linker_flags_extra}"} \\\
+ %{nil}
+
+%cmake_conf %cmake
+
+%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:) \
+ %__ctest --test-dir "%{__cmake_builddir}" \\\
+ --output-on-failure \\\
+ --force-new-ctest-process \\\
+%ifarch riscv64 \
+ --timeout 6000 \\\
+%endif \
+ %{?_smp_mflags} %{**}
+
+
+%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 %{**}
+
+# Declarative buildsystem, requires RPM 4.20+ to work
+# https://rpm-software-management.github.io/rpm/manual/buildsystem.html
+%buildsystem_cmake_generate_buildrequires() %{nil}
+%buildsystem_cmake_conf() %cmake %*
+%buildsystem_cmake_build() %cmake_build %*
+%buildsystem_cmake_install() %cmake_install %*
+%buildsystem_cmake_check(:-:h:j:u:v:A:C:D:E:F:H:I:L:M:N:O:Q:R:S:T:U:V:) %ctest %{**}