CMake/Tests/RunCMake/pseudo_emulator_custom_command.c
Brad King e7480d670b Fix custom command target substitution with CROSSCOMPILING_EMULATOR
In commit v3.6.0-rc1~88^2 (CustomCommandGenerator: Add support for
CROSSCOMPILING_EMULATOR, 2016-05-04) logic was introduced to substitute
a target's `CROSSCOMPILING_EMULATOR` for argv0 in a custom command.
However, it broke the case when the argv0 was a target name and now
fails to expand the target name to its location at the same time as
inserting the emulator.  Fix the latter case.

Inspired-by: Brian Maher <brian@brimworks.com>
Closes: #16288
2016-10-28 15:08:03 -04:00

33 lines
894 B
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Usage:
//
// /path/to/program arg1 [arg2 [...]]
//
// Return EXIT_SUCCESS if 'generated_exe_emulator_expected'
// string was found in <arg1>.
// Return EXIT_FAILURE if 'generated_exe_emulator_unexpected'
// string was found in <arg1>.
int main(int argc, const char* argv[])
{
const char* substring_failure = "generated_exe_emulator_unexpected";
// Require a slash to make sure it is a path and not a target name.
const char* substring_success = "/generated_exe_emulator_expected";
const char* str = argv[1];
if (argc < 2) {
return EXIT_FAILURE;
}
if (strstr(str, substring_success) != 0) {
return EXIT_SUCCESS;
}
if (strstr(str, substring_failure) != 0) {
return EXIT_FAILURE;
}
fprintf(stderr, "Failed to find string '%s' in '%s'\n", substring_success,
str);
return EXIT_FAILURE;
}