#include <cstdio>
#include <cstdlib>

// This file is instantiated by CMake.
// DEFINITIONS below is replaced with a set of lines like so:
//   #ifdef __SSE2__
//     "SSE2",
//   #endif
//
// This allows for introspection of compiler definitions.
// The output of the program is a single line of semi colon separated feature
// names.

// MSVC is using a different set of preprocessor definitions for 
// SSE and SSE2, see _M_IX86_FP in
// https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros

int main(int, char **) {
  const char *strings[] = {
      @DEFINITIONS@
      // If DEFINITIONS turns out to be empty, we don't want to list
      // an empty array. So, we add an end of list marker.
      "<end_of_feature_list>"
  };
  const size_t size = sizeof(strings) / sizeof(strings[0]);
  for (size_t i = 0; i < size; ++i) {
    if (i)
      putchar(';');
    fputs(strings[i], stdout);
  }
  return EXIT_SUCCESS;
}
