COMP: Added KWSYS_CXX_HAS_CSTDDEF try-compile to KWSys to provide kwsys/cstddef header (to get size_t for hash_fun.hxx).
This commit is contained in:
parent
cc996274f8
commit
bddade9696
@ -178,6 +178,9 @@ ELSE(KWSYS_IOS_USE_SSTREAM)
|
|||||||
ENDIF(KWSYS_IOS_USE_STRSTREAM_H)
|
ENDIF(KWSYS_IOS_USE_STRSTREAM_H)
|
||||||
ENDIF(KWSYS_IOS_USE_SSTREAM)
|
ENDIF(KWSYS_IOS_USE_SSTREAM)
|
||||||
|
|
||||||
|
KWSYS_PLATFORM_CXX_TEST(KWSYS_CXX_HAS_CSTDDEF
|
||||||
|
"Checking whether header cstddef is available" DIRECT)
|
||||||
|
|
||||||
SET(KWSYS_PLATFORM_CXX_TEST_DEFINES
|
SET(KWSYS_PLATFORM_CXX_TEST_DEFINES
|
||||||
-DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD})
|
-DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD})
|
||||||
KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_STRING_HAVE_NEQ_CHAR
|
KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_STRING_HAVE_NEQ_CHAR
|
||||||
@ -294,6 +297,11 @@ FOREACH(header algorithm deque iterator list map numeric queue set stack string
|
|||||||
ENDIF(KWSYS_HEADER_INSTALL_DIR)
|
ENDIF(KWSYS_HEADER_INSTALL_DIR)
|
||||||
ENDFOREACH(header)
|
ENDFOREACH(header)
|
||||||
|
|
||||||
|
# Provide cstddef header.
|
||||||
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_cstddef.hxx.in
|
||||||
|
${KWSYS_HEADER_DIR}/cstddef
|
||||||
|
@ONLY IMMEDIATE)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Create streams header wrappers to give standard names by which they
|
# Create streams header wrappers to give standard names by which they
|
||||||
# may be included.
|
# may be included.
|
||||||
|
@ -63,6 +63,9 @@
|
|||||||
# define @KWSYS_NAMESPACE@_ios @KWSYS_NAMESPACE@_ios
|
# define @KWSYS_NAMESPACE@_ios @KWSYS_NAMESPACE@_ios
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Whether the cstddef header is available. */
|
||||||
|
#define @KWSYS_NAMESPACE@_CXX_HAS_CSTDDEF @KWSYS_CXX_HAS_CSTDDEF@
|
||||||
|
|
||||||
/* Whether the compiler supports null template arguments. */
|
/* Whether the compiler supports null template arguments. */
|
||||||
#define @KWSYS_NAMESPACE@_CXX_HAS_NULL_TEMPLATE_ARGS @KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS@
|
#define @KWSYS_NAMESPACE@_CXX_HAS_NULL_TEMPLATE_ARGS @KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS@
|
||||||
|
|
||||||
@ -133,6 +136,7 @@
|
|||||||
# define KWSYS_IOS_USE_STRSTREAM_H @KWSYS_NAMESPACE@_IOS_USE_STRSTREAM_H
|
# define KWSYS_IOS_USE_STRSTREAM_H @KWSYS_NAMESPACE@_IOS_USE_STRSTREAM_H
|
||||||
# define KWSYS_IOS_USE_STRSTREA_H @KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H
|
# define KWSYS_IOS_USE_STRSTREA_H @KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H
|
||||||
# define KWSYS_STAT_HAS_ST_MTIM @KWSYS_NAMESPACE@_STAT_HAS_ST_MTIM
|
# define KWSYS_STAT_HAS_ST_MTIM @KWSYS_NAMESPACE@_STAT_HAS_ST_MTIM
|
||||||
|
# define KWSYS_CXX_HAS_CSTDDEF @KWSYS_NAMESPACE@_CXX_HAS_CSTDDEF
|
||||||
# define KWSYS_STL_STRING_HAVE_OSTREAM @KWSYS_NAMESPACE@_STL_STRING_HAVE_OSTREAM
|
# define KWSYS_STL_STRING_HAVE_OSTREAM @KWSYS_NAMESPACE@_STL_STRING_HAVE_OSTREAM
|
||||||
# define KWSYS_STL_STRING_HAVE_ISTREAM @KWSYS_NAMESPACE@_STL_STRING_HAVE_ISTREAM
|
# define KWSYS_STL_STRING_HAVE_ISTREAM @KWSYS_NAMESPACE@_STL_STRING_HAVE_ISTREAM
|
||||||
# define KWSYS_STL_STRING_HAVE_NEQ_CHAR @KWSYS_NAMESPACE@_STL_STRING_HAVE_NEQ_CHAR
|
# define KWSYS_STL_STRING_HAVE_NEQ_CHAR @KWSYS_NAMESPACE@_STL_STRING_HAVE_NEQ_CHAR
|
||||||
|
@ -41,6 +41,8 @@
|
|||||||
|
|
||||||
#include <@KWSYS_NAMESPACE@/Configure.hxx>
|
#include <@KWSYS_NAMESPACE@/Configure.hxx>
|
||||||
|
|
||||||
|
#include <@KWSYS_NAMESPACE@/cstddef> // size_t
|
||||||
|
|
||||||
namespace @KWSYS_NAMESPACE@
|
namespace @KWSYS_NAMESPACE@
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include <@KWSYS_NAMESPACE@/Configure.hxx>
|
#include <@KWSYS_NAMESPACE@/Configure.hxx>
|
||||||
|
|
||||||
|
#include <@KWSYS_NAMESPACE@/cstddef> // size_t
|
||||||
#include <@KWSYS_NAMESPACE@/stl/algorithm> // lower_bound
|
#include <@KWSYS_NAMESPACE@/stl/algorithm> // lower_bound
|
||||||
#include <@KWSYS_NAMESPACE@/stl/functional> // unary_function
|
#include <@KWSYS_NAMESPACE@/stl/functional> // unary_function
|
||||||
#include <@KWSYS_NAMESPACE@/stl/iterator> // iterator_traits
|
#include <@KWSYS_NAMESPACE@/stl/iterator> // iterator_traits
|
||||||
|
@ -59,6 +59,12 @@ bool f(const kwsys_stl::string& s) { return s != ""; }
|
|||||||
int main() { return 0; }
|
int main() { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef TEST_KWSYS_CXX_HAS_CSTDDEF
|
||||||
|
#include <cstddef>
|
||||||
|
void f(size_t) {}
|
||||||
|
int main() { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS
|
#ifdef TEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS
|
||||||
template <class T> class A;
|
template <class T> class A;
|
||||||
template <class T> int f(A<T>&);
|
template <class T> int f(A<T>&);
|
||||||
|
37
Source/kwsys/kwsys_cstddef.hxx.in
Normal file
37
Source/kwsys/kwsys_cstddef.hxx.in
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*=========================================================================
|
||||||
|
|
||||||
|
Program: KWSys - Kitware System Library
|
||||||
|
Module: $RCSfile$
|
||||||
|
|
||||||
|
Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
|
||||||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||||||
|
|
||||||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the above copyright notices for more information.
|
||||||
|
|
||||||
|
=========================================================================*/
|
||||||
|
#ifndef @KWSYS_NAMESPACE@_cstddef
|
||||||
|
#define @KWSYS_NAMESPACE@_cstddef
|
||||||
|
|
||||||
|
#include <@KWSYS_NAMESPACE@/Configure.hxx>
|
||||||
|
|
||||||
|
/* Avoid warnings in MSVC standard headers. */
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
# pragma warning (push, 1)
|
||||||
|
# pragma warning (disable: 4702)
|
||||||
|
# pragma warning (disable: 4786)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Include the real header. */
|
||||||
|
#if @KWSYS_NAMESPACE@_CXX_HAS_CSTDDEF
|
||||||
|
# include <cstddef>
|
||||||
|
#else
|
||||||
|
# include <stddef.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
# pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
11
bootstrap
11
bootstrap
@ -209,6 +209,7 @@ cmake_kwsys_config_replace_string ()
|
|||||||
s/@KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE@/${KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE}/g;
|
s/@KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE@/${KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE}/g;
|
||||||
s/@KWSYS_STL_HAS_ALLOCATOR_REBIND@/${KWSYS_STL_HAS_ALLOCATOR_REBIND}/g;
|
s/@KWSYS_STL_HAS_ALLOCATOR_REBIND@/${KWSYS_STL_HAS_ALLOCATOR_REBIND}/g;
|
||||||
s/@KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT@/${KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT}/g;
|
s/@KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT@/${KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT}/g;
|
||||||
|
s/@KWSYS_CXX_HAS_CSTDDEF@/${KWSYS_CXX_HAS_CSTDDEF}/g;
|
||||||
s/@KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS@/${KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS}/g;
|
s/@KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS@/${KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS}/g;
|
||||||
s/@KWSYS_CXX_HAS_MEMBER_TEMPLATES@/${KWSYS_CXX_HAS_MEMBER_TEMPLATES}/g;
|
s/@KWSYS_CXX_HAS_MEMBER_TEMPLATES@/${KWSYS_CXX_HAS_MEMBER_TEMPLATES}/g;
|
||||||
s/@KWSYS_CXX_HAS_FULL_SPECIALIZATION@/${KWSYS_CXX_HAS_FULL_SPECIALIZATION}/g;
|
s/@KWSYS_CXX_HAS_FULL_SPECIALIZATION@/${KWSYS_CXX_HAS_FULL_SPECIALIZATION}/g;
|
||||||
@ -727,6 +728,7 @@ KWSYS_STL_HAS___ITERATOR_CATEGORY=0
|
|||||||
KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE=0
|
KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE=0
|
||||||
KWSYS_STL_HAS_ALLOCATOR_REBIND=0
|
KWSYS_STL_HAS_ALLOCATOR_REBIND=0
|
||||||
KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT=0
|
KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT=0
|
||||||
|
KWSYS_CXX_HAS_CSTDDEF=0
|
||||||
KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS=0
|
KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS=0
|
||||||
KWSYS_CXX_HAS_MEMBER_TEMPLATES=0
|
KWSYS_CXX_HAS_MEMBER_TEMPLATES=0
|
||||||
KWSYS_CXX_HAS_FULL_SPECIALIZATION=0
|
KWSYS_CXX_HAS_FULL_SPECIALIZATION=0
|
||||||
@ -862,6 +864,15 @@ if [ "x${KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE}" = "x0" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if cmake_try_run "${cmake_cxx_compiler}" \
|
||||||
|
"${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_CSTDDEF" \
|
||||||
|
"${cmake_source_dir}/Source/kwsys/kwsysPlatformCxxTests.cxx" >> cmake_bootstrap.log 2>&1; then
|
||||||
|
KWSYS_CXX_HAS_CSTDDEF=1
|
||||||
|
echo "${cmake_cxx_compiler} has header cstddef"
|
||||||
|
else
|
||||||
|
echo "${cmake_cxx_compiler} does not have header cstddef"
|
||||||
|
fi
|
||||||
|
|
||||||
if cmake_try_run "${cmake_cxx_compiler}" \
|
if cmake_try_run "${cmake_cxx_compiler}" \
|
||||||
"${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS" \
|
"${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS" \
|
||||||
"${cmake_source_dir}/Source/kwsys/kwsysPlatformCxxTests.cxx" >> cmake_bootstrap.log 2>&1; then
|
"${cmake_source_dir}/Source/kwsys/kwsysPlatformCxxTests.cxx" >> cmake_bootstrap.log 2>&1; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user