diff --git a/bloom/generators/rpm/templates/ament_cmake/template.spec.em b/bloom/generators/rpm/templates/ament_cmake/template.spec.em index bebb96b6..19488351 100644 --- a/bloom/generators/rpm/templates/ament_cmake/template.spec.em +++ b/bloom/generators/rpm/templates/ament_cmake/template.spec.em @@ -5,6 +5,9 @@ %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ +%undefine __cmake_in_source_build +%define _vpath_builddir .obj-%{_target_platform} + Name: @(Package) Version: @(Version) Release: @(RPMInc)%{?dist}%{?release_suffix} @@ -38,8 +41,7 @@ Source0: %{name}-%{version}.tar.gz # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi -mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} -%cmake3 \ +%cmake \ -UINCLUDE_INSTALL_DIR \ -ULIB_INSTALL_DIR \ -USYSCONF_INSTALL_DIR \ @@ -52,28 +54,27 @@ mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} %if !0%{?with_tests} -DBUILD_TESTING=OFF \ %endif - .. -%make_build +%cmake_build %install # In case we're installing to a non-standard location, look for a setup.sh # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi -%make_install -C .obj-%{_target_platform} +%cmake_install %if 0%{?with_tests} %check # Look for a Makefile target with a name indicating that it runs tests -TEST_TARGET=$(%__make -qp -C .obj-%{_target_platform} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") +TEST_TARGET=$(%__make -qp -C %{__cmake_builddir} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") if [ -n "$TEST_TARGET" ]; then # In case we're installing to a non-standard location, look for a setup.sh # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi CTEST_OUTPUT_ON_FAILURE=1 \ - %make_build -C .obj-%{_target_platform} $TEST_TARGET || echo "RPM TESTS FAILED" + %make_build -C %{__cmake_builddir} $TEST_TARGET || echo "RPM TESTS FAILED" else echo "RPM TESTS SKIPPED"; fi %endif diff --git a/bloom/generators/rpm/templates/cmake/template.spec.em b/bloom/generators/rpm/templates/cmake/template.spec.em index b1217d05..2476bf99 100644 --- a/bloom/generators/rpm/templates/cmake/template.spec.em +++ b/bloom/generators/rpm/templates/cmake/template.spec.em @@ -5,6 +5,9 @@ %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ +%undefine __cmake_in_source_build +%define _vpath_builddir .obj-%{_target_platform} + Name: @(Package) Version: @(Version) Release: @(RPMInc)%{?dist}%{?release_suffix} @@ -38,8 +41,7 @@ Source0: %{name}-%{version}.tar.gz # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi -mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} -%cmake3 \ +%cmake \ -UINCLUDE_INSTALL_DIR \ -ULIB_INSTALL_DIR \ -USYSCONF_INSTALL_DIR \ @@ -51,28 +53,27 @@ mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} %if !0%{?with_tests} -DBUILD_TESTING=OFF \ %endif - .. -%make_build +%cmake_build %install # In case we're installing to a non-standard location, look for a setup.sh # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi -%make_install -C .obj-%{_target_platform} +%cmake_install %if 0%{?with_tests} %check # Look for a Makefile target with a name indicating that it runs tests -TEST_TARGET=$(%__make -qp -C .obj-%{_target_platform} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") +TEST_TARGET=$(%__make -qp -C %{__cmake_builddir} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") if [ -n "$TEST_TARGET" ]; then # In case we're installing to a non-standard location, look for a setup.sh # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi CTEST_OUTPUT_ON_FAILURE=1 \ - %make_build -C .obj-%{_target_platform} $TEST_TARGET || echo "RPM TESTS FAILED" + %make_build -C %{__cmake_builddir} $TEST_TARGET || echo "RPM TESTS FAILED" else echo "RPM TESTS SKIPPED"; fi %endif