mirror of
https://github.com/reactos/CMake.git
synced 2024-12-19 01:27:11 +00:00
32410140a7
They can't be used when evaluating link libraries, but they can be used for include directories and compile definitions. Later they can be used for compile options.
105 lines
2.4 KiB
C++
105 lines
2.4 KiB
C++
|
|
#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;
|
|
}
|