Commit Graph

312 Commits

Author SHA1 Message Date
Alex Neundorf
80112da54e Merge topic 'AutomocUseTargetProperties' into export-sets
Conflicts:
	Source/cmGlobalGenerator.h
2012-09-30 10:27:44 -04:00
Brad King
103d99338a Merge topic 'generator-expression-target-properties'
083de7e Process generator expressions in the COMPILE_DEFINITIONS target property.
08cb4fa Process generator expressions in the INCLUDE_DIRECTORIES property.
0ef091d Early return if there is no target.
eb250cd Add a self-reference check for target properties.
7e80747 Add API to check that dependent target properties form a DAG.
239ac84 Add a generator expression for target properties.
e028381 Extend the generator expression language with more logic.
b8e61d6 Refactor GetCompileDefinitions a bit.
2c2b25b Return a std::string from GetCompileDefinitions.
b7e48e0 Add an AppendDefines std::string overload.
9a16087 Convert paths in INCLUDE_DIRECTORIES property to Unix slashes.
4557c8d Don't prepend a path before generator expressions in include_directories.
c6abc41 Add include guard for cmGeneratorExpression.
0ff4e3f Port remaining code to GetCompileDefinitions().
f178d53 Fix indentation in the code blocks generator.
2012-09-28 17:15:03 -04:00
Yury G. Kudryashov
5c898fbd99 exports: Add cmExportSetMap class
This is a map<string, cmExportSet *> with overloaded operator[] and destructor.
2012-09-28 09:21:39 -04:00
Yury G. Kudryashov
d13ec1ac31 exports: Create class cmExportSet
Replace direct use of 'std::vector<cmTargetExport const*>' with a
dedicated class.
2012-09-28 09:21:39 -04:00
Stephen Kelly
7e807472d2 Add API to check that dependent target properties form a DAG.
Initially this will only be used to check for self-references, but
can be extended to check for cycles when chaining properties of other
targets.
2012-09-28 08:49:21 -04:00
Brad King
a1c032b994 bootstrap: Suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot
In order to bootstrap on OS X with Xcode without the command line tools
one must add -isysroot to CFLAGS and CXXFLAGS.  In this case the flags
will make it into the configured CMake.  Set CMAKE_OSX_SYSROOT to empty
in the initial cache to prevent CMake from adding -isysroot again.
2012-09-21 10:06:00 -04:00
Stephen Kelly
f1eacf0e07 cmGeneratorExpression: Re-write for multi-stage evaluation
The expressions may be parsed and then cached and evaluated multiple
times.  They are evaluated lazily so that literals such as ',' can be
treated as universal parameter separators, and can be processed from
results without appearing literally, and without interfering with the
parsing/evaluation of the entire expression.
2012-09-18 17:02:23 -04:00
Brad King
7195aca54f Make platform information files specific to the CMake version
At the top of a build tree we configure inside the CMakeFiles directory
files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to
save information detected about the system and compilers in use.  The
method of detection and the exact results store varies across CMake
versions as things improve.  This leads to problems when loading files
configured by a different version of CMake.  Previously we ignored such
existing files only if the major.minor part of the CMake version
component changed, and depended on the CMakeCache.txt to tell us the
last version of CMake that wrote the files.  This led to problems if the
user deletes the CMakeCache.txt or we add required information to the
files in a patch-level release of CMake (still a "feature point" release
by modern CMake versioning convention).

Ensure that we always have version-consistent platform information files
by storing them in a subdirectory named with the CMake version.  Every
version of CMake will do its own system and compiler identification
checks even when a build tree has already been configured by another
version of CMake.  Stored results will not clobber those from other
versions of CMake which may be run again on the same tree in the future.
Loaded results will match what the system and language modules expect.

Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to
CMAKE_PLATFORM_INFO_DIR to clarify its purpose.  The new variable points
at the version-specific directory while the old variable did not.
2012-08-24 10:52:23 -04:00
Kitware Robot
77543bde41 Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code:

cmake --help-command-list |
grep -v "cmake version" |
while read c; do
    echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
