From 8ceacbac6b6b0f95256baa1c250ac6111c0bb887 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Fri, 25 Apr 2025 07:18:31 +0000 Subject: [PATCH] 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 --- scripts/build | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/build b/scripts/build index fa170e1bcc..d53436d9fe 100755 --- a/scripts/build +++ b/scripts/build @@ -147,8 +147,7 @@ else 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} \ @@ -319,19 +318,19 @@ else # cmake builds with ninja "cmake:target") 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") 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") 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") 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