Commit Graph

451 Commits

Author SHA1 Message Date
Brad King 46bf0347a3 ENH: Finish creating, documenting, and enforcing policy CMP_0002. 2008-03-07 16:36:57 -05:00
Brad King d4f66dfa32 ENH: In cmMakefile::IssueMessage use cmDocumentationFormatterText to format the message nicely. 2008-03-07 16:01:22 -05:00
Brad King 5233b75a77 ENH: Improve handling of old-style compatibility.
- Remove CMP_0001 (no slash in target name) and restore
    old CMAKE_BACKWARDS_COMPATIBILITY check for it
  - Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY
    with cmLocalGenerator::NeedBackwardsCompatibility calls
  - Create new CMP_0001 to determine whether or not
    CMAKE_BACKWARDS_COMPATIBILITY is used.
    (old = use, new = ignore)
  - Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when
    CMP_0001 is set to OLD or WARN
  - Update documentation of cmake_policy and cmake_minimum_required
    to indicate their relationship and the 2.4 version boundary
  - When no cmake policy version is set in top level makefile
    implicitly call cmake_policy(VERSION 2.4) which restores
    CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility
  - Fix tests MakeClean and Preprocess to call
    cmake_policy(VERSION 2.6) because they depend on new policies
2008-03-07 15:30:35 -05:00
Brad King 52ad7a5a97 BUG: Do not produce whitespace-only lines when indenting messages in new error/warning format. 2008-03-07 09:09:21 -05:00
Brad King 680104a490 ENH: New format for warning and error messages
- Add cmMakefile methods IssueError and IssueWarning
  - Maintain an explicit call stack in cmMakefile
  - Include context/call-stack info in messages
  - Nested errors now unwind the call stack
  - Use new mechanism for policy warnings and errors
  - Improve policy error message
  - Include cmExecutionStatus pointer in call stack
    so that errors deeper in the C++ stack under
    a command invocation will become errors for the
    command
2008-03-07 08:40:36 -05:00
Ken Martin adddcea5d7 BUG: change the handling of CMAKE_MINIMUM_REQUIRED and BACKWARDS_COMPATIBILITY and extend the documentaiton quite a bit 2008-03-06 10:57:59 -05:00
Brad King 49549560b2 ENH: Improve cmake_policy command signature
- Replace NEW and OLD modes with a SET mode for clarity
  - Enforce VERSION argument validity (major.minor[.patch])
2008-03-05 18:21:10 -05:00
Ken Martin f2c6e9e480 BUG: some fixes, still a few to go 2008-03-05 11:41:25 -05:00
Brad King ddd6ce04ec BUG: Make sure at least one policy stack entry is created for every cmMakefile instance. 2008-03-04 18:57:14 -05:00
Ken Martin 7b5d1c4c1e COMP: fix warning 2008-03-02 09:11:26 -05:00
Ken Martin 6f6b80fded BUG: bad loop index unsigned compared to zero 2008-03-01 16:21:41 -05:00
Ken Martin d7db2d086c COMP: fix some warnings 2008-03-01 15:44:17 -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
Bill Hoffman f386c2aae0 ENH: make CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS the default and remove the property. If any value is specified in an endif, endforeach, endwhile, etc then make sure it matches the start string. If no values are given then it is no longer an error. 2008-02-29 12:18:11 -05:00
Brad King 1c0595c73f ENH: Add global property ALLOW_DUPLICATE_CUSTOM_TARGETS to help existing projects that depend on having duplicate custom targets. It is allowed only for Makefile generators. See bug#6348. 2008-02-14 16:42:29 -05:00
Brad King 5b02a4a864 ENH: Re-enable diagnosis of non-unique target names.
- Re-enable enforcement in cmMakefile::EnforceUniqueName
  - Improve error message to help user resolve the problem
  - Fix Modules/CTestTargets.cmake to not duplicate testing targets
  - Move commands used by the changes to Modules/CTestTargets.cmake
    to build during bootstrap: DEFINE_PROPERTY, GET_PROPERTY
