From 588a74c95dcc3f63c9c224349be783c03fca788b Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 30 Mar 2025 10:10:28 +0800 Subject: [PATCH] cmake: do not pass PRE_BUILD to add_custom_command(OUTPUT) Removes the invalid PRE_BUILD argument from add_custom_command(OUTPUT) calls that was triggering CMake warnings. The PRE_BUILD option is only valid for target-based custom commands and specifically with Visual Studio generators. Additionally sets the CMP0175 policy to NEW to ensure CMake fails on invalid arguments to add_custom_command(), helping catch similar issues earlier in the development process. This change: - Removes unnecessary PRE_BUILD argument from OUTPUT-based custom commands - Sets CMP0175 policy to enforce validation of add_custom_command() arguments - Resolves CMake warning in src/common/options/CMakeLists.txt Reference: https://cmake.org/cmake/help/latest/command/add_custom_command.html#build-events The CMake warning looks like: ``` CMake Warning (dev) at src/common/options/CMakeLists.txt:34 (add_custom_command): The following keywords are not supported when using add_custom_command(OUTPUT): PRE_BUILD. Policy CMP0175 is not set: add_custom_command() rejects invalid arguments. Run "cmake --help-policy CMP0175" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): src/common/options/CMakeLists.txt:85 (add_options) This warning is for project developers. Use -Wno-dev to suppress it. ``` Signed-off-by: Kefu Chai --- CMakeLists.txt | 2 +- src/common/options/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f84f4e7b25..4e30d65e31d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(ceph VERSION 20.0.0 LANGUAGES CXX C ASM) -foreach(policy CMP0127 CMP0135) +foreach(policy CMP0127 CMP0135 CMP0175) if(POLICY ${policy}) cmake_policy(SET ${policy} NEW) endif() diff --git a/src/common/options/CMakeLists.txt b/src/common/options/CMakeLists.txt index fcec49e549a..60cdbc3f224 100644 --- a/src/common/options/CMakeLists.txt +++ b/src/common/options/CMakeLists.txt @@ -31,7 +31,7 @@ function(add_options name) set(options_yamls ${options_yamls} PARENT_SCOPE) set(cc_file "${name}_options.cc") set(h_file "${PROJECT_BINARY_DIR}/include/${name}_legacy_options.h") - add_custom_command(PRE_BUILD + add_custom_command( OUTPUT ${cc_file} ${h_file} COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/y2c.py --input ${yaml_file} -- 2.39.5