Commit Graph

325 Commits

Author SHA1 Message Date
Brad King d5719f22c1 ENH: Added support for multiple outputs generated by a single custom command. For Visual Studio generators the native tool provides support. For Xcode and Makefile generators a simple trick is used. The first output is considered primary and has the build rule attached. Other outputs simply depend on the first output with no build rule. During cmake_check_build_system CMake detects when a secondary output is missing and removes the primary output to make sure all outputs are regenerated. This approach always builds the custom command at the right time and only once even during parallel builds. 2006-04-11 11:06:19 -04:00
Brad King 8e39418f6c BUG: Fixed cmOrderLinkDirectories to deal with raw link items that do not yet exist and correct drive letter case to avoid duplicate paths on windows. Fixed cmLocalGenerator to pass CMake targets as full paths to cmOrderLinkDirectories to make sure the ordering will pick up the proper target libraries. 2006-04-05 11:05:06 -04:00
Brad King 99ee1883d4 BUG: Removing part of earlier fix because it does not work with VS generators. It may be restored later after cmOrderLinkDirs is further fixed. 2006-04-04 17:14:20 -04:00
Brad King 57a9e26c15 BUG: Fixed cmOrderLinkDirectories to make sure cmake-built libraries are found properly. Also taking libraries that will be built but may not yet exist into account. The per-configuration subdirectories that are included by generators in the link path are checked for conflicting libraries also. Potentially conflicting libraries that are actually symlinks back to the desired library are no longer considered conflicting, which avoids bogus impossible ordering warnings. 2006-04-04 14:25:17 -04:00
Brad King 2301a025ea ENH: Added global TargetManifest computation between Configure and Generate steps. This allows generators to know what other targets will exist on disk when the build completes. 2006-04-04 11:48:19 -04:00
Bill Hoffman 3c8e899102 ENH: add support for per config target LINK_FLAGS 2006-04-03 12:57:51 -04:00
Brad King 08b14163ee ENH: Added named component installation implementation. Installation behavior should be unchanged unless -DCOMPONENT=<name> is specified when cmake_install.cmake is invoked. 2006-03-30 13:33:48 -05:00
Andy Cedilnik 93f5712a7d COMP: Remove warnings 2006-03-28 16:25:29 -05:00
Bill Hoffman f7c1723135 ENH: add support for universal binaries 2006-03-24 09:15:05 -05:00
Brad King 0376fe4b9b ENH: Added support for linking to MS .lib libraries in MinGW. 2006-03-22 11:10:58 -05:00
Brad King bcfca6e1c1 ENH: Enabling CMAKE_INCLUDE_CURRENT_DIR even for in-source builds to be more consistent with its name. This also makes double-quote and angle-bracket include styles (almost) identical. 2006-03-21 08:45:57 -05:00
Brad King 77c65b954e BUG: Fixed generation of mismatched IF in install script. This bug was introduced during the m_ sweep. 2006-03-16 14:51:54 -05:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Bill Hoffman 3f532f5489 ENH: add support for language flags at rule expansion time 2006-03-06 15:14:23 -05:00
Brad King 2b7e43961c BUG: Fix for generated install scripts to support prefixes with trailing slashes or just a single slash. 2006-03-05 09:09:12 -05:00
Brad King a2e136fd17 ENH: Added PERMISSIONS and RENAME options to the INSTALL command's FILES and PROGRAMS mode, and corresponding support to FILE(INSTALL). Default permissions for shared libraries on non-Windows/non-OSX platforms no longer has the execute bit set. 2006-03-03 18:44:32 -05:00
Brad King 586a9427d3 ENH: Created target property INSTALL_NAME_DIR initalized by CMAKE_INSTALL_NAME_DIR specifying the directory portion of the OSX install_name field in shared libraries. This is the OSX equivalent of RPATH. 2006-02-24 13:13:14 -05:00
Brad King 576f0b65c7 BUG: Fix generation of Xcode 2.0 and earlier projects to use CMAKE_BUILD_TYPE. 2006-02-24 11:13:31 -05:00
Andy Cedilnik f119d6e4ef COMP: Remove warnings 2006-02-24 10:56:39 -05:00
Bill Hoffman 39e636a4a4 ENH: change expand stuff to pass a struct for all the args 2006-02-20 13:42:18 -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 98a187a8d4 ENH: Automatic include directories should not be done by default as was just implemented. Instead a project may now set CMAKE_INCLUDE_CURRENT_DIR to get this behavior. The current source and binary directories are added automatically to the beginning of the include path in every directory. This simulates in-source behavior for double-quote includes when there are generated sources and headers in the directory. 2006-02-19 13:10:25 -05:00
Brad King 377f4e79b1 BUG: Remove trailing slashes from install destinations. 2006-02-18 16:47:28 -05:00
Brad King 644f6e83ee COMP: Fixed shadowed variable warning. 2006-02-18 15:42:14 -05:00
Brad King 81677b3130 ENH: Generate import libraries for DLLs on Cygwin and MinGW. 2006-02-18 15:37:23 -05:00
Brad King 9ba0283870 ENH: If CMAKE_NO_AUTOMATIC_INCLUDE_DIRECTORIES is not set try to approximate in-source build include file behavior in an out-of-source build by adding the build tree directory corresponding to a source tree directory at the beginning of the include path. Also fixed VS6 and VS7 generators to use cmLocalGenerator's computation of include paths. The VS6 generator will now short-path the include directories if the total length is too long in order to try to avoid its truncation limit. 2006-02-18 11:51:23 -05:00
Brad King 537e2b4ed5 ENH: Implemented RPATH specification support. It is documented by the command SET_TARGET_PROPERTIES. 2006-02-16 15:19:00 -05:00
Brad King b8a33fb424 ENH: Added INSTALL command as a placeholder for a future generic install specification interface. Currently it supports only a SCRIPT option specifying a script to run during the install stage. 2006-02-10 13:54:36 -05:00
Bill Hoffman 6cccf0ab30 ENH: fix bug for single char libraries 2006-02-10 10:11:16 -05:00
Bill Hoffman 347c5f4b46 ENH: add working directory support 2006-02-08 10:58:36 -05:00
Bill Hoffman a2c1777300 COMP: fix warning 2006-01-24 07:58:55 -05:00
Bill Hoffman a6a20d8ce2 ENH: fix warning 2006-01-23 17:24:18 -05:00
Bill Hoffman 7f237c51f4 ENH: fix problem with watcom and short paths and -I 2006-01-23 13:50:23 -05:00
Brad King 8340c0d186 ENH: Further centralized custom command dependency computation. Custom command dependencies in the source tree may now also be specified relative to the source directory. 2006-01-13 20:51:45 -05:00
Brad King 079826d367 COMP: Removed unused variables. 2006-01-13 19:35:16 -05:00
Brad King 327489ae59 COMP: Removed unused paramter from cmLocalGenerator::OutputLinkLibraries. 2006-01-13 18:33:51 -05:00
Brad King 22c62c9e65 BUG: Sweeping changes to cleanup computation of target names. This should
fix many bugs related to target names being computed inconsistently.

- Centralized computation of a target's file name to a method in
  cmTarget.  Now that global knowledge is always available the
  *_CMAKE_PATH cache variables are no longer needed.

- Centralized computation of link library command lines and link
  directory search order.

- Moved computation of link directories needed to link CMake targets
  to be after evaluation of linking dependencies.

This also removed alot of duplicate code in which each version had its
own bugs.

This commit is surrounded by the tags

  CMake-TargetNameCentralization1-pre

and

  CMake-TargetNameCentralization1-post

so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Bill Hoffman 82bb6fae0d ENH: add framework support to FIND_FILE 2005-12-27 14:56:56 -05:00
Bill Hoffman 452925649a ENH: add better support for framework linking 2005-12-26 13:14:19 -05:00
Bill Hoffman f6588b7919 ENH: fix borland make clean targets before build, add new generators for msys and mingw 2005-12-22 16:42:36 -05:00
Brad King 163e3ff56c ENH: Removed cmMakefile arguments from cmTarget methods because cmTarget has the ivar m_Makefile now. Re-implemented cmLocalUnixMakefileGenerator3::AppendAnyDepend to use the new global knowledge and avoid the need to look at the cache for information about other targets. This should fix problems with custom commands and executables with the OUTPUT_NAME set. Also the <target>_LIBRARY_TYPE cache variable is no longer needed at all and has been removed. 2005-12-14 10:47:33 -05:00
Andy Cedilnik ea7c7bb34d ENH: Allow the installer to overwrite the install prefix 2005-12-10 12:11:20 -05:00
Andy Cedilnik 34e7834451 ENH: Add support for output reguilar expression 2005-11-08 17:59:20 -05:00
Andy Cedilnik fcce3ac0a1 ENH: Add a way for test to intentionally fail 2005-09-06 23:31:41 -04:00
Brad King d392acb4e6 ENH: Added versioned executable support. This partially addresses bug#2143. Also made OUTPUT_NAME work when installing executables. 2005-08-17 16:11:18 -04:00
Bill Hoffman e59e9d0e59 ENH: fix bug 2087 lib prefix stripped off on windows 2005-08-10 12:55:41 -04:00
Andy Cedilnik bebc745824 ENH: Add set and get test propety command 2005-07-31 11:51:42 -04:00
Ken Martin c6b011e35e ENH: put cmake files intoa CMakeFiles subdir to clean up bin tree 2005-07-29 09:19:25 -04:00
Ken Martin f85f919dbc ENH: reduce the number of files produced still needs a bit more cleanup 2005-07-27 09:49:37 -04:00
Bill Hoffman b8b298104b ENH: make sure flags set in CC or CXX environment variables stay with the compiler 2005-07-20 15:44:55 -04:00
Bill Hoffman 44b54d2b94 ENH: fix for bug 992, mac bundle install fix 2005-07-14 16:00:40 -04:00
Bill Hoffman 1b115dc2e3 ENH: add -L as possible library flag 2005-07-13 16:24:16 -04:00
Ken Martin d11707c6e6 BUG: fix for debug optimized link libraries 2005-07-05 09:00:20 -04:00
Ken Martin 369308ca76 ENH: make LOCATION an computed property of the target and get rid of a bunch of const junk 2005-06-22 09:06:46 -04:00
Ken Martin 708828dc37 ENH: removed old convert calls 2005-06-10 08:41:47 -04:00
Andy Cedilnik 6af66e8b20 ENH: Add capability to include files to DartTestfile.txt and add example of that 2005-06-07 09:57:05 -04:00
Ken Martin a3a7f040c6 COMP: shut up warning 2005-05-13 15:50:42 -04:00
Ken Martin 8c65179339 ENH: warning fixes and some first steps in cleaning up the convert code 2005-05-13 09:54:30 -04:00
Andy Cedilnik 26d4dd174f COMP: Remove warning 2005-04-25 09:59:59 -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 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
Bill Hoffman c8cc20a1af BUG: add missing header for borland 2005-04-12 15:11:54 -04:00
Bill Hoffman 1004073942 ENH: performance improvements 2005-04-12 13:27:07 -04:00
Ken Martin ee7fbdf058 BUG: local gen was setting proj dir when it shouldnt 2005-04-12 09:36:18 -04:00
Bill Hoffman e0fab29395 ENH: remove commented code 2005-03-22 07:27:10 -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
Ken Martin 791aa6052b ENH: add support for out of source source 2005-03-14 11:29:15 -05:00
Brad King ea258e9a1a ENH: Converted some ConvertToRelativeOutputPath calls to ConvertToOptionallyRelativeOutputPath in preparation for making ConvertToRelativeOutputPath not check CMAKE_USE_RELATIVE_PATHS. 2005-02-24 16:25:47 -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
Bill Hoffman 2ebbf64508 ENH: remove unused code 2005-02-24 14:27:16 -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 7c7b173042 ENH: Added better default install location for windows builds. The previous default /usr/local did not make much sense. Now "%SystemDrive%/Program Files/PROJECT_NAME" is used, which is the windows equivalent to /usr/local. 2005-02-22 15:22:40 -05:00
Brad King 39af9ee1e4 ENH: Updated implementation of custom commands. Multiple command lines are now supported effectively allowing entire scripts to be written. Also removed extra variable expansions and cleaned up passing of commands through to the generators. The command and individual arguments are now kept separate all the way until the generator writes them out. This cleans up alot of escaping issues. 2005-02-22 10:32:44 -05:00
Bill Hoffman 785b0dc012 ENH: all tests are passing for XCode 2005-02-18 13:32:51 -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 a5ae290a5b STYLE: Adjusted signature of cmGeneratedFileStream to make copy-if-different more explicity. 2004-11-03 07:51: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
Bill Hoffman 674349caed FIX: fix shared flag 2004-10-29 15:32:06 -04:00
Bill Hoffman 36c8f1d157 ENH: put error checking for missing linker languages 2004-10-27 10:53:01 -04:00
Brad King 16e86a3ea9 ENH: Split part of GetIncludeFlags method into separate GetIncludeDirectories method. 2004-10-26 10:15:49 -04:00
Bill Hoffman ab817f2e81 COMP: fix warnings 2004-10-21 15:21:38 -04:00
Bill Hoffman 560b7af06e COMP: fix warning 2004-10-21 14:55:29 -04:00
Bill Hoffman 7cef36c628 ENH: add the ability to generate custom commands for a language that is not supported by an IDE 2004-10-21 14:34:02 -04:00
Bill Hoffman 39f112b71b BUG: make sure all returns for ConvertToRelativeOutputPath get passed by ConvertToOutputPath 2004-10-14 16:50:38 -04:00
Bill Hoffman 9fe79b2297 BUG: now that system tools relative path works, clean up the convert to relative output path code 2004-10-14 15:09:20 -04:00
Bill Hoffman 692ba48c4e ENH: major changes to support addition of languages from cmake modules directory. 2004-09-22 14:42:05 -04:00
Bill Hoffman 46a493ae74 ENH: remove warnings 2004-09-03 13:24:10 -04:00
Bill Hoffman c2ef51e181 ENH: define language extensions in cmake files and not hard coded, also fix trycompile problem 2004-09-03 12:03:41 -04:00
Brad King 419f53ea7b BUG: install_manifest.txt should be overwritten each time the install is run. 2004-07-02 14:08:49 -04:00
Andy Cedilnik f9b43b9212 BUG: Implement installing of shared library versioning and add test for the whole thing 2004-06-28 14:40:17 -04:00
Andy Cedilnik b97ad900c0 ENH: Fix bug in cmake install when exec/librayr output path not defined. Closes Bug - subdir INSTALL_TARGETS INSTALL_PROGRAMS dont work 2004-06-01 11:30:59 -04:00
Bill Hoffman cc2ab62f1c BUG: make sure install works with spaces in the path 2004-05-06 16:06:18 -04:00
Andy Cedilnik 5a5cd54730 ENH: GetSafeDefinition is now in cmMakefile 2004-04-27 12:02:32 -04:00
Andy Cedilnik ac8232e140 ENH: Do preinstall and postinstall script even if the target is not installed 2004-04-21 11:32:27 -04:00
Bill Hoffman d0cea4c7bb ENH: make relative paths optional and default off, and add a test for them 2004-03-31 10:01:52 -05:00
Andy Cedilnik 99feab3528 ENH: When installing project, write manifest 2004-03-28 17:59:46 -05:00
Andy Cedilnik 4fbf360a26 BUG: Support paths with spaces 2004-03-28 10:14:25 -05:00
Andy Cedilnik db68c543ff ENH: Add pre and post install script support 2004-03-27 20:59:44 -05:00
Bill Hoffman ddb815c125 ENH: add new subdirectory exclude from top option 2004-03-09 16:28:44 -05:00
Andy Cedilnik b1a7421840 ENH: Styart working on bundles support and abstract WIN32_EXECUTABLE 2004-02-28 18:59:19 -05:00
Andy Cedilnik 34b8852dbe ENH: Improve coverage support and add more verbosity 2004-02-23 09:56:53 -05:00
Andy Cedilnik 038abb867e ENH: Add support for install postfix 2004-02-03 10:53:41 -05:00
Andy Cedilnik a721b96407 ENH: Cleanup output 2004-02-03 10:25:51 -05:00
Andy Cedilnik c1002cccb0 ERR: Remove cout 2004-01-28 11:22:19 -05:00
Andy Cedilnik d13e30f3ae ENH: Make install on windows seems to work now 2004-01-27 12:37:30 -05:00
Andy Cedilnik 6eed8b55dd BUG: Fix for spaces in path 2004-01-26 16:29:36 -05:00
Andy Cedilnik 5c8c6fa3da ENH: Several windows bugs and fixes 2004-01-26 16:24:35 -05:00
Andy Cedilnik 7608d3f586 ERR: Fix std:: namespace 2004-01-25 19:30:24 -05:00
Andy Cedilnik 797db2bd82 ENH: Start adding new installation framework 2004-01-25 19:25:26 -05:00
Brad King ed1c2573aa BUG: Fix to build rule generation with relative paths. 2004-01-23 09:54:50 -05:00
Brad King 01e4c82bb4 STYLE: Deleted trailing whitespace. 2004-01-23 08:53:51 -05:00
Bill Hoffman d1efed1415 ENH: fix for hp make and relative paths never have targets with a ./ at the start of the name 2004-01-06 16:18:38 -05:00
Bill Hoffman ae69928e69 BUG: borland make treats ./target and target as different also convert to outputpathrelative may get passed a quoted path 2003-12-30 08:41:04 -05:00
Bill Hoffman b753a6794b BUG: use ./ infront of the current directory 2003-12-29 14:55:43 -05:00
Andy Cedilnik b5035770bc BUG: On Windows network paths do not really work as regular paths, so when the binary directory is on the network, we will not support relative paths 2003-12-24 15:02:25 -05:00
Bill Hoffman 09ba0a0a31 BUG: keep more of the case information 2003-12-23 15:01:10 -05:00
Bill Hoffman 79c23436d3 BUG: fix for vtk build 2003-12-23 13:31:11 -05:00
Bill Hoffman d79e3ae698 ENH: move relative path to parent generator class 2003-12-22 15:16:46 -05:00
Brad King 1f6a3c67b1 ENH: Added reference to Copyright.txt. Removed old reference to ITK copyright. Changed program name to CMake instead of Insight in source file header. Also removed tabs. 2002-10-23 18:03:27 -04:00
Ken Martin 38d1ea9b4c always set PROJECT_SOURCE_DIR etc 2002-10-04 08:59:02 -04:00
Ken Martin d2c4432bbe changed handling of FinalPass 2002-09-15 08:54:16 -04:00
Brad King 1bad75e8a2 ERR: Removed stray semi-colon. 2002-09-10 15:37:52 -04:00
Ken Martin 5b0611d709 updates 2002-09-04 15:24:49 -04:00
Ken Martin 3ffc4b2ee1 in progress checkin 2002-08-30 16:00:35 -04:00