summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'upstream-kwsys' into import-KWSys-subtreeBrad King2012-10-311-4/+61
|
* Merge branch 'upstream-kwsys' into import-KWSys-subtreeBrad King2012-10-011-4/+36
|
* KWSys: Remove dependencies on FundamentalTypeBrad King2012-05-021-31/+39
| | | | | | | | | The hash_fun.hxx header is configured whether FundamentalType is enabled or not and so cannot depend on it. Run the relevant platform tests whether or not FundamentalType is on and configure the result directly into hash_fun. While at it, remove the dependence of SystemInformation on FundamentalType too since it needs only information that we now always compute.
* Merge topic 'kwsys-environ-cleanup'David Cole2012-05-011-4/+9
|\ | | | | | | | | | | e48796b KWSys: Fix SystemTools environment memory handling (#13156) b10c5cb CTest: Simplify environment save/restore
| * KWSys: Fix SystemTools environment memory handling (#13156)Brad King2012-04-271-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SystemTools::PutEnv function tries to provide the "putenv" API without leaking memory. However, the kwsysDeletingCharVector singleton frees memory that may still be referenced by the environment table, having been placed there by putenv. If any static destruction or processing by an external tool happens after the singleton is destroyed and accesses the environment it will read invalid memory. Replace use of putenv with setenv/unsetenv when available. The latter manage internal copies of the values passed instead of referencing the original memory. When setenv/unsetenv are not available use putenv with a singleton that removes its values from the environment before freeing their memory. This requires an "unputenv" implementation. On at least some platforms it must be written in terms of "putenv" because other APIs are not available and direct modification of the "environ" global is not safe (e.g. on Windows there is interaction with "wenviron"). Fortunately either putenv("A=") or putenv("A") will remove "A" from the environment on these platforms. On other platforms fall back to direct manipulation of "environ". Also add UnPutEnv to the API and add a test for the behavior of both.
* | KWSys: Remove DateStampBrad King2012-04-251-2/+1
|/ | | | | | | | | KWSys is no longer shared in projects via a server-side directory symlink in CVS. An automated nightly date stamp commit can no longer be shared by multiple projects directly. It needs a per-project replay robot so the nightly commits end up needing N+1 robots instead of N. Remove the DateStamp feature because it is no longer useful or maintained by nightly commits.
* KWSys: Do not trust EXECUTABLE_OUTPUT_PATH for ProcessFwd9x encodingBrad King2011-03-231-8/+4
| | | | | | Set target property RUNTIME_OUTPUT_DIRECTORY explicitly on ProcessFwd9x and EncodeExecutable so that we know exactly where the executables will exist on disk.
* KWSys: Require at least CMake 2.6.3Brad King2011-03-011-196/+90
| | | | Remove code left for supporting earlier CMake versions.
* KWSys: Use EXPORT name only if installing libraryBrad King2010-12-141-3/+3
| | | | | 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.
* KWSys: Associate installed library with an EXPORTBrad King2010-12-011-0/+5
| | | | | A parent project may now set KWSYS_INSTALL_EXPORT_NAME to specify the EXPORT name for install(TARGETS) commands.
* KWSys: Optionally suppress consistent test failuresBrad King2010-06-301-0/+6
| | | | | | 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.
* KWSys: Use short fallback timeout for Process testsBrad King2010-06-301-0/+1
| | | | | | 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.
* KWSys: Pass ptrdiff_t check result to System.cBrad King2010-06-291-9/+8
| | | | | | 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!
* KWSys: Cleanup putenv leak option implementationBrad King2010-06-291-6/+9
| | | | | Define KWSYS_DO_NOT_CLEAN_PUTENV only for the implementation. It does not need to be configured in the interface of "Configure.hxx".
* KWSys: Configure DynamicLoader library prefix/suffixBrad King2010-06-101-0/+8
| | | | | | | | 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.
* KWSys: Build tests after librariesBrad King2009-12-151-0/+2
| | | | | | | | | | 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.
* KWSys: Remove default exe output pathBrad King2009-12-081-7/+0
| | | | | | 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.
* KWSys: Work-around llvm-gcc-4.2 optimizer bugBrad King2009-11-231-0/+5
| | | | | Under -O3 optimization this compiler breaks our testProcess.c source file. We force -O0 for the file to avoid the problem.
* KWSys: Set CMP0003 to NEWBrad King2009-11-201-5/+3
| | | | | | 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.
* Fix KWSys FundamentalType for Universal BinariesBrad King2009-11-201-13/+48
| | | | | | | | | | | | | | 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.
* Check for 'long long' without computing sizeBrad King2009-11-201-4/+5
| | | | | | | 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.
* Enable loose loop constructs in KWSysBrad King2009-11-201-1/+5
| | | | | We set CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS in KWSys's CMakeLists.txt file to enable simpler endif() syntax for CMake 2.4.
* Convert KWSys to OSI-approved BSD LicenseBrad King2009-09-281-9/+7
| | | | | | | 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.
* Install KWSys Copyright.txt as documentationBrad King2009-09-281-0/+18
| | | | | | | | | | | | 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.
* Can not use cmakedefine in kwsys because bootstrap of cmake does not support it.Bill Hoffman2009-09-221-1/+6
|
* Define kwsys_ios_binary macro for std::ios::binaryBrad King2009-08-311-0/+5
| | | | | | | | 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);
* BUG: Enable large files only if <cstdio> worksBrad King2009-07-271-0/+5
| | | | | | | | | | | 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.
* COMP: Avoid String.c inclusion by Compaq templatesBrad King2009-06-101-0/+6
| | | | | | | | 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.
* ENH: Optionally label KWSys targets and testsBrad King2009-02-131-0/+23
| | | | | 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.
* ENH: Add KWSys header files to library targetsBrad King2009-02-131-0/+3
| | | | | This adds the configured KWSys header files to the library targets that implement their APIs so that they show up in IDE project files.
* BUG: Fix KWSys SystemInformation dependenciesBrad King2008-10-171-0/+4
| | | | | The SystemInformation component of KWSys requires Process and FundamentalType.
* BUG: Enforce KWSys component dependencies earlyBrad King2008-10-171-14/+14
| | | | | | 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.
* ENH: Add test for KWSys SharedForwardBrad King2008-09-261-0/+7
| | | | | This tests the basic capability of running another executable from the build tree.
* ENH: In KWSys set the IMPLICIT_DEPENDS_INCLUDE_TRANSFORM property.Brad King2008-05-141-0/+8
| | | | | | | - 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.
* ENH: Set CMake Policy CMP0003 to NEW behavior to build without warnings with ↵Brad King2008-03-171-0/+6
| | | | the upcoming CMake 2.6 release.
* ENH: Added CPU.h to KWSys to identify the target CPU and its byte order.Brad King2008-02-271-1/+4
|
* BUG: Need to install cstddef header.Brad King2008-01-311-0/+9
|
* ENH: enhancements for cdash, include system information and better time entriesBill Hoffman2008-01-301-2/+2
|
* ENH: turn off for nowBill Hoffman2008-01-081-1/+1
|
* ENH: fix leaks and turn on by defaultBill Hoffman2008-01-081-1/+1
|
* ENH: add missing fileBill Hoffman2008-01-081-1/+3
|
* ENH: add new system information class for use in ctestBill Hoffman2008-01-081-2/+7
|
* ENH: Added C String utilities to KWSys. Implemented strcasecmp and strncasecmp.Brad King2007-12-111-2/+3
|
* BUG: Fixed typo in previous commit.Brad King2007-11-121-4/+4
|
* ENH: Adding DateStamp feature to KWSys. This provides a header file giving ↵Brad King2007-11-121-1/+14
| | | | preprocessor access to a dated version. The 'datestamp' will be updated automatically every day by a script.
* ENH: fix failing test when valgrind is onBill Hoffman2007-09-191-1/+1
|
* COMP: Second try getting rid of Microsoft deprecation warnings. This time ↵David Cole2007-08-151-9/+0
| | | | 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.
* COMP: Skip testAutoPtr and testHashSTL on Watcom. They are hopeless.Brad King2007-04-191-3/+7
|
* ENH: Fixed stl string streaming operators for Watcom.Brad King2007-04-191-3/+3
|
* ENH: Added MD5 implementation to KWSys.Brad King2007-03-141-2/+4
|