]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
cmake.bbclass: refactor cmake args
authorAdrian Freihofer <adrian.freihofer@gmail.com>
Tue, 5 Sep 2023 16:51:11 +0000 (18:51 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 10 Sep 2023 07:54:33 +0000 (08:54 +0100)
Make the details of the cmake configure arguments available to
d.getVar(). This allows to share them with devtool via tinfoil.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/cmake.bbclass

index c4ac96524a6dfcce33cba027cb9d6a34c2dd8431..41748b08207dafeebdf04d3fd7567a8545642bfe 100644 (file)
@@ -160,6 +160,29 @@ CONFIGURE_FILES = "CMakeLists.txt"
 
 do_configure[cleandirs] = "${@d.getVar('B') if d.getVar('S') != d.getVar('B') else ''}"
 
+OECMAKE_ARGS = "\
+    -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
+    -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir'), d.getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \
+    -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir'), d.  getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \
+    -DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir'), d.getVar('prefix') + '/')} \
+    -DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir'), d.getVar('prefix') + '/')} \
+    -DPYTHON_EXECUTABLE:PATH=${PYTHON} \
+    -DPython_EXECUTABLE:PATH=${PYTHON} \
+    -DPython3_EXECUTABLE:PATH=${PYTHON} \
+    -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+    -DCMAKE_INSTALL_SO_NO_EXE=0 \
+    -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain.cmake \
+    -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
+    -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
+    -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
+    -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
+"
+
 cmake_do_configure() {
        if [ "${OECMAKE_BUILDPATH}" ]; then
                bbnote "cmake.bbclass no longer uses OECMAKE_BUILDPATH.  The default behaviour is now out-of-tree builds with B=WORKDIR/build."
@@ -180,25 +203,7 @@ cmake_do_configure() {
          ${OECMAKE_GENERATOR_ARGS} \
          $oecmake_sitefile \
          ${OECMAKE_SOURCEPATH} \
-         -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
-         -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir'), d.getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \
-         -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir'), d.  getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \
-         -DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir'), d.getVar('prefix') + '/')} \
-         -DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir'), d.getVar('prefix') + '/')} \
-         -DPYTHON_EXECUTABLE:PATH=${PYTHON} \
-         -DPython_EXECUTABLE:PATH=${PYTHON} \
-         -DPython3_EXECUTABLE:PATH=${PYTHON} \
-         -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
-         -DCMAKE_INSTALL_SO_NO_EXE=0 \
-         -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
-         -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
-         -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
-         -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
+         ${OECMAKE_ARGS} \
          ${EXTRA_OECMAKE} \
          -Wno-dev
 }