2008-02-14 11:58:32 -05:00
Brad King 8175b10078 BUG: Disable enforcement of unique target names until CTestTargets can be fixed. 2008-02-12 10:19:38 -05:00
Brad King ac0e58dcfb ENH: Enforce global target name uniqueness.
- Error if imported target is involved in conflict
  - Error for non-imported target conflict unless
    CMAKE_BACKWARDS_COMPATIBILITY <= 2.4
  - Include OUTPUT_NAME property in error message
  - Update add_executable and add_library command documentation
2008-02-11 13:35:39 -05:00
Brad King 739a463539 ENH: Add cmMakefile::NeedBackwardsCompatibility method to pass through to cmLocalGenerator::NeedBackwardsCompatibility for convenience. 2008-02-11 13:35:30 -05:00
Brad King 45d0dd1344 BUG: Fix misuse of stl vector that caused definitions to be dropped by cmMakefile::PushScope. 2008-01-30 08:37:38 -05:00
Brad King 5594ad4885 ENH: Updated exporting and importing of targets to support libraries and configurations.
- Created cmExportFileGenerator hierarchy to implement export file generation
  - Installed exports use per-config import files loaded by a central one.
  - Include soname of shared libraries in import information
  - Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands
  - Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators
  - Import files compute the installation prefix relative to their location when loaded
  - Add mapping of importer configurations to importee configurations
  - Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries
  - Scope IMPORTED targets within directories to isolate them
  - Place all properties created by import files in the IMPORTED namespace
  - Document INSTALL(EXPORT) and EXPORT() commands.
  - Document IMPORTED signature of add_executable and add_library
  - Enable finding of imported targets in cmComputeLinkDepends
2008-01-28 08:38:36 -05:00
Brad King 7213408287 ENH: Added cmMakefile::NeedCacheCompatibility method and support for it in cmCacheManager. This will allow commands to modify their behavior when running with a cache loaded from an earlier CMake version. 2008-01-24 07:37:08 -05:00
Ken Martin 0e69d38004 ENH: add return and break support to cmake, also change basic command invocation signature to be able to return extra informaiton via the cmExecutionStatus class 2008-01-23 10:28:26 -05:00
Alexander Neundorf 52b96e5bd9 BUG: don't crash if cmMakefile::RaiseScope() is called from a cmake file in
the top level directory in normal code (i.e. not within a function)

Alex
2008-01-18 17:11:50 -05:00
Brad King 9d57dbd098 ENH: Make per-configuration COMPILE_DEFINITIONS_<CONFIG> directory property initialized from parent. 2008-01-17 20:34:10 -05:00
Brad King 7f589c9f23 BUG: COMPILE_DEFINITIONS directory property needs to be inherited from parent when a directory is created. 2008-01-17 19:50:39 -05:00
Brad King 433099ecdd ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into a COMPILE_DEFINITIONS directory property. 2008-01-17 19:29:43 -05:00
Brad King caca9b8065 ENH: Add AppendProperty methods for use by C++ code in CMake. Simplify implementation of SET_PROPERTY command by using them. 2008-01-17 18:13:55 -05:00
Amitha Perera 4d9259c15b STYLE: Spelling fixes on documentation 2008-01-09 22:09:19 -05:00
Ken Martin ac4c2f675a ENH: change raise_scope signature to be safer for returned varuables 2008-01-03 11:22:33 -05:00
Brad King dcd9a1b59f BUG: Make RAISE_SCOPE function work when variable is not defined. 2008-01-02 17:49:16 -05:00
Bill Hoffman b479c6a8a9 ENH: add ability to have manifest files and incremental linking with make and nmake 2008-01-01 15:13:41 -05:00
Alexander Neundorf 3a304f8e1b STYLE: nicer error message:
"Command options() is not scriptable" is IMO better to understand than
"Command options not scriptable" (with all uppercase commands it was easier to see)

