暂未分类暂未分类openeuler不识别cmake_build
zphj1987背景
在openeuler上面打包rpm的时候,有的src.rpm内部调用了%cmake_build的宏变量,openeuler的默认cmake3.22版本不支持,可以通过修改宏变量来实现可用
修改
修改文件路径为: /usr/lib/rpm/macros.d/macros.cmake
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| [root@openeuler ~]
%_cmake_lib_suffix64 -DLIB_SUFFIX=64 %_cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON %_cmake_version 3.22.0 %__cmake /usr/bin/cmake %__ctest /usr/bin/ctest %__cmake_builddir %{!?__cmake_in_source_build:%{_vpath_builddir}}%{?__cmake_in_source_build:.}
%cmake \ 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 ;} \ %__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" \\\ -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 \ -DBUILD_SHARED_LIBS:BOOL=ON
%cmake_build \ %__cmake --build "%{__cmake_builddir}" %{?_smp_mflags} --verbose
%cmake_install \ DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}"
%ctest(:-:) \ cd "%{__cmake_builddir}" \ %__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**} \ cd -
%cmake3 %cmake %cmake3_build %cmake_build %cmake3_install %cmake_install %ctest3(:-:) %ctest %{**}
|
通过上面的修改后,即可适配高版本的编译