Commit Graph

164 Commits

Author SHA1 Message Date
Brad King ffac70b528 KWSys: Use EXPORT name only if installing library
Do not set KWSYS_INSTALL_LIBRARY_RULE just because the parent project set
KWSYS_INSTALL_EXPORT_NAME.  Require KWSYS_INSTALL_LIB_DIR to be set too.
2010-12-14 13:30:03 -05:00
Brad King f9abda2db4 KWSys: Associate installed library with an EXPORT
A parent project may now set KWSYS_INSTALL_EXPORT_NAME to specify the
EXPORT name for install(TARGETS) commands.
2010-12-01 16:10:02 -05:00
Brad King 3b26fa13c4 KWSys: Optionally suppress consistent test failures
Add option KWSYS_TEST_BOGUS_FAILURES that can be set by a containing
project or in the CMake cache to list tests known to fail consistently
on a buggy system.
2010-06-30 11:42:08 -04:00
Brad King b84220b287 KWSys: Use short fallback timeout for Process tests
If any of the KWSys Process tests take more than a minute or two then
something is wrong.  There is no need to wait for a long default
timeout.
2010-06-30 11:41:59 -04:00
Brad King 5c16024fbb KWSys: Pass ptrdiff_t check result to System.c
Since commit "Provide unix-sytle command line parsing" (2009-07-13) the
reference to KWSYS_C_HAS_PTRDIFF_T in System.c has been meaningless
because the macro was never passed to the compiler!
2010-06-29 08:50:03 -04:00
Brad King d2222d529d KWSys: Cleanup putenv leak option implementation
Define KWSYS_DO_NOT_CLEAN_PUTENV only for the implementation.  It does
not need to be configured in the interface of "Configure.hxx".
2010-06-29 08:50:03 -04:00
Brad King 3f92947524 KWSys: Configure DynamicLoader library prefix/suffix
The DynamicLoader::LibPrefix and DynamicLoader::LibExtension methods
previously hard-coded the module name components for each platform.  Set
them from the CMAKE_SHARED_MODULE_PREFIX and CMAKE_SHARED_MODULE_SUFFIX
CMake variables instead.  This ensures consistency in a program that
uses these methods to construct the file names for its own modules.
2010-06-10 09:26:32 -04:00
Brad King 357096d35a KWSys: Build tests after libraries
The TestSharedForward executable and TestDynload module do not actually
link to a KWSys library, but it is nice to build them after the
libraries just like all other test binaries.

This also works around a universal binary bug in Xcode 2.x.  It forgets
to create the output directory for the executable before linking it.  We
avoid the problem by putting the library in the directory first.
2009-12-15 14:15:27 -05:00
Brad King 15316c12f5 KWSys: Remove default exe output path
KWSys should not set variables outside its namespace.  It can honor the
EXECUTABLE_OUTPUT_PATH set by a host project, but tere is no need for it
to set a default in the host project cache.
2009-12-08 11:27:22 -05:00
Brad King 574902fef2 KWSys: Work-around llvm-gcc-4.2 optimizer bug
Under -O3 optimization this compiler breaks our testProcess.c source file.
We force -O0 for the file to avoid the problem.
2009-11-23 15:31:29 -05:00
Brad King 9ec851bc90 KWSys: Set CMP0003 to NEW
The commit "Enable loose loop constructs in KWSys" set the minimum
required CMake version to 2.4.5.  This regressed the setting of CMP0003,
so we restore it in this commit.
2009-11-20 12:04:08 -05:00
Brad King bbbdf54a35 Fix KWSys FundamentalType for Universal Binaries
The FundamentalType header needs to know type sizes at preprocessing
time.  This commit teaches it to avoid using CHECK_TYPE_SIZE because the
macro does not work for types whose size varies across architectuers in
Mac OS X universal binaries.  Fortunately the Mac compilers provide just
enough information to detect the needed type sizes during preprocessing.

We now use preprocessor macros instead of configuration tests whenever
they are available.  As a side effect this reduces the number of
try-compiles needed with GCC.

