diff options
| -rw-r--r-- | meta/classes/cmake.bbclass | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 55698e60e5..74a952142f 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass | |||
| @@ -7,6 +7,23 @@ B = "${WORKDIR}/build" | |||
| 7 | # We need to unset CCACHE otherwise cmake gets too confused | 7 | # We need to unset CCACHE otherwise cmake gets too confused |
| 8 | CCACHE = "" | 8 | CCACHE = "" |
| 9 | 9 | ||
| 10 | # What CMake generator to use. | ||
| 11 | # The supported options are "Unix Makefiles" or "Ninja". | ||
| 12 | OECMAKE_GENERATOR ?= "Unix Makefiles" | ||
| 13 | |||
| 14 | python() { | ||
| 15 | generator = d.getVar("OECMAKE_GENERATOR") | ||
| 16 | if generator == "Unix Makefiles": | ||
| 17 | args = "-G 'Unix Makefiles' -DCMAKE_MAKE_PROGRAM=" + d.getVar("MAKE") | ||
| 18 | d.setVar("OECMAKE_GENERATOR_ARGS", args) | ||
| 19 | d.setVarFlag("do_compile", "progress", "percent") | ||
| 20 | elif generator == "Ninja": | ||
| 21 | d.appendVar("DEPENDS", " ninja-native") | ||
| 22 | d.setVar("OECMAKE_GENERATOR_ARGS", "-G Ninja -DCMAKE_MAKE_PROGRAM=ninja") | ||
| 23 | d.setVarFlag("do_compile", "progress", "outof:^\[(\d+)/(\d+)\]\s+") | ||
| 24 | else: | ||
| 25 | bb.fatal("Unknown CMake Generator %s" % generator) | ||
| 26 | } | ||
| 10 | # C/C++ Compiler (without cpu arch/tune arguments) | 27 | # C/C++ Compiler (without cpu arch/tune arguments) |
| 11 | OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" | 28 | OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" |
| 12 | OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" | 29 | OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" |
| @@ -121,9 +138,9 @@ cmake_do_configure() { | |||
| 121 | fi | 138 | fi |
| 122 | 139 | ||
| 123 | cmake \ | 140 | cmake \ |
| 141 | ${OECMAKE_GENERATOR_ARGS} \ | ||
| 124 | $oecmake_sitefile \ | 142 | $oecmake_sitefile \ |
| 125 | ${OECMAKE_SOURCEPATH} \ | 143 | ${OECMAKE_SOURCEPATH} \ |
| 126 | -DCMAKE_MAKE_PROGRAM=${MAKE} \ | ||
| 127 | -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ | 144 | -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ |
| 128 | -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix'))} \ | 145 | -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix'))} \ |
| 129 | -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix'))} \ | 146 | -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix'))} \ |
| @@ -142,7 +159,6 @@ cmake_do_configure() { | |||
| 142 | -Wno-dev | 159 | -Wno-dev |
| 143 | } | 160 | } |
| 144 | 161 | ||
| 145 | do_compile[progress] = "percent" | ||
| 146 | cmake_do_compile() { | 162 | cmake_do_compile() { |
| 147 | bbnote VERBOSE=1 cmake --build '${B}' --target ${OECMAKE_TARGET_COMPILE} -- ${EXTRA_OECMAKE_BUILD} | 163 | bbnote VERBOSE=1 cmake --build '${B}' --target ${OECMAKE_TARGET_COMPILE} -- ${EXTRA_OECMAKE_BUILD} |
| 148 | VERBOSE=1 cmake --build '${B}' --target ${OECMAKE_TARGET_COMPILE} -- ${EXTRA_OECMAKE_BUILD} | 164 | VERBOSE=1 cmake --build '${B}' --target ${OECMAKE_TARGET_COMPILE} -- ${EXTRA_OECMAKE_BUILD} |
