Commit Graph

47 Commits

Author SHA1 Message Date
Brad King bac564356b COMP: Added pragma directives for SGI compilers to avoid useless warnings. 2005-05-03 14:58:13 -04:00
Brad King b1c5289787 ENH: Created cmTarget::GetLibraryNames to replace cmLocalUnixMakefileGenerator2::GetLibraryNames. Added cmTarget::GetLibraryCleanNames to be used by cmLocalUnixMakefileGenerator2. Now when a library is linked both the shared and static versions are removed from the build tree. In this way we avoid having both kinds of libraries present when the user switches BUILD_SHARED_LIBS on/off. This prevents problems with turning off shared libraries and then expecting the linker to use the static libraries only to find it is using the out-of-date shared versions. 2005-04-22 16:11:00 -04:00
Brad King 1b71f4477b ENH: Added cmTarget::GetBaseName and cmTarget::GetFullName methods and removed cmLocalGenerator::GetFullTargetName and cmLocalUnixMakefileGenerator2::GetBaseTargetName. This functionality is more sensibly implemented in cmTarget. It is also needed for an upcoming feature in which both the shared and static versions of a library will be removed before one is linked. 2005-04-22 15:23:21 -04:00
Brad King c940351914 BUG: Fix dependencies of custom commands that are relative paths to files or other custom command outputs. 2005-03-29 10:34:58 -05:00
Ken Martin 345cf04012 ENH: big change that includes immediate subdir support, removing the notion of inherited commands, makefiles no longer read in the parent makefiles but instead inherit thier parent makefiles current settings 2005-03-18 10:41:41 -05:00
Brad King ddb0408007 ENH: Added option CMAKE_SKIP_RULE_DEPENDENCY to skip making build rules depend on their own rule files. It can be added to the cache by the user or added by the project in a list file. 2005-03-08 13:43:17 -05:00
Brad King d18722a212 ENH: Replaced OutputEcho/pre-echo/post-echo with AppendEcho. This allows for more flexible echo specifications and better preserves echo text. 2005-02-25 11:23:17 -05:00
Brad King 03e2878db8 ENH: Added ConvertToQuotedOutputPath method and used it to properly generate external object references with spaces in the path. 2005-02-25 09:06:18 -05:00
Brad King cb48e0c161 ENH: Merged implementations of ConvertToRelative*Path methods. The main ConvertToRelativePath method is now in cmGlobalGenerator. It converts paths only if they are at least inside the deepest common directory between the top-level source and build trees. Each cmLocalGenerator instance calls this global method with its own output directory as the "local" argument from which paths are relative. Added separate ConvertToOptionallyRelative path that pays attention to the CMAKE_USE_RELATIVE_PATHS option. 2005-02-24 16:04:54 -05:00
Brad King b40745c925 BUG: Using a better technique to produce the rule file name for a custom command when the output is not in the current directory or lower. 2005-02-24 12:19:20 -05:00
Brad King 3d9d893426 ENH: Avoid generating duplicate rules for an object file. A warning about duplicate source files in a target is now generated. 2005-02-17 10:03:27 -05:00
Brad King 6173dea153 ENH: Split cmLocalUnixMakefileGenerator2 away from cmLocalUnixMakefileGenerator to be a stand-alone generator. 2005-02-10 16:18:27 -05:00
Brad King 4bf8aa6293 ENH: Added SystemTools::SplitPath method to split any file path into its basic components. 2005-02-10 10:32:53 -05:00
Brad King 4931afd89d ENH: Adding cleaning of custom command outputs during "make clean". 2005-02-09 11:40:01 -05:00
Brad King 5798510cc7 ENH: Moved reference from local driver targets (like build.local) into individual target rule files. Main rule is now empty, except that clean.local may remove files registered for cleaning. 2005-02-09 09:36:28 -05:00
Brad King c44e6d30e5 ENH: Added generation of CMakeDirectoryInformation.cmake file in each directory next to the Makefile. The include file search path is now stored in this file instead of duplicating it for every object file. This will also allow more information to be passed in the future. 2005-02-07 15:10:20 -05:00
Brad King e708045e6e ENH: Implemented external object feature. 2005-02-04 15:14:12 -05:00
Bill Hoffman 35ec09480a ENH: move AddFlags stuff up to LocalGenerator from LocalUnix generator 2005-02-02 13:19:57 -05:00
Brad King 892a7c4fd9 ENH: Implemented full per-object test for whether provides-requires mode is needed. This will still use a recursive make for any Fortran object even if it doesn't have requires. It is possible to avoid it but we can do that later. 2005-01-28 14:17:48 -05:00
Brad King 47ee00b7a5 ENH: Removed unquoted version of OBJECTS make variable. Quoted seems to work everywhere. BUG: Fixed AppendAnyDepend to properly identify executable targets. BUG: Used CreateMakeVariable to fix variable name for OBJECTS list when target has a . in its name. 2005-01-19 07:23:06 -05:00
Brad King 195cdf172e ENH: Split dependency scanning and checking into separate cmDepends superclass with language-specific subclasses such as cmDependsC. 2005-01-18 17:09:05 -05:00
Brad King 64f4880cb5 ENH: Adding partial implementation of provides-requires mode. 2005-01-17 15:09:32 -05:00
Brad King 4b48a89b96 ENH: Added install target implementation. Also added missing include of assert.h. 2005-01-04 18:24:52 -05:00
Brad King 79c67a6dfa ENH: Added relative path support (mostly done). Many paths are written relative even if CMAKE_USE_RELATIVE_PATHS is not on just to keep makefiles short. 2005-01-04 17:41:19 -05:00
Brad King 1480676dab ENH: Added post-build rules to executables and libraries. Generalized AppendLibDepend method to AppendAnyDepend. This takes most of the functionality of AppendCustomDepend too, and generalized jump-and-build to executables. 2004-12-09 15:11:22 -05:00
Brad King 477f328aed ENH: Implemented utility targets. This involved pulling part of the custom command rule implementation out into shared methods. 2004-12-09 13:52:32 -05:00
Brad King 4352c2faae ENH: Unified WriteDependRules, WriteBuildRules, WriteCleanRules, and the future WriteInstallRules into a single WritePassRules method. Also added WriteTargetDependsRule and WriteTargetCleanRule methods to unify writing of depend and clean rules for each target. 2004-11-19 09:32:18 -05:00
Brad King d39b877ea4 ENH: Added partial clean target support. 2004-11-05 15:09:46 -05:00
Brad King d41ed99297 ENH: Implemented VERBOSE output setting. 2004-11-05 07:39:48 -05:00
Brad King 7fdcb4e1e4 ENH: Generalized driver targets and subdirectory traversal rules. The implementations of all, depend, build, clean, install, etc. now follow a common framework. 2004-11-03 11:02:44 -05:00
Brad King 30e685b41f ENH: Removed unneeded requires rules now that canonical names are available. 2004-11-03 08:59:13 -05:00
Brad King 8a4c0673be ENH: Added convenience rules to build targets without specifying full paths. 2004-11-03 08:46:17 -05:00
Brad King 6de0ff4b00 ENH: Added dependencies between libraries. 2004-11-02 17:38:09 -05:00
Brad King 04f958b6d9 ENH: Implemented generation of custom command rule files. 2004-11-02 17:14:04 -05:00
Brad King fd8ae3d34c BUG: Fixed subdirectory implementation for Borland Make. 2004-11-02 08:32:03 -05:00
Brad King 914f28b06a ENH: Implemented subdirectory rules for all target. 2004-11-02 07:36:08 -05:00
Brad King 3bb39d4390 ENH: Added framework for subdirectory traversal. 2004-10-29 18:15:59 -04:00
Brad King 81bbae1fb2 ENH: Added build system integrity check to cmLocalUnixMakefileGenerator2. This now uses a special --check-build-system flag to cmake which replaces --check-rerun. Integrity of dependencies is also checked during generation. 2004-10-29 16:50:46 -04:00
Brad King 6b3ca003d7 ENH: Changed AppendRecursiveMake to GetRecursiveMakeCall and implemented jump-and-build on Windows and UNIX. 2004-10-29 13:04:28 -04:00
Brad King 37ae7d6acf ENH: Cleaned up format of generated makefiles. Consolidated rule generation into single WriteMakeRule method. Added special targets like rebuild_cache and edit_cache. 2004-10-29 10:52:52 -04:00
Brad King 72e125ca1f ENH: Do not try to handle unimplemented target types yet. Fixes for projects with subdirectories. 2004-10-27 12:05:33 -04:00
Brad King 8e0985f9f1 ENH: Added executable dependencies on libraries including jump-and-build support. 2004-10-27 10:45:18 -04:00
Brad King 0d622ae9e8 ENH: Added generation of rules for shared libraries and modules. 2004-10-27 08:47:49 -04:00
Brad King 414a2fd645 ENH: Added rules to build executables. Also began to consolidate flag list construction into separate methods. 2004-10-27 08:20:58 -04:00
Brad King d7aca58343 ENH: Added generation of rule to build object file. 2004-10-26 14:49:11 -04:00
Brad King 1a4037c15a ENH: Added object file dependency scanning. 2004-10-26 12:53:51 -04:00
Brad King bf46e4f4b7 ENH: Started new makefile generator implementation. It will temporarily be called cmLocalUnixMakefileGenerator2 until it is ready to replace the original completely. 2004-10-04 16:15:25 -04:00