Skip to contentSkip to conversation

cmake.bbclass: remove unneded cd ${B}

PATCH New Cody P Schafer 1 participant 2 messages May 4, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 cmake.bbclass: remove unneded cd ${B}

The default dir for do_compile & do_configure is already ${B}, no need to cd (other than broken appends)

---
 meta/classes/cmake.bbclass | 2 --
 1 file changed, 2 deletions(-)
meta/classes/cmake.bbclass +0 -2
index 12df617ad8..8b5f18d8e0 100644
@@ -135,12 +135,10 @@ cmake_do_configure() {
 
 do_compile[progress] = "percent"
 cmake_do_compile()  {
-	cd ${B}
 	base_do_compile VERBOSE=1
 }
 
 cmake_do_install() {
-	cd ${B}
 	oe_runmake 'DESTDIR=${D}' install
 }
 
Signature · 1 line
2.12.2
#1 lore raw

PATCH v2 2/2 cmake.bbclass: use `cmake --build` to build & install

Rather than presuming make is the generator, use cmake's generic cmake --build feature (which knows to call the appropriate generator).

Both DESTDIR and VERBOSE still behave as intended when used as environment variables instead of make variable-arguments.

As cmake-based builds don't do any configuration with make invocations, we only pass PARALLEL_MAKE{,INST} (via a EXTRA_OECMAKE_BUILD variable) to the underlying build tool. Make & ninja support the same -j N option (and a few others), so this does happen to work for both.

This makes it more straight forward for others to select other cmake generators (many folks have been reaching for ninja lately).

---
 meta/classes/cmake.bbclass | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
meta/classes/cmake.bbclass +7 -2
index 8b5f18d8e0..ac2c1519b0 100644
@@ -31,6 +31,9 @@ OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH"
 
 EXTRA_OECMAKE_append = " ${PACKAGECONFIG_CONFARGS}"
 
+EXTRA_OECMAKE_BUILD_prepend_task-compile = "${PARALLEL_MAKE} "
+EXTRA_OECMAKE_BUILD_prepend_task-install = "${PARALLEL_MAKEINST} "
+
 # CMake expects target architectures in the format of uname(2),
 # which do not always match TARGET_ARCH, so all the necessary
 # conversions should happen here.
@@ -135,11 +138,13 @@ cmake_do_configure() {
 
 do_compile[progress] = "percent"
 cmake_do_compile()  {
-	base_do_compile VERBOSE=1
+	bbnote VERBOSE=1 cmake --build '${B}' -- ${EXTRA_OECMAKE_BUILD}
+	VERBOSE=1 cmake --build '${B}' -- ${EXTRA_OECMAKE_BUILD}
 }
 
 cmake_do_install() {
-	oe_runmake 'DESTDIR=${D}' install
+	bbnote DESTDIR='${D}' cmake --build '${B}' --target install -- ${EXTRA_OECMAKE_BUILD}
+	DESTDIR='${D}' cmake --build '${B}' --target install -- ${EXTRA_OECMAKE_BUILD}
 }
 
 EXPORT_FUNCTIONS do_configure do_compile do_install do_generate_toolchain_file
Signature · 1 line
2.12.2