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