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 <tchaikov@gmail.com>
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()
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}