Alex
2007-12-19 16:46:15 -05:00
Ken Martin f4b1c3880b ENH: add functions and raise scope 2007-12-03 13:35:41 -05:00
Ken Martin 433a914910 ENH: different way of testing properties 2007-11-06 14:16:00 -05:00
Ken Martin 923b51ece0 COMP: fix for when STRICT is defined, and fix for props that have no docs 2007-10-23 10:40:49 -04:00
Ken Martin 6cdf032505 ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now 2007-10-22 12:49:09 -04:00
Alexander Neundorf fc9f19b202 COMP: explicitely cast to int to silence warning with msvc8
Alex
2007-08-28 16:27:10 -04:00
Alexander Neundorf f55dd81190 COMP: parent is not used anymore with this patch, since now the name is
given as a vector of components

Alex
2007-08-26 03:17:11 -04:00
Alexander Neundorf 9220e97401 BUG: fix #4057 (which had several duplicates): handle recursivew source groups better, i.e. multiple sourcegroups with the same end component work now
Alex
2007-08-24 14:21:49 -04:00
Alexander Neundorf 512e0d40ef ENH: set UNIX, WIN32 and APPLE in cmMakefile.cxx as it was before, so it
works for scripts, then reset them in CMakeSystemSpecificInformation.cxx, so
the platform modules can set them again for the target system

Alex
2007-08-10 09:07:39 -04:00
Alexander Neundorf 176fe63d15 ENH: UNIX, CYGWIN, WIN32, APPLE, QNXNTO and BEOS are not longer set in
cmMakefile.cxx, but now in the platform files and are now valid for the
target platform, not the host platform.
New variables CMAKE_HOST_WIN32, CMAKE_HOST_UNIX, CMAKE_HOST_APPLE and
CMAKE_HOST_CYGWIN have been added in cmMakefile.cxx (...and have now to be
used in all cmake files which are executed before
CMakeSystemSpecificInformation.cmake is loaded). For compatibility the old
set is set to the new one in CMakeDetermineSystem.cmake and reset before the
system platform files are loaded, so custom language or compiler modules
which use these should still work.

Alex
2007-08-09 14:45:23 -04:00
Brad King d7118006de BUG: Target exclusion-from-all tests should always use the root local generator associated with the all target being tested. 2007-08-03 15:44:25 -04:00
Alexander Neundorf 581518919b STYLE: even more output when --debug-output is used
Alex
2007-07-20 08:48:32 -04:00
Alexander Neundorf 55303d6dd2 STYLE: fix line lengths
Alex
2007-07-20 08:36:16 -04:00
Alexander Neundorf 8c77fe55dc STYLE: fix some typos, nicer debug output
Alex
2007-07-19 11:13:01 -04:00
Alexander Neundorf 95a8331edb ENH: produce a lot more output when running with --debug-output
-try to fix build error on HPUX

Alex
2007-07-17 09:25:08 -04:00
Alexander Neundorf fac8604810 BUG: GET_DIRECTORY_PROPERTY(INCLUDE_DIRECTORIES|LINK_DIRECTORIES) wasn't
working, for both the result was always empty, since
cmMakefile::GetProperty() recognized it as a special property, constructed a
correct return value and called cmMakefile::SetProperty() with this list of
directories, which then didn't actually set the property, but applied it to
the internal vector of include/link directories. The following
getPropertyValue in cmMakefile::GetProperty() then still didn't find it and
returned nothing. Now for all special property the static string output is
used and its content is returned. I'm not sure it is the right way to fix
this problem but at least it seems to work and it fixes the Paraview3 build

Alex
2007-07-16 13:26:56 -04:00
Alexander Neundorf ab10b43ec5 ENH: change the way #cmakedefine is changed to #undef, so it is similar to
what autoconf does. This makes porting software from autoconf to cmake
easier, since it's easier to diff the resulting config headers.

Now the following
#cmakedefine HAVE_STRING_H 1
#cmakedefine HAVE_STRLCAT 1

produce:

#define HAVE_STRING_H 1
/* #undef HAVE_STRLCAT */

whereas before they produced:

#define HAVE_STRING_H 1
/* #undef HAVE_STRLCAT 1 */

Since it's commented out anyway, it's now change in behaviour.

Alex
2007-07-11 15:50:32 -04:00
Ken Martin 8c641677e9 ENH: some cleanup of get property commands 2007-07-10 13:52:41 -04:00