
#ifndef BOOL_PROP1
#error Expected BOOL_PROP1
#endif

#ifndef BOOL_PROP2
#error Expected BOOL_PROP2
#endif

#ifndef BOOL_PROP3
#error Expected BOOL_PROP3
#endif

#ifndef STRING_PROP1
#error Expected STRING_PROP1
#endif

#ifndef STRING_PROP2
#error Expected STRING_PROP2
#endif

#ifndef STRING_PROP3
#error Expected STRING_PROP3
#endif

template<bool test>
struct CMakeStaticAssert;

template<>
struct CMakeStaticAssert<true> {};

enum {
  NumericMaxTest1 = sizeof(CMakeStaticAssert<NUMBER_MAX_PROP1 == 100>),
  NumericMaxTest2 = sizeof(CMakeStaticAssert<NUMBER_MAX_PROP2 == 250>),
  NumericMinTest1 = sizeof(CMakeStaticAssert<NUMBER_MIN_PROP1 == 50>),
  NumericMinTest2 = sizeof(CMakeStaticAssert<NUMBER_MIN_PROP2 == 200>),
  NumericMinTest3 = sizeof(CMakeStaticAssert<NUMBER_MIN_PROP3 == 0xA>),
  NumericMinTest4 = sizeof(CMakeStaticAssert<NUMBER_MIN_PROP4 == 0x10>)
};

#include "iface2.h"

int foo();
#ifdef _WIN32
__declspec(dllimport)
#endif
int bar();

int main(int argc, char **argv)
{
  Iface2 if2;
  return if2.foo() + foo() + bar();
}