2012-08-13 14:19:16 -04:00
Peter Kümmel
9f7dc83917 Ninja: also bootstrap ninja files 2012-07-20 11:08:36 +02:00
Nicolas Despres
a1b803349b Re-factor OS X bundle and framework generation. 2012-07-17 14:03:07 +02:00
Nicolas Despres
3ba74ad9d5 Remove trailing white-spaces. 2012-07-17 14:03:06 +02:00
David Cole
73cb20187c Merge topic 'bootstrap-old-sh'
e5dc768 bootstrap: Port back to old shells (#13199)
2012-05-29 15:36:47 -04:00
Brad King
e5dc76894a bootstrap: Port back to old shells (#13199)
Since commit f39e82c9 (bootstrap: Re-implement command line option
processing, 2011-12-16) bootstrap uses POSIX shell expressions of the
form "${x#y}" to remove prefix pattern 'y' from the vaule of 'x'.
Although this is allowed by POSIX old shells on some platforms do not
support it.  Revert to using 'sed' to work with old shells.
2012-05-08 09:52:39 -04:00
Brad King
e48796b26b KWSys: Fix SystemTools environment memory handling (#13156)
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.
2012-04-27 08:13:52 -04:00
Brad King
0c7029c642 Refactor CMake version handling
Move the CMake version number components out of "CMakeLists.txt" into
dedicated file "Source/CMakeVersion.cmake".  Set the TWEAK level to the
date explicitly.  Add a "Source/CMakeVersion.bash" script to update the
date, thus replacing KWSys DateStamp for CMake.  Teach the bootstrap
script to extract the version components from their new location.
2012-04-20 11:25:55 -04:00
Brad King
11d9b21126 Add cmGeneratorTarget to represent a target during generation
Some per-target information and logic is common to all generators.
Some of that information is currently stored in cmTarget but that
should be reserved for the configure step.  Create a class to hold
per-target information for generators.  On construction classify
sources from the target and store them in separate members.  This
classification is already implemented separately in each generator.
2012-03-09 15:16:02 -05:00
Brad King
5cd879c4e7 bootstrap: Convert MSYS paths to Windows format (#13001)
We set CMAKE_PREFIX_PATH from the --prefix= option.  The calling shell
might not translate "/c/..." to "c:/..." paths but we need to store
Windows paths in CMake cache variables.  Pass the specified path through
the MSYS shell in a form it will convert to a Windows path using the
MSYS fstab.

Some MSYS bash implementations leave trailing space on the command line
to 'cmd /c echo ...' after quoting the message.  The Windows echo tool
preserves both the quotes and the trailing space.  Use a sed expression
that strips quotes and trailing spaces after the end quote.
2012-03-01 10:09:05 -05:00
Brad King
c19868b256 bootstrap: Forward options after '--' to cmake
Provide an interface simpler than --init= to set cache values during
bootstrap builds.  For example:

 ./bootstrap --system-zlib -- -DZLIB_ROOT=/opt/zlib

will configure CMake with a system zlib library and initialize ZLIB_ROOT
in the cache for use by FindZLIB.
2011-12-16 11:33:24 -05:00
Brad King
f39e82c9d5 bootstrap: Re-implement command line option processing
Use POSIX shell features to shorten and simplify bootstrap command-line
option processing.
2011-12-16 11:32:45 -05:00
Brad King
dbf05f75c3 bootstrap: Update copyright year in version report 2011-12-16 09:43:39 -05:00
Brad King
be6502c502 bootstrap: Include cmNewLineStyle in build
The cmNewLineStyle class is needed by cmMakefile.
2011-11-29 07:56:28 -05:00
Sean McBride
0037dcb6af Removed most usage of Carbon in favour of CoreFoundation 2011-01-31 18:21:20 -05:00
Nicolas Despres
3cba29d220 bootstrap: Add --enable-ccache option (#11707)
This option tells bootstrap to hand CMake

  CC="ccache $CC"
  CXX="ccache $CXX"

so that the CMake build tree after bootstrapping uses ccache.
2011-01-17 08:57:38 -05:00
Brad King
144a82ca7e bootstrap: --verbose implies verbose Makefiles (#11708)
Suggested-by: Nicolas Despres <nicolas.despres@gmail.com>
2011-01-17 08:44:04 -05:00
Brad King
bace6500a3 bootstrap: Clarify --init flag documentation (#11431) 2011-01-10 09:38:42 -05:00
Brad King
60d72b56ed bootstrap: Granular system library selection (#11431)
This adds the ability for packagers to specify that some libraries
should use system versions and others should use the CMake versions.

This allows a bit of flexibility and means Homebrew (an OSX package
manager) no longer has to continue to patch the CMake build process.

Inspired-by: Mike McQuaid <mike@mikemcquaid.com>
2011-01-10 09:32:09 -05:00
Brad King
542b517449 Factor out common custom command generator
The Makefile, VS, and Xcode generators previously duplicated some custom
command line generation code.  Factor this out into a separate class
cmCustomCommandGenerator shared by all generators.
2010-12-08 17:29:20 -05:00
Brad King
c7aa38ff39 bootstrap: Honor CFLAGS during "make" test (#10545) 2010-09-10 11:39:43 -04:00
Brad King
2ad2c2d7a5 bootstrap: Detect known C/C++ compiler toolchains
Look for a C/C++ compiler pair from known toolchains on some platforms.
This makes it less likely that mismatched compilers will be found.
Check only if the environment variables CC and CXX are both empty.
2010-06-30 10:50:28 -04:00
Brad King
f20d091a2c Tru64: Place cmOStringStream vtable uniquely (#10541)
GCC places the vtable in the object implementing the first non-pure,
non-inline virtual method.  Since the symbol is not weak on Tru64, make
the location unique by putting the destructor in a single object file.
2010-06-10 15:22:40 -04:00
Brad King
5bfffd6f29 New version scheme to support branchy workflow
Prepare to switch to the workflow described by "git help workflows".  In
this workflow, the "master" branch is always used to integrate topics
ready for release.  Brand new work merges into a "next" branch instead.
We need a new versioning scheme to work this way because the version on
"master" must always increase.

We no longer use an even/odd minor number to distinguish releases from
development versions.  Since we still support cvs checkout of our source
tree we cannot depend on "git describe" to compute a version number
based on the history graph.  We can use the CCYYMMDD nightly date stamp
to get a monotonically increasing version component.

The new version format is "major.minor.patch.(tweak|date)".  Releases
use a tweak level in the half-open range [0,20000000), which is smaller
than any current or future date.  For tweak=0 we do not show the tweak
component, leaving the format "major.minor.patch" for most releases.
Development versions use date=CCYYMMDD for the tweak level.  The
major.minor.patch part of development versions on "master" always
matches the most recent release.

For example, a first-parent traversal of "master" might see

        v2.8.1      2.8.1.20100422    v2.8.2
           |              |              |
  ----o----o----o----o----o----o----o----o----

Since the date appears in the tweak component, the next release can
increment the patch level (or any more significant component) to be
greater than any version leading to it.  Topic branches not ready for
release are published only on "next" so we know that all versions on
master lead between two releases.
2010-04-23 09:44:23 -04:00
Bill Hoffman
78d505031f Fix for bug #10544, make check was sent to the wrong log file 2010-04-13 09:28:16 -04:00
Bill Hoffman
21a59bdc4d Fix double bootstrap build for in source builds 2009-11-10 08:09:54 -05:00
Brad King
f40406ed6b Fix default install prefix on Haiku
Since Haiku does not have /usr (and therefore /usr/local), this commit
changes the default install prefix to the equivalent directory of
/boot/common.

See issue #9607.
2009-09-30 08:31:53 -04:00
Brad King
96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake 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 CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King
28531d1707 Simplify bootstrap script source dir detection
This teaches the bootstrap shell script to detect the CMake source
directory from which it is executed using a simpler idiom.
2009-09-25 10:48:24 -04:00
Bill Hoffman
25cf2f4352 Make sure KWSYS_DO_NOT_CLEAN_PUTENV is defined at bootstrap time for cmake in the bootstrap script. 2009-09-22 16:12:40 -04:00
Brad King
c2ee27c535 Test KWSYS_IOS_HAVE_BINARY during bootstrap
We need to do this KWSys configuration test in the CMake bootstrap
script to create a proper cmsys/Configure.hxx file.  This fixes the
bootstrap script which was broken by the addition of the test to KWSys.
2009-08-31 13:25:40 -04:00
Brad King
d2e1f2b4d6 Introduce "generator expressions" to add_test()
This introduces a new syntax called "generator expressions" to the test
COMMAND option of the add_test(NAME) command mode.  These expressions
have a syntax like $<TARGET_FILE:mytarget> and are evaluated during
build system generation.  This syntax allows per-configuration target
output files to be referenced in test commands and arguments.
2009-08-11 09:54:56 -04:00
Brad King
fd10589995 ENH: Improve dynamic variable scope implementation
Previously each new variable scope (subdirectory or function call) in
the CMake language created a complete copy of the key->value definition
map.  This avoids the copy using transitive lookups up the scope stack.
Results of queries answered by parents are stored locally to maintain
locality of reference.

The class cmDefinitions replaces cmMakefile::DefinitionsMap, and is
aware of its enclosing scope.  Each scope stores only the definitions
set (or unset!) inside it relative to the enclosing scope.
2009-07-22 14:22:45 -04:00
Brad King
7797237629 BUG: Fix bootstrap for Debian Almquist Shell
The Debian Almquist Shell (dash) provides minimal POSIX compliance
instead of the power of bash.  It converts literal '\n' to a real
newline even in a single-quoted string.  This works around the problem
by avoiding the literal.  We can no longer use HEREDOC.
2009-06-10 13:39:40 -04:00
Brad King
653262ef17 ENH: Make bootstrap script work on VMS bash
A few sweeping changes were needed:

  - Avoid use of HEREDOC, which does not seem to work.
  - Avoid extra '.' in paths by using '_cmk' and '_tmp'
    instead of '.cmk' and '.tmp'.
2009-06-10 13:04:25 -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
a6bc1c34b1 ENH: Auto-import symbols for cygwin executables
This enables the --enable-auto-import linker flag on Cygwin when linking
executables.  It works with the old gcc 3.x compiler and is necessary
for the new gcc 4.x compiler.  See issue #9071.
2009-05-27 11:33:37 -04:00
Brad King
66d69f864a ENH: Refactor generation of CTestTestfile content
This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls
into CTestTestfile.cmake files out of cmLocalGenerator and into a
cmTestGenerator class.  This will allow more advanced generation without
cluttering cmLocalGenerator.  The cmTestGenerator class derives from
cmScriptGenerator to get support for per-configuration script
generation (not yet enabled).
2009-03-16 10:40:46 -04:00
Brad King
e67f5138b8 ENH: Refactor cmInstallGenerator for re-use
A new cmScriptGenerator base class factors out the non-install-specific
part of cmInstallGenerator.  This will be useful for other generators
that want per-configuration functionality.
2009-03-16 10:39:56 -04:00
Brad King
98c51ff6dc ENH: Overhaul CMake version numbering
This moves the version numbers into an isolated configured header so
that not all of CMake needs to rebuild when the version changes.

Previously we had spaces, dashes and/or the word 'patch' randomly chosen
before the patch number.  Now we always report version numbers in the
traditional format "<major>.<minor>.<patch>[-rc<rc>]".

We still use odd minor numbers for development versions.  Now we also
use the CCYYMMDD date as the patch number of development versions, thus
allowing tests for exact CMake versions.
2009-03-05 15:17:07 -05:00
Bill Hoffman
64fc597de2 ENH: add initial support for HAIKU OS from bug# 7425 2008-09-15 17:53:28 -04:00
Brad King
22f12322bb COMP: Fix bootstrap build after using cmDocumentationFormatterText in cmMakefile. 2008-03-07 16:26:29 -05:00
Ken Martin
d49ef18f8a ENH: add first cut and policies still need to add the doc support 2008-03-01 15:20:35 -05:00
Brad King
fd37a6ec3d ENH: Better linker search path computation.
- Use linker search path -L.. -lfoo for lib w/out soname
    when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME
  - Rename cmOrderRuntimeDirectories to cmOrderDirectories
    and generalize it for both soname constraints and link
    library constraints
  - Use cmOrderDirectories to order -L directories based
    on all needed constraints
  - Avoid processing implicit link directories
  - For CMAKE_OLD_LINK_PATHS add constraints from libs
    producing them to produce old ordering
2008-02-21 11:41:11 -05:00
Bill Hoffman
22927ede1e ENH: support for cpack and install of cmake-gui as mac app bundle 2008-02-16 13:05:03 -05:00
Brad King
ad95a57509 ENH: Add option to bootstrap script to enable Qt dialog.
- Add --qt-gui and --no-qt-gui options
  - Add --qt-qmake=<qmake> option to help locate Qt
  - Build more commands during bootstrap to help FindQt4.cmake:
    MATH, GET_DIRECTORY_PROPERTY, EXECUTE_PROCESS,
    SEPARATE_ARGUMENTS
  - Bootstrapping with the cmake-gui is now possible in MSys
2008-02-13 14:47:03 -05:00
Brad King
4987e17f46 ENH: Improve link line generation for static library cycles.
- Move Tarjan algorithm from cmComputeTargetDepends
    into its own class cmComputeComponentGraph
  - Use cmComputeComponentGraph to identify the component DAG
    of link dependencies in cmComputeLinkDepends
  - Emit non-trivial component members more than once but always
    in a contiguous group on the link line
2008-02-07 16:14:05 -05:00
Brad King
523ddedac5 ENH: Analyze inter-target dependencies to safely fix cycles
- Cycles may be formed among static libraries
  - Native build system should not have cycles in target deps
  - Create cmComputeTargetDepends to analyze dependencies
  - Identify conneced components and use them to fix deps
  - Diagnose cycles containing non-STATIC targets
  - Add debug mode property GLOBAL_DEPENDS_DEBUG_MODE
  - Use results in cmGlobalGenerator as target direct depends
2008-02-05 23:10:41 -05:00
Brad King
82fcaebe28 ENH: Pass dependent library search path to linker on some platforms.
- Move runtime path ordering out of cmComputeLinkInformation
    into its own class cmOrderRuntimeDirectories.
  - Create an instance of cmOrderRuntimeDirectories for runtime
    path ordering and another instance for dependent library
    path ordering.
  - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit
    CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean.
  - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean.
  - Create variables to specify -rpath-link flags:
      CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG
      CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG
  - Enable -rpath-link flag on Linux and QNX.
  - Documentation and error message updates
2008-02-01 08:56:00 -05:00
Brad King
8f97980615 COMP: Use kwsys to get STL set_intersection algorithm. 2008-01-27 15:09:58 -05:00
Brad King
99b97dece8 ENH: Created cmComputeLinkDepends to compute link dependencies.
- This will be useful for imported library dependencies
  - Replaces old cmTarget analyze-lib-depends stuff for linking
  - Formalizes graph construction and dump
  - Explicitly represents dependency inferral sets
  - Use BFS of initial dependencies to preserve order
2008-01-27 13:42:49 -05:00
Brad King
02c3b71b2f BUG: Do not have variable and function of the same name. Old shells do not likeit. 2008-01-23 17:43:08 -05:00
Brad King
96fd5909d9 ENH: Implement linking with paths to library files instead of -L and -l separation. See bug #3832
- This is purely an implementation improvement.  No interface has changed.
  - Create cmComputeLinkInformation class
  - Move and re-implement logic from:
      cmLocalGenerator::ComputeLinkInformation
      cmOrderLinkDirectories
  - Link libraries to targets with their full path (if it is known)
  - Dirs specified with link_directories command still added with -L
  - Make link type specific to library names without paths
    (name libfoo.a without path becomes -Wl,-Bstatic -lfoo)
  - Make directory ordering specific to a runtime path computation feature
    (look for conflicting SONAMEs instead of library names)
  - Implement proper rpath support on HP-UX and AIX.
2008-01-22 09:13:04 -05:00
Brad King
c6a7d55127 COMP: The find_package command needs more of kwsys. Added String.h, String.c, and auto_ptr.hxx to bootstrapping kwsys. 2008-01-17 10:35:32 -05:00
Brad King
0ea6a8d1a4 ENH: Simplified CMake version information using KWSys DateStamp feature. Reduced duplicate code in bootstrap script. 2007-11-14 21:17:53 -05:00
Bill Hoffman
d88b30a742 ENH: add new file 2007-10-18 09:39:02 -04:00
Brad King
35936433e1 ENH: Merging changes from branch CMake-SourceFile2-b between tags
CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk.  This
commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and
CMake-SourceFile2-b-mp1-post on the trunk.

The changes re-implement cmSourceFile and the use of it to allow
instances to be created much earlier.  The use of cmSourceFileLocation
allows locating a source file referenced by a user to be much simpler
and more robust.  The two SetName methods are no longer needed so some
duplicate code has been removed.  The strange "SourceName" stuff is
gone.  Code that created cmSourceFile instances on the stack and then
sent them to cmMakefile::AddSource has been simplified and converted
to getting cmSourceFile instances from cmMakefile.  The CPluginAPI has
preserved the old API through a compatibility interface.

Source lists are gone.  Targets now get real instances of cmSourceFile
right away instead of storing a list of strings until the final pass.

TraceVSDependencies has been re-written to avoid the use of
SourceName.  It is now called TraceDependencies since it is not just
for VS.  It is now implemented with a helper object which makes the
code simpler.
2007-06-18 11:59:23 -04:00
Andy Cedilnik
310ca5795a ENH: Fix copyright year 2007-04-04 13:41:12 -04:00
Ken Martin
21d9f9a8f1 COMP: fix bootstrap maybe 2006-12-07 10:48:11 -05:00
Bill Hoffman
0c381a2ce8 ENH: fix bootstrap for mac 2006-12-05 08:47:06 -05:00
Bill Hoffman
3a32cec969 ENH: merge in changes for beos support 2006-12-04 17:26:41 -05:00
Bill Hoffman
b56a60d01e ENH: fix errors for unix builds 2006-11-29 17:45:55 -05:00
Brad King
6ff05e3946 ENH: Adding option to use system-installed third-party libraries. This addresses bug#3653. 2006-10-19 15:17:58 -04:00
Brad King
6c19d3a862 ENH: Renamed kwsysPlatformCxxTests to kwsysPlatformTests and generalized it for multiple language tests (C and CXX). 2006-10-04 17:24:36 -04:00
Brad King
f0050269ea ENH: Added System component of kwsys. 2006-09-21 13:47:54 -04:00
Brad King
6e2f819942 ENH: Changing default data and doc directories to share/cmake-V.v and doc/cmake-V.v instead of share/CMake and doc/CMake for consistency with many linux distribution conventions. 2006-08-25 21:21:10 -04:00
Brad King
a2e3b01a59 COMP: Fix for new kwsys Configure.h.in. 2006-08-25 20:52:37 -04:00
Andy Cedilnik
d510ef2557 ENH: Support large file systems in kwsys 2006-08-22 15:34:14 -04:00
Andy Cedilnik
e49b93989d COMP: More warnings and hp issues 2006-07-26 14:10:14 -04:00
Andy Cedilnik
a9c0929d39 COMP: Handle both ansi and non-ansi C 2006-07-26 11:46:22 -04:00
Andy Cedilnik
c3412def5d COMP: Remove warning 2006-07-25 11:00:10 -04:00
Andy Cedilnik
126e5e39ff ENH: Fix copyright year 2006-04-17 19:02:42 -04:00
Bill Hoffman
cae4e6b37a ENH: add patch for finding applications on OSX 2006-04-13 11:00:52 -04:00
Bill Hoffman
ae10b3578d ENH: add a wrapper for xcodebuild to get around bug and verbose output 2006-03-31 13:17:23 -05:00
Andy Cedilnik
3806c1050d ENH: Remove things from bootstrap 2006-03-22 09:58:11 -05:00
Andy Cedilnik
15d7dd9937 ENH: Remove cmGlob and use glob from kwsys 2006-03-21 12:54:31 -05:00
Bill Hoffman
506afe9e8c ENH: add more depends for bootstrap 2006-03-06 15:41:56 -05:00
Brad King
518080136d ENH: Implemented FILES and PROGRAMS forms of the INSTALL command as replacements for the INSTALL_FILES and INSTALL_PROGRAMS commands. This addresses the request for absolute path install destinations in bug#2691. 2006-02-19 18:47:13 -05:00
Brad King
96f0266228 ENH: Created new install script generation framework. The INSTALL command creates the generators which are later used by cmLocalGenerator to create the cmake_install.cmake files. A new target installation interface is provided by the INSTALL command which fixes several problems with the INSTALL_TARGETS command. See bug#2691. Bugs 1481 and 1695 are addressed by these changes. 2006-02-19 15:25:27 -05:00
Brad King
8facf1f406 ENH: Made default install prefix consistent with building with another CMake. 2006-02-16 20:13:54 -05:00
Ken Martin
141ad7645e ENH: some reorg of the unix makefile generator 2006-02-15 10:34:11 -05:00
Brad King
62ca4d34c2 BUG: Fixed bootstrap from MSYS prompt. It was working only when the bootstrap directory in MSYS mapped to the same directory on windows except for the drive letter in front. Now it should work from any path. 2006-02-10 11:19:19 -05:00
Brad King
f71a085f74 ENH: Added kwsys::String class to shorten debugging symbols and error messages involving std::string. 2006-02-07 10:11:40 -05:00
Brad King
576d8b41cb ENH: Enabled bootstrapping with MinGW from an MSYS prompt. 2006-01-31 18:50:16 -05:00
Andy Cedilnik
fdc4795b91 ENH: Push glob to the kwsys 2005-10-18 14:08:55 -04:00
Andy Cedilnik
775c3495e2 ENH: Add file time comparison code 2005-10-12 13:36:07 -04:00
Bill Hoffman
f8c259b443 BUG: try to fix qt problems 2005-09-10 10:33:10 -04:00
Bill Hoffman
a0fb6e97db ENH: fix bootstrap, maybe this should somehow grep awk the sources from the cmakelist file.... 2005-09-03 22:16:41 -04:00
Andy Cedilnik
29f7e505a5 ENH: Use the new parser that supports nested variables 2005-06-13 11:00:29 -04:00
Ken Martin
c08862a88d ENH: removed UMG2 2005-06-09 14:39:14 -04:00
Ken Martin
32aef87e3b ENH: moved gen3 into bootstrap process 2005-05-12 11:53:42 -04:00
Andy Cedilnik
d395b563ed ENH: Improve internal test handling by creating a test class. Command cmEnableTesting now only sets CMAKE_TESTING_ENABLED and cmAddTest only adds a test to the list. The actual test files are written by local generator. This way we can at some point in the future replace DartTestfile with some XML file 2005-04-24 15:59:51 -04:00
Brad King
8ddc8accb3 COMP: Added KWSys try-compiles KWSYS_STL_HAS_ALLOCATOR_TEMPLATE and KWSYS_STL_HAS_ALLOCATOR_OBJECTS. Needed for more old-stl support in the hashtable. 2005-04-21 13:47:43 -04:00
Brad King
bddade9696 COMP: Added KWSYS_CXX_HAS_CSTDDEF try-compile to KWSys to provide kwsys/cstddef header (to get size_t for hash_fun.hxx). 2005-04-15 16:00:44 -04:00
Brad King
6c68c81475 ENH: Added KWSys try-compiles KWSYS_STL_HAS_ITERATOR_TRAITS, KWSYS_STL_HAS_ITERATOR_CATEGORY, KWSYS_STL_HAS___ITERATOR_CATEGORY, and KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE to get the hash table to compile on old HP and Sun compilers. 2005-04-15 09:54:03 -04:00
Brad King
7f706ecc98 ENH: Added KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP try-compile to KWSys. Needed to optionally bring hash table comparison operators into the global namespace when argument dependent lookup is not supported. 2005-04-15 08:59:30 -04:00
Brad King
be1084b524 COMP: Added KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT check for non-standard argument to stl allocator<>::max_size method. Needed for kwsys hashtable to compile on Sun CC. 2005-04-13 15:39:03 -04:00
Brad King
b370936a25 BUG: Added more try-compiles from kwsys. 2005-04-13 14:13:35 -04:00
Brad King
6f95540ac7 BUG: The bootstrap script should perform the KWSYS_STL_STRING_HAVE_NEQ_CHAR test for kwsys. 2005-04-06 13:34:09 -04:00
Brad King
22f6d68be3 ENH: Added istream and ostream operators for stl string in KWSys when using old streams that do not provide them. 2005-03-29 08:20:08 -05:00
Andy Cedilnik
11077bfcaa BUG: The is replaced by cvs... This is safer anyway 2005-03-28 18:00:42 -05:00
Andy Cedilnik
888d5f2f47 ENH: For development versions report version when doing bootstrap 2005-03-25 14:23:55 -05:00
Ken Martin
fe41711a08 ENH: oops forgot to chek this in 2005-03-14 12:25:12 -05:00
Andy Cedilnik
83343c59c9 BUG: Remove awk, remove problems and add full spaces in the path support 2005-03-09 15:51:30 -05:00
Brad King
636f1587b5 BUG: Fix for spaces in the path when constructing cmBootstrapCommands dependencies. 2005-03-08 17:27:08 -05:00
Andy Cedilnik
cc9a43dd13 ENH: Add proper dependencies for cmBootstrapCommands 2005-03-07 12:11:51 -05:00
Andy Cedilnik
6cb01848fb BUG: Handle when initial cmake fails 2005-03-04 10:03:38 -05:00
Brad King
2aa613b98c ENH: Enabling cmLocalUnixMakefileGenerator2 (new makefile generator) by default. 2005-03-01 12:26:25 -05:00
Bill Hoffman
ff812580eb ENH: add a new library path ordering algorithm to make sure -L paths will pick the correct libraries if possible 2005-02-24 13:16:41 -05:00
Brad King
508cff55f6 ENH: Added try-compile KWSYS_STAT_HAS_ST_MTIM. This tests whether struct stat has the extra st_mtim member that has high resolution times. 2005-02-17 11:27:15 -05:00
Bill Hoffman
7eba58a439 ENH: add xcode stuff to bootstrap 2005-01-25 16:09:59 -05:00
Bill Hoffman
a641ad3bba ENH: split up cmCommands into two files 2005-01-21 10:27:51 -05:00
Brad King
d46d8df0ed ENH: Re-implemented cmGeneratedFileStream to look like a real stream and replace the destination file atomically. This will avoid problems with the process being terminated while generating a file. 2004-11-03 07:23:18 -05:00
Andy Cedilnik
56234aed4b PERF: Remove several classes from the bootstrap and so making bootstrap smaller and faster 2004-10-27 10:47:14 -04:00
Brad King
3e59af4dcd ENH: Added cmLocalUnixMakefileGenerator2 to build. 2004-10-26 12:54:51 -04:00
Andy Cedilnik
fc70a2bb2a ENH: Add development version support in CMake 2004-10-22 15:44:54 -04:00
Bill Hoffman
30c71b5f20 ENH: perfer gmake for bootstrap 2004-10-19 14:51:25 -04:00
Will Schroeder
20461af1e6 COMP: Fix on sun 2004-10-18 18:11:42 -04:00
Andy Cedilnik
6b7257db61 ENH: Add check for previous bootstrap in the source tree when doing out-of-source build 2004-10-18 11:34:02 -04:00
Bill Hoffman
9fd8d5f181 allow kdevelop for cygwin 2004-10-12 10:57:24 -04:00
Bill Hoffman
832a302ca2 BUG: do not build kdevlop stuff when bootstrapping 2004-10-12 09:50:36 -04:00
Bill Hoffman
031e956adc ENH: add kdev to bootstrap 2004-10-11 11:47:59 -04:00
Bill Hoffman
29794b24a9 ENH: pick native compilers first, and aCC before CC 2004-10-05 11:29:16 -04:00
Andy Cedilnik
bb865245f4 ERR: Fix bootstrap 2004-10-05 08:49:07 -04:00
Andy Cedilnik
d186bbd719 BUG: Check if the compiler is gnu. If it is, do not do special platform tests. Fixes Bug #1215 - bootstrap uses native flags with gnu compiler on OSF 2004-09-30 16:24:54 -04:00
Andy Cedilnik
47c82a381a ENH: Attempt to detect a non-parallel make 2004-09-23 07:53:42 -04:00
Andy Cedilnik
25b0dbf608 ERR: Fix bootstrap for the changes in kwsys 2003-12-31 08:56:37 -05:00
Brad King
ef96274a08 ENH: Merging changes from KWSys-IOS-bp to KWSys-IOS-b2t-1-mp to main tree. This corresponds to the same merge in KWSys. Fixes for bootstrapping on cygwin are also included. 2003-12-23 11:03:38 -05:00
Andy Cedilnik
aa859a7603 ENH: Fix bootstrap to handle lex parser 2003-12-08 14:11:58 -05:00
Brad King
54584d1cb9 BUG: Need to check for -Ae flag on HP-UX cc compiler. Needed for ANSI C compilation. 2003-09-15 15:58:27 -04:00
Brad King
0cd97b4030 BUG: Must use C compiler to compile C files during bootstrap, not C++ compiler. 2003-09-02 13:27:58 -04:00
Andy Cedilnik
21ec23413e ERR: Reorganize to try to fix the -pthread problem on some systems 2003-08-22 09:52:05 -04:00
Andy Cedilnik
9ad2a2eb14 ENH: Add error message for make missing 2003-08-11 17:53:10 -04:00
Andy Cedilnik
123759d9f5 ENH: Add rebuild_cache 2003-08-06 17:52:16 -04:00
Brad King
dada2859b7 ENH: Adding forced settings for prefix, docdir, mandir, and datadir. 2003-07-23 08:37:44 -04:00
Brad King
a1bb1a4712 ENH: Added optional configuration of data/doc/man dirs. This will be useful for package maintainers. 2003-07-21 16:38:53 -04:00
Brad King
2910c30dd5 ENH: Removed cmsys include directory from bootstrap build of kwsys. It is no longer needed. 2003-07-11 17:21:28 -04:00
Andy Cedilnik
db77d2e019 ENH: Add globbing to FILE command 2003-07-08 14:18:17 -04:00
Andy Cedilnik
2a6e9970b3 ENH: Fix bootstrap to include ProcessUNIX.c 2003-07-07 17:52:53 -04:00
Andy Cedilnik
6c66cdd28d ERR: Fix changes in kwsys for Configure.h and StandardIncludes.hxx 2003-06-30 10:50:40 -04:00
Andy Cedilnik
81c2f420d8 ENH: Fix checking for C++ compiler on Mac, remove cmConfigure.h.tmp, so that nothing bad can happen if configure is interrupted, reports kwsys sources in cmConfigure.h 2003-06-30 09:56:33 -04:00
Andy Cedilnik
9754503095 ENH: Attempt to handle OSF compiler flags 2003-06-26 09:44:27 -04:00
Brad King
38482b46d1 ENH: Merged use of the kwsys RegularExpression class instead of cmRegularExpression. 2003-06-23 14:10:12 -04:00
Brad King
dc3fd5c267 ENH: Merged use of kwsys library. 2003-06-23 08:58:58 -04:00
Andy Cedilnik
324807d395 ENH: Add copyright, cmConfigure.h is now touched only when it is modified, remove some spaces from output, add procedure that copies file and replaces atstring with another string 2003-06-21 11:57:13 -04:00
Brad King
9ccc27864e ERR: Cannot use iostream.h for strict C++ compiler sanity check. Using a small class instead. 2003-06-04 09:00:36 -04:00
Andy Cedilnik
b524f7573b Several fixes before bootstrap is ready for prime-time:
1. Add --version flag to display version of CMake
2. Add comments to explain what is going on
3. Move CMAKE_ROOT_DIR and CMAKE_BOOTSTRAP to cmConfigure.h
4. Forward CC, CXX, and MAKE to cmake
5. Add more instructions
2003-05-15 09:35:16 -04:00
Andy Cedilnik
5e548d41d3 ENH: Add parallel build support, fix bug in verbose and clean output when adding arguments 2003-05-14 09:27:39 -04:00
Andy Cedilnik
df7ae80a21 ENH: Add better error reporting 2003-05-14 09:19:12 -04:00
Andy Cedilnik
a4238dc5db ENH: Add SGI -LANG:std support 2003-04-22 14:32:48 -04:00
Andy Cedilnik
d0d9330c40 Support LDFLAGS 2003-04-17 13:13:48 -04:00
Andy Cedilnik
1181ac5ee7 BUG: Rename Bootstrap directory to Bootstrap.cmk, so that on platforms such as Windows and Mac OSX it will break during in-source build 2003-04-17 08:02:44 -04:00
Andy Cedilnik
b79f1a4731 Better support for spaces in paths 2003-04-03 18:40:12 -05:00
Andy Cedilnik
f57a7ba95c Initial import of bootstrap for CMake 2003-03-27 15:29:38 -05:00