Merge topic 'update-KWIML'

ec358d1 Merge branch 'upstream-kwiml' into update-KWIML
b421c24 KWIML: Avoid MSVC linker warning about not using C++ runtime
5796f88 Merge branch 'upstream-kwiml' into update-KWIML
ae7cf91 KWIML: Teach ABI.h about PGI compiler
aaf3765 Merge branch 'upstream-kwiml' into update-KWIML
9ccd639 KWIML: Ignore _LONGLONG on MS compiler
8be93fc KWIML: Test header inclusion after system headers
This commit is contained in:
David Cole 2011-11-22 16:24:04 -05:00 committed by CMake Topic Stage
commit 7db42fc255
5 changed files with 62 additions and 1 deletions

View File

@ -148,6 +148,8 @@ suppression macro @KWIML@_ABI_NO_VERIFY was defined.
# define @KWIML@_ABI_CHAR_IS_SIGNED 1
# elif defined(_SGI_COMPILER_VERSION) /* SGI MIPSpro default */
# define @KWIML@_ABI_CHAR_IS_UNSIGNED 1
# elif defined(__PGIC__) /* PGI default */
# define @KWIML@_ABI_CHAR_IS_SIGNED 1
# elif defined(_MSC_VER) /* MSVC default */
# define @KWIML@_ABI_CHAR_IS_SIGNED 1
# elif defined(__WATCOMC__) /* Watcom default */
@ -216,7 +218,8 @@ suppression macro @KWIML@_ABI_NO_VERIFY was defined.
# endif
#endif
#if !defined(@KWIML@_ABI_SIZEOF_LONG_LONG)
# if defined(_LONGLONG) /* SGI, some GNU, perhaps others. */
# if defined(_LONGLONG) /* SGI, some GNU, perhaps others. */ \
&& !defined(_MSC_VER)
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
# elif defined(_LONG_LONG) /* IBM XL, perhaps others. */
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
@ -230,6 +233,8 @@ suppression macro @KWIML@_ABI_NO_VERIFY was defined.
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
# elif defined(__HP_cc) || defined(__HP_aCC) /* HP */
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
# elif defined(__PGIC__) /* PGI */
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
# elif defined(__WATCOMC__) /* Watcom */
# define @KWIML@_ABI_SIZEOF_LONG_LONG 8
# elif defined(__INTEL_COMPILER) /* Intel */

View File

@ -35,6 +35,7 @@ if(KWIML_LANGUAGE_C)
list(APPEND test_srcs
test_ABI_C.c
test_INT_C.c
test_include_C.c
)
endif()
if(KWIML_LANGUAGE_CXX)
@ -42,6 +43,7 @@ if(KWIML_LANGUAGE_CXX)
list(APPEND test_srcs
test_ABI_CXX.cxx
test_INT_CXX.cxx
test_include_CXX.cxx
)
endif()

View File

@ -16,6 +16,8 @@ extern int test_ABI_C(void);
extern int test_INT_C(void);
extern int test_ABI_CXX(void);
extern int test_INT_CXX(void);
extern int test_include_C(void);
extern int test_include_CXX(void);
#ifdef __cplusplus
} // extern "C"
#endif
@ -26,10 +28,12 @@ int main(void)
#ifdef KWIML_LANGUAGE_C
result = test_ABI_C() && result;
result = test_INT_C() && result;
result = test_include_C() && result;
#endif
#ifdef KWIML_LANGUAGE_CXX
result = test_ABI_CXX() && result;
result = test_INT_CXX() && result;
result = test_include_CXX() && result;
#endif
return result? 0 : 1;
}

View File

@ -0,0 +1,22 @@
/*============================================================================
Kitware Information Macro Library
Copyright 2010-2011 Kitware, Inc.
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include <stdio.h>
/* Test KWIML header inclusion after above system headers. */
#include "test.h"
#include KWIML_HEADER(ABI.h)
#include KWIML_HEADER(INT.h)
int test_include_C(void)
{
return 1;
}

View File

@ -0,0 +1,28 @@
/*============================================================================
Kitware Information Macro Library
Copyright 2010-2011 Kitware, Inc.
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include <string>
#if defined(_MSC_VER) && defined(NDEBUG)
// Use C++ runtime to avoid linker warning:
// warning LNK4089: all references to 'MSVCP71.dll' discarded by /OPT:REF
std::string test_include_CXX_use_stl_string;
#endif
/* Test KWIML header inclusion after above system headers. */
#include "test.h"
#include KWIML_HEADER(ABI.h)
#include KWIML_HEADER(INT.h)
extern "C" int test_include_CXX(void)
{
return 1;
}