CMP0178 — CMake 4.0.1-dirty Documentation

# CMP0178

Added in version 3.31.

Test command lines preserve empty arguments.

Empty values in the `TEST_LAUNCHER` and `CROSSCOMPILING_EMULATOR` target properties are now preserved for tests added by the following:

- The `add_test()` command.

- The `ExternalData_Add_Test()` command from the `ExternalData` module.

- The `gtest_add_tests()` or `gtest_discover_tests()` commands from the `GoogleTest` module.

For the `gtest_add_tests()` and `gtest_discover_tests()` commands, empty elements in the values passed after the `EXTRA_ARGS` keyword are also now preserved.

The `OLD` behavior of this policy silently discards empty list items from the `TEST_LAUNCHER` and `CROSSCOMPILING_EMULATOR` target properties in the above-mentioned cases. It also silently discards empty items from the values given after `EXTRA_ARGS` for the `gtest_add_tests()` and `gtest_discover_tests()` commands.

The `NEW` behavior of this policy preserves empty list items in the `TEST_LAUNCHER` and `CROSSCOMPILING_EMULATOR` target properties, and in values given after `EXTRA_ARGS` for `gtest_add_tests()` and `gtest_discover_tests()`.

This policy was introduced in CMake version 3.31. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake warns, and uses `OLD` behavior.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.