
#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>),
  NumericMaxTest3 = sizeof(CMakeStaticAssert<NUMBER_MAX_PROP3 == 3>),
  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>),
  NumericMinTest5 = sizeof(CMakeStaticAssert<NUMBER_MIN_PROP5 == 5>)
};

#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();
}
