mirror of
https://github.com/reactos/CMake.git
synced 2024-12-14 23:29:57 +00:00
e7480d670b
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
33 lines
894 B
C
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;
|
|
}
|