See issue #9913.
2009-11-20 08:38:18 -05:00
Brad King 2d80c9e31a Check for 'long long' without computing size
In KWSys IOStream we need to detect whether 'long long' exists but we do
not need its size.  We avoid using CHECK_TYPE_SIZE because it does not
work for types whose size varies across architectuers in Mac OS X
universal binaries.  See issue #9913.
2009-11-20 08:37:33 -05:00
Brad King 2a789187fc Enable loose loop constructs in KWSys
We set CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS in KWSys's CMakeLists.txt file
to enable simpler endif() syntax for CMake 2.4.
2009-11-20 08:37:10 -05:00
Brad King de955e4b6d Convert KWSys to OSI-approved BSD License
This converts the KWSys license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the KWSys copyright to
cover the full development time range.
2009-09-28 11:37:35 -04:00
Brad King 832f0a88f0 Install KWSys Copyright.txt as documentation
This commit adds KWSys configuration option KWSYS_INSTALL_DOC_DIR to
specify the directory for installation of documentation.  We use it to
put the KWSys Copyright.txt file at the location

  ${KWSYS_INSTALL_DOC_DIR}/${KWSYS_NAMESPACE}/Copyright.txt

in the project installation tree.  This helps containing projects meet
the license requirement to distribute the copyright and license with
binary forms.
2009-09-28 11:36:54 -04:00
Bill Hoffman 472966ed5f Can not use cmakedefine in kwsys because bootstrap of cmake does not support it. 2009-09-22 15:58:13 -04:00
Brad King 207aab6acf Define kwsys_ios_binary macro for std::ios::binary
The 'binary' openmode does not exist on all compilers.  We define macro
<kwsys>_ios_binary, where <kwsys> is the KWSys namespace, to refer to
std::ios::binary if it exists and 0 otherwise.  Sample usage:

  kwsys_ios::ifstream fin(fn, kwsys_ios::ios::in | kwsys_ios_binary);
2009-08-31 13:00:55 -04:00
Brad King cf1225b9af BUG: Enable large files only if <cstdio> works
Some AIX/gcc version combinations the <cstdio> header breaks when large
file support is enabled.  See this GCC issue for details:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20366

We work around the problem by enhancing the configuration check for
large file support to include <cstdio> when available.  This will cause
LFS to be disabled when the above problem occurs.
2009-07-27 16:45:15 -04:00
Brad King 776e21d1c7 COMP: Avoid String.c inclusion by Compaq templates
The Compaq compiler (on VMS) includes 'String.c' in source files that
use the stl string while looking for template definitions.  This was the
true cause of double-inclusion of the 'kwsysPrivate.h' header.  We work
around the problem by conditionally compiling the entire source file on
a condition only true when really building the source.
2009-06-10 11:46:06 -04:00
Brad King b44026f74a ENH: Optionally label KWSys targets and tests
This provides an API for parent projects to use to specify values to be
set in the LABELS properties of KWSys libraries, executables, and tests.
2009-02-13 15:49:52 -05:00
Brad King 6d8b207867 ENH: Add KWSys header files to library targets
This adds the configured KWSys header files to the library targets that
implement their APIs so that they show up in IDE project files.
2009-02-13 15:49:47 -05:00
Brad King 1c70745c62 BUG: Fix KWSys SystemInformation dependencies
The SystemInformation component of KWSys requires Process and
FundamentalType.
2008-10-17 12:52:03 -04:00
Brad King 32be27c6de BUG: Enforce KWSys component dependencies early
KWSys component dependencies must be enforced before any tests for
enabled components are done.  This moves the dependency enforcement code
to be as early as possible.
2008-10-17 12:51:57 -04:00
Brad King d82f98f8b1 ENH: Add test for KWSys SharedForward
This tests the basic capability of running another executable from the
build tree.
2008-09-26 08:24:31 -04:00
Brad King 6a906befae ENH: In KWSys set the IMPLICIT_DEPENDS_INCLUDE_TRANSFORM property.
- Tells CMake about the KWSYS_HEADER macro.
  - Enables implicit dependencies of private source files.
  - When a CMake new enough to support the property is required
    the "#if 0" hack can be removed from the source files.
