build: define CMAKE_EXPORT_COMPILE_COMMANDS as an environment variable not a define.

When building utfcpp (and other packages) a CMake warning is issued.

    CMake Warning:
      Manually-specified variables were not used by the project:

        CMAKE_EXPORT_COMPILE_COMMANDS

Before this change the following files are present:

    $ cd build.LibreELEC-Generic.x86_64-13.0-devel/build

    $ find utfcpp-4.0.6 -name build.ninja
    utfcpp-4.0.6/.x86_64-libreelec-linux-gnu/build.ninja
    $ find utfcpp-4.0.6 -name compile_commands.json

    $ find soxr-0.1.3 -name build.ninja
    soxr-0.1.3/.x86_64-libreelec-linux-gnu/build.ninja
    $ find soxr-0.1.3 -name compile_commands.json
    soxr-0.1.3/.x86_64-libreelec-linux-gnu/compile_commands.json

When removing the define CMAKE_EXPORT_COMPILE_COMMANDS:

--- a/scripts/build
+++ b/scripts/build
@@ -147,8 +147,7 @@
   MESON_BUILD_TYPE="plain"
 fi

-CMAKE_GENERATOR_NINJA="-GNinja \
-                       -DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
+CMAKE_GENERATOR_NINJA="-GNinja"

 # configure TARGET build defaults
 TARGET_CONFIGURE_OPTS="--host=${TARGET_NAME} \

The resulting build do not have the warning with utfcpp but the files
compile_commands.json are not created (as expected.)

    $ find utfcpp-4.0.6 -name build.ninja
    utfcpp-4.0.6/.x86_64-libreelec-linux-gnu/build.ninja
    $ find utfcpp-4.0.6 -name compile_commands.json

    $ find soxr-0.1.3 -name build.ninja
    soxr-0.1.3/.x86_64-libreelec-linux-gnu/build.ninja
    $ find soxr-0.1.3 -name compile_commands.json

With the change to declare CMAKE_EXPORT_COMPILE_COMMANDS as an environment
variable the warning is not preset with utfcpp and the compile_commands.json
are created, matching the current functionaility but without the warning.

Ref:
- https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html
  - This is initialized by the CMAKE_EXPORT_COMPILE_COMMANDS environment variable.
- https://cmake.org/cmake/help/latest/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.html#envvar:CMAKE_EXPORT_COMPILE_COMMANDS
- https://stackoverflow.com/questions/20059670/how-to-use-cmake-export-compile-commands
This commit is contained in:
Rudi Heitbaum 2025-04-25 07:18:31 +00:00
parent 8e1f3a6697
commit 8ceacbac6b

View File

@ -147,8 +147,7 @@ else
MESON_BUILD_TYPE="plain" MESON_BUILD_TYPE="plain"
fi fi
CMAKE_GENERATOR_NINJA="-GNinja \ CMAKE_GENERATOR_NINJA="-GNinja"
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
# configure TARGET build defaults # configure TARGET build defaults
TARGET_CONFIGURE_OPTS="--host=${TARGET_NAME} \ TARGET_CONFIGURE_OPTS="--host=${TARGET_NAME} \
@ -319,19 +318,19 @@ else
# cmake builds with ninja # cmake builds with ninja
"cmake:target") "cmake:target")
echo "Executing (target): cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " " echo "Executing (target): cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " "
cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*} CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*}
;; ;;
"cmake:host") "cmake:host")
echo "Executing (host): cmake ${CMAKE_GENERATOR_NINJA} ${HOST_CMAKE_OPTS} ${PKG_CMAKE_OPTS_HOST} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " " echo "Executing (host): cmake ${CMAKE_GENERATOR_NINJA} ${HOST_CMAKE_OPTS} ${PKG_CMAKE_OPTS_HOST} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " "
cmake ${CMAKE_GENERATOR_NINJA} ${HOST_CMAKE_OPTS} ${PKG_CMAKE_OPTS_HOST} ${PKG_CMAKE_SCRIPT%/*} CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake ${CMAKE_GENERATOR_NINJA} ${HOST_CMAKE_OPTS} ${PKG_CMAKE_OPTS_HOST} ${PKG_CMAKE_SCRIPT%/*}
;; ;;
"cmake:init") "cmake:init")
echo "Executing (init): cmake ${CMAKE_GENERATOR_NINJA} ${INIT_CMAKE_OPTS} ${PKG_CMAKE_OPTS_INIT} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " " echo "Executing (init): cmake ${CMAKE_GENERATOR_NINJA} ${INIT_CMAKE_OPTS} ${PKG_CMAKE_OPTS_INIT} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " "
cmake ${CMAKE_GENERATOR_NINJA} ${INIT_CMAKE_OPTS} ${PKG_CMAKE_OPTS_INIT} ${PKG_CMAKE_SCRIPT%/*} CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake ${CMAKE_GENERATOR_NINJA} ${INIT_CMAKE_OPTS} ${PKG_CMAKE_OPTS_INIT} ${PKG_CMAKE_SCRIPT%/*}
;; ;;
"cmake:bootstrap") "cmake:bootstrap")
echo "Executing (bootstrap): cmake ${CMAKE_GENERATOR_NINJA} ${BOOTSTRAP_CMAKE_OPTS} ${PKG_CMAKE_OPTS_BOOTSTRAP} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " " echo "Executing (bootstrap): cmake ${CMAKE_GENERATOR_NINJA} ${BOOTSTRAP_CMAKE_OPTS} ${PKG_CMAKE_OPTS_BOOTSTRAP} ${PKG_CMAKE_SCRIPT%/*}" | tr -s " "
cmake ${CMAKE_GENERATOR_NINJA} ${BOOTSTRAP_CMAKE_OPTS} ${PKG_CMAKE_OPTS_BOOTSTRAP} ${PKG_CMAKE_SCRIPT%/*} CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake ${CMAKE_GENERATOR_NINJA} ${BOOTSTRAP_CMAKE_OPTS} ${PKG_CMAKE_OPTS_BOOTSTRAP} ${PKG_CMAKE_SCRIPT%/*}
;; ;;
# cmake builds with make # cmake builds with make