diff options
Diffstat (limited to 'Tests/CompileDefinitions/compiletest.cpp')
-rw-r--r-- | Tests/CompileDefinitions/compiletest.cpp | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/Tests/CompileDefinitions/compiletest.cpp b/Tests/CompileDefinitions/compiletest.cpp new file mode 100644 index 0000000..640e7cf --- /dev/null +++ b/Tests/CompileDefinitions/compiletest.cpp @@ -0,0 +1,112 @@ + +#ifndef CMAKE_IS_FUN +#error Expect CMAKE_IS_FUN definition +#endif + +#if CMAKE_IS != Fun +#error Expect CMAKE_IS=Fun definition +#endif + +template <bool test> +struct CMakeStaticAssert; + +template <> +struct CMakeStaticAssert<true> +{ +}; + +static const char fun_string[] = CMAKE_IS_; +#ifndef NO_SPACES_IN_DEFINE_VALUES +static const char very_fun_string[] = CMAKE_IS_REALLY; +#endif + +enum +{ + StringLiteralTest1 = + sizeof(CMakeStaticAssert<sizeof(CMAKE_IS_) == sizeof("Fun")>), +#ifndef NO_SPACES_IN_DEFINE_VALUES + StringLiteralTest2 = + sizeof(CMakeStaticAssert<sizeof(CMAKE_IS_REALLY) == sizeof("Very Fun")>), +#endif +#ifdef TEST_GENERATOR_EXPRESSIONS + StringLiteralTest3 = + sizeof(CMakeStaticAssert<sizeof(LETTER_LIST1) == sizeof("A,B,C,D")>), + StringLiteralTest4 = + sizeof(CMakeStaticAssert<sizeof(LETTER_LIST2) == sizeof("A,,B,,C,,D")>), + StringLiteralTest5 = + sizeof(CMakeStaticAssert<sizeof(LETTER_LIST3) == sizeof("A,-B,-C,-D")>), + StringLiteralTest6 = + sizeof(CMakeStaticAssert<sizeof(LETTER_LIST4) == sizeof("A-,-B-,-C-,-D")>), + StringLiteralTest7 = + sizeof(CMakeStaticAssert<sizeof(LETTER_LIST5) == sizeof("A-,B-,C-,D")>) +#endif +}; + +#ifdef TEST_GENERATOR_EXPRESSIONS +#ifndef CMAKE_IS_DECLARATIVE +#error Expect declarative definition +#endif +#ifdef GE_NOT_DEFINED +#error Expect not defined generator expression +#endif + +#ifndef ARGUMENT +#error Expected define expanded from list +#endif +#ifndef LIST +#error Expected define expanded from list +#endif + +#ifndef PREFIX_DEF1 +#error Expect PREFIX_DEF1 +#endif + +#ifndef PREFIX_DEF2 +#error Expect PREFIX_DEF2 +#endif + +#ifndef LINK_CXX_DEFINE +#error Expected LINK_CXX_DEFINE +#endif +#ifndef LINK_LANGUAGE_IS_CXX +#error Expected LINK_LANGUAGE_IS_CXX +#endif + +#ifdef LINK_C_DEFINE +#error Unexpected LINK_C_DEFINE +#endif +#ifdef LINK_LANGUAGE_IS_C +#error Unexpected LINK_LANGUAGE_IS_C +#endif + +// TEST_GENERATOR_EXPRESSIONS +#endif + +#ifndef BUILD_IS_DEBUG +#error "BUILD_IS_DEBUG not defined!" +#endif +#ifndef BUILD_IS_NOT_DEBUG +#error "BUILD_IS_NOT_DEBUG not defined!" +#endif + +// Check per-config definitions. +#ifdef TEST_CONFIG_DEBUG +#if !BUILD_IS_DEBUG +#error "BUILD_IS_DEBUG false with TEST_CONFIG_DEBUG!" +#endif +#if BUILD_IS_NOT_DEBUG +#error "BUILD_IS_NOT_DEBUG true with TEST_CONFIG_DEBUG!" +#endif +#else +#if BUILD_IS_DEBUG +#error "BUILD_IS_DEBUG true without TEST_CONFIG_DEBUG!" +#endif +#if !BUILD_IS_NOT_DEBUG +#error "BUILD_IS_NOT_DEBUG false without TEST_CONFIG_DEBUG!" +#endif +#endif + +int main(int argc, char** argv) +{ + return 0; +} |