2008-05-14 11:55:41 -04:00
Brad King 33c84b50e9 ENH: Set CMake Policy CMP0003 to NEW behavior to build without warnings with the upcoming CMake 2.6 release. 2008-03-17 16:22:28 -04:00
Brad King 4a40fe43e3 ENH: Added CPU.h to KWSys to identify the target CPU and its byte order. 2008-02-27 16:07:14 -05:00
Brad King 82d8264b9f BUG: Need to install cstddef header. 2008-01-31 12:56:18 -05:00
Bill Hoffman c4093afc52 ENH: enhancements for cdash, include system information and better time entries 2008-01-30 11:17:36 -05:00
Bill Hoffman b9a54d392e ENH: turn off for now 2008-01-08 16:28:46 -05:00
Bill Hoffman 50c5d5a3d5 ENH: fix leaks and turn on by default 2008-01-08 14:59:57 -05:00
Bill Hoffman 66fff9d4b7 ENH: add missing file 2008-01-08 11:43:07 -05:00
Bill Hoffman c87853430e ENH: add new system information class for use in ctest 2008-01-08 11:38:28 -05:00
Brad King b0078fd3b4 ENH: Added C String utilities to KWSys. Implemented strcasecmp and strncasecmp. 2007-12-11 11:36:57 -05:00
Brad King f97dddf0ee BUG: Fixed typo in previous commit. 2007-11-12 17:38:15 -05:00
Brad King f8a5d485a0 ENH: Adding DateStamp feature to KWSys. This provides a header file giving preprocessor access to a dated version. The 'datestamp' will be updated automatically every day by a script. 2007-11-12 17:34:14 -05:00
Bill Hoffman 797db515a0 ENH: fix failing test when valgrind is on 2007-09-19 11:16:57 -04:00
David Cole f1115a30ee COMP: Second try getting rid of Microsoft deprecation warnings. This time tested from KWStyle with vs8 to make sure the warnings are really gone. Remove the deprecation defs from CMakeLists and guard the defs in the header so we do not redefine them if they are already defined. 2007-08-15 11:38:13 -04:00
Brad King d5cb9b1a0d COMP: Skip testAutoPtr and testHashSTL on Watcom. They are hopeless. 2007-04-19 12:11:56 -04:00
Brad King 28f6b148f6 ENH: Fixed stl string streaming operators for Watcom. 2007-04-19 11:21:35 -04:00
Brad King 6d2f08b6e1 ENH: Added MD5 implementation to KWSys. 2007-03-14 15:12:10 -04:00
Brad King 091eafefb3 COMP: All kwsys .hxx headers should include Configure.hxx. Re-enabling testAutoPtr. 2007-03-03 15:43:31 -05:00
Brad King 55abd50681 COMP: Disable auto_ptr test for now. 2007-03-03 15:32:00 -05:00
Brad King 3fcec9daa4 ENH: Added test for auto_ptr. Documented aut_ptr template implementation. 2007-03-03 14:48:48 -05:00
Brad King 0edbb68352 ENH: Cleaned up KWSys tests to use test drivers. 2007-03-03 10:47:06 -05:00
Brad King 53c72ed6c3 COMP: Disable LFS on AIX. 2007-02-21 13:33:19 -05:00
Brad King 52803bc8af BUG: Added use of KWSYS_INSTALL_COMPONENT_NAME_DEVELOPMENT for header file install rules. 2007-01-26 14:26:44 -05:00
Mathieu Malaterre b9787a965f BUG: revert yesterday patch. The implementation was correct. The problem was that _WIN32 was forced to be #define on cygwin when included from ITK, which was miss matching the implementation from the declaration. Put extra condition for CYGWIN system 2006-12-09 11:25:25 -05:00
Mathieu Malaterre 458fa7559b BUG: Make sure to use the Win32 interface (HINSTANCE) for handling shared lib on cygwin and mingw system 2006-12-08 15:52:30 -05:00