| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| | |
e48796b KWSys: Fix SystemTools environment memory handling (#13156)
b10c5cb CTest: Simplify environment save/restore
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 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.
|
|
|
|
|
|
| |
Set target property RUNTIME_OUTPUT_DIRECTORY explicitly on ProcessFwd9x
and EncodeExecutable so that we know exactly where the executables will
exist on disk.
|
|
|
|
| |
Remove code left for supporting earlier CMake versions.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
A parent project may now set KWSYS_INSTALL_EXPORT_NAME to specify the
EXPORT name for install(TARGETS) commands.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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!
|
|
|
|
|
| |
Define KWSYS_DO_NOT_CLEAN_PUTENV only for the implementation. It does
not need to be configured in the interface of "Configure.hxx".
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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 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.
|
|
|
|
|
| |
Under -O3 optimization this compiler breaks our testProcess.c source file.
We force -O0 for the file to avoid the problem.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We set CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS in KWSys's CMakeLists.txt file
to enable simpler endif() syntax for CMake 2.4.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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);
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This adds the configured KWSys header files to the library targets that
implement their APIs so that they show up in IDE project files.
|
|
|
|
|
| |
The SystemInformation component of KWSys requires Process and
FundamentalType.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This tests the basic capability of running another executable from the
build tree.
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
the upcoming CMake 2.6 release.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
preprocessor access to a dated version. The 'datestamp' will be updated automatically every day by a script.
|
| |
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|