Commit Graph

284 Commits

Author SHA1 Message Date
Ken Martin 8b0c61c322 ENH: added internal target property for the name of the project file 2007-04-10 09:54:01 -04:00
Brad King af95f61d76 ENH: Created method cmTarget::GetExportMacro to centralize computation of the export symbol name. This removes duplicate code from all the generators. Also enabled the export definition for executable targets with the ENABLE_EXPORTS property set. 2007-03-27 23:13:25 -04:00
Brad King 5a32aa5919 ENH: Added target property ENABLE_EXPORTS for executable targets. It enables the executables for linking by loadable modules that import symbols from the executable. This finishes the executable import library support mentioned in bug #4210. 2007-03-22 09:45:25 -04:00
Brad King fc7c433463 ENH: Added support for import libraries created by executable and module targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly. 2007-03-19 10:00:36 -04:00
Bill Hoffman 5891ba16ce ENH: add project to target map, not used yet, but created 2007-03-13 14:23:08 -04:00
Brad King 92ff60b6a6 ENH: Added target properties ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY. If set these override EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH for a specific target. They can be used to distribute target files in the build tree with the same granularity that the INSTALL command provides for the install tree. This addresses bug#2240 and bug#4210. 2007-03-09 15:14:27 -05:00
Brad King 528f60f4a6 ENH: Added implib option to cmTarget::GetDirectory to support a separate directory containing the import library. This is an incremental step for bug#4210. 2007-03-09 09:30:16 -05:00
Brad King 01dc699d82 ENH: Combined cmTarget::GetDirectory and cmTarget::GetOutputDir since they are nearly the same. This is another step for bug#2240. 2007-03-08 15:33:19 -05:00
Brad King 1a734f238a COMP: Fixed enumeration-not-used warning in switch. 2007-03-08 15:10:20 -05:00
Brad King 33ee83714d ENH: Replaced LibraryOutputPath and ExecutableOutputPath variables in Makefile and VS generators to instead ask each target for its output path. This significantly reduces total code size and centralizes previously duplicate code. It is also a step towards bug#2240. 2007-03-08 14:57:28 -05:00
Andy Cedilnik 8ad3430931 ENH: Make EXCLUDE_FROM_ALL a target and directory properties. Also, make IsInAll use EXCLUDE_FROM_ALL. Also, enable the test that tests this 2007-02-23 09:46:27 -05:00
Ken Martin 84315a7d57 BUG: fix accidental checkin 2007-02-19 14:32:36 -05:00
Ken Martin 09699018cc ENH: turn on spaces in path test 2007-02-19 13:20:27 -05:00
Bill Hoffman f7cd9f76ce STYLE: fix line length issues 2007-02-17 08:46:25 -05:00
Bill Hoffman ca0230a33e ENH: check in initial conv library stuff 2007-02-16 16:12:17 -05:00
Brad King 4bc0fd0941 ENH: Added cmTarget::GetPDBName method to simplify computation of .pdb file name for a target. 2007-02-01 16:54:49 -05:00
Brad King 712345ffc4 BUG: The .pdb file generated for a library or executable should match the real file name used for the target. This addresses bug#3277. 2007-02-01 09:57:24 -05:00
Ken Martin 1dd5db0235 COMP: fix some warnings and style issues 2006-12-08 09:27:52 -05:00
Ken Martin 27379d7b08 ENH: make properties a bit more formal with documentation and chaining 2006-12-07 09:45:32 -05:00
Bill Hoffman 26b527ac0f ENH: fix bug in full path to target depends stuff 2006-12-06 23:05:10 -05:00
Bill Hoffman 5ff037e894 BUG: better fix for .dll.lib problem 2006-11-30 17:32:46 -05:00
Ken Martin 2915f24274 COMP: fix compile issue on Sun hopefully 2006-11-29 17:10:29 -05:00
Ken Martin d6219588c0 COMP: fix compile issue on Sun 2006-11-29 15:45:49 -05:00
Ken Martin daa6d2bc04 ENH: updated handling of debug and optimized target link libraries 2006-11-29 11:00:17 -05:00
Bill Hoffman 0954696e3e ENH: fix line length problem 2006-11-27 12:14:16 -05:00
Bill Hoffman b3d5e0fa2d ENH: fix crash in plplot build 2006-11-27 12:11:27 -05:00
Bill Hoffman 9baa760315 BUG: fix problem when a target name is the same as the output of a custom command 2006-11-25 10:59:26 -05:00
Ken Martin 786fdbc196 ENH: fix a bug with useing debuf optimized libs from other builds 2006-11-16 10:57:00 -05:00
Brad King b155f3aa1c ENH: Adding image version number (major.minor) property to windows binaries. Default is 0.0, but the VERSION target property may change the value. Windows now has first-class support for dll and exe versioning. This addresses bug#1219. 2006-10-16 18:17:14 -04:00
Brad King e0a662a3dd ENH: Adding version number to the name of a DLL built in cygwin but not the import library. This addresses bug#3571. 2006-10-05 16:30:47 -04:00
Brad King fdcc888c56 ENH: Added support for getting a target's location on a per-configuration basis (ex. DEBUG_LOCATION). This does not fix but helps with bug#3250. 2006-09-29 16:42:58 -04:00
Brad King 441d208bb3 ENH: Added target property CLEAN_DIRECT_OUTPUT to not clean all forms of a library name so that static and shared libraries of the same name can coexist in a single build directory. 2006-08-03 09:42:48 -04:00
Brad King ab61137eb1 COMP: Fix and/or disable warnings for Borland 5.6 build. 2006-08-01 11:38:42 -04:00
Brad King b4542762a7 ENH: Added target property INSTALL_RPATH_USE_LINK_PATH to append the linker search path directories not inside the project to the INSTALL_RPATH automatically. The property is initialized by the variable CMAKE_INSTALL_RPATH_USE_LINK_PATH when the target is created. 2006-06-15 10:12:19 -04:00
Brad King 932e3524fc ENH: Changing shared library versioned file names on OSX to conform to that platform's convention. 2006-06-05 13:45:43 -04:00
Bill Hoffman 0f2f074978 ENH: fix for vtk 4.4 and other projects that may try to link to a module 2006-05-19 13:02:12 -04:00
Ken Martin cac30b5ff8 STYLE: fix line length 2006-05-12 14:12:13 -04:00
Brad King 323dc3a89a ENH: Added information about target needing a source file when one cannot be found. 2006-05-05 11:46:20 -04:00
Brad King 392137b6d7 ENH: Added <config>_OUTPUT_NAME target property to allow the output name to be set on a per-configuration basis. 2006-04-18 10:56:28 -04:00
Andy Cedilnik 93f5712a7d COMP: Remove warnings 2006-03-28 16:25:29 -05:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Bill Hoffman 89e5fc63fe STYLE: fix line lengths 2006-03-10 13:54:57 -05:00
Brad King 5792dc8da8 ENH: Replaced UpdateLocation method with call to GetLocation. Added comment about problems with the LOCATION attribute. 2006-03-03 18:06:44 -05:00
Andy Cedilnik bc4e5581ee ENH: Add support for exporting graphviz of the project dependencies 2006-03-03 14:24:31 -05:00
Brad King 93c95f1cc5 BUG: Fixed installation of MacOSX Bundle executables and the corresponding install_name remapping support. Extended the BundleTest test to check that this all works. Part of these fixes required changing the signature of AppendDirectoryForConfig in all generators. It now accepts prefix and suffix strings to deal with whether leading or trailing slashes should be included with the configuration subdirectory. 2006-03-03 12:58:48 -05:00
Brad King 54732b0607 ENH: Finished CMAKE_<CONFIG>_POSTFIX feature and documented it. The value of this variable is used when a library target is created to initialize the <CONFIG>_POSTFIX target property. The value of this property is used (even for executables) to define a per-configuration postfix on the name of the target. Also enabled use of the OUTPUT_NAME property for non-executable targets. 2006-03-01 22:45:13 -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
Andy Cedilnik ea5564624c ENH: Add a notion of a global target 2006-02-23 10:03:24 -05:00
Brad King c21287552b ENH: Switched order of slash and configuration name in cmGlobalGenerator::AppendDirectoryForConfig method to increase flexibility. 2006-02-19 19:28:53 -05:00
Brad King 8dd00d5b1e BUG: Fixed relink with new install framework. 2006-02-19 17:27:47 -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 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 afa8367885 BUG: Fixed cmTarget::GetFullPath to not append the configuration name when only one configuration is built. It now asks the generator what subdirectory if any to use for a given configuration name. 2006-02-03 11:36:11 -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 a91947039a ENH: for all custom commands that can not be given to a target, add them to all targets in the current makefile 2006-01-09 14:40:31 -05:00
Bill Hoffman 86ad253427 BUG: fix for bug 2322, use CMAKE_EXECUTABLE_SUFFIX variable for exe suffix 2006-01-02 13:37:53 -05:00
Andy Cedilnik 416bbaef53 COMP: Remove warnings 2005-12-30 12:58:00 -05:00
Bill Hoffman 452925649a ENH: add better support for framework linking 2005-12-26 13:14:19 -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
Bill Hoffman d0e801247f ENH: executable prefix and post fix variables should not be the same as the executable extension 2005-11-23 10:27:05 -05:00
Brad King 102dd34bdc BUG: Do not expand escape sequences when re-expanding variables in include directories, link directories, and link libraries. 2005-11-22 17:03:07 -05: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 35e36b5b76 ENH: make sure source file depends are used to determine if custom commands are used 2005-07-26 13:26:37 -04:00
Ken Martin 7f2e7443bf ENH: added Alexander's target property TYPE 2005-07-01 10:57:39 -04:00
Ken Martin 3b66c0a574 ENH: some better checks 2005-06-22 09:12:05 -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 ea0a77fd81 ENH: removed old 1.2 compatability 2005-06-09 11:33:55 -04:00
Ken Martin 78b5cca6e3 ENH: another step to the next generator still not optimized yet 2005-05-18 13:46:00 -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
Andy Cedilnik 030dd4b91e ENH: Speedup by only getting the source once 2005-04-13 16:34:52 -04:00
Brad King 04b5d1613c COMP: Using const_iterator instead of iterator to walk through custom command dependencies. 2005-02-18 16:12:33 -05:00
Bill Hoffman 43bc8a0d63 COMP: remove warnings 2004-10-22 16:58:59 -04:00
Bill Hoffman ab817f2e81 COMP: fix warnings 2004-10-21 15:21:38 -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 5bf55d1590 ENH: shorten the symbols a bit and remove maps of std::string for map of cmStdString 2004-09-29 16:07:07 -04:00
Bill Hoffman 8cb20b7052 BUG: fix perfered linker language code 2004-09-22 17:50:36 -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 9655299f08 ENH: initial fortran support 2004-08-06 14:51:41 -04:00
Bill Hoffman c8101e8e47 BUG: fix for bug 998, fix spelling errors 2004-07-26 16:59:55 -04:00
Bill Hoffman 86bf9f396e ENH: add a property for HAS_CXX to a target that will force the use of a c++ compiler in the linking of an executable that contains only c code 2004-04-22 14:38:17 -04:00
Bill Hoffman 1616135d4e ENH: remove warnings on sgi 2004-04-07 09:58:43 -04:00
Brad King 5c9fadee4f BUG: _LINK_TYPE cache variable should never be switched from optimized to debug or vice versa. 2004-04-02 13:21:20 -05:00
Andy Cedilnik c3840b5cc3 BUG: Fix Bug #445 - Same library in multiple projects can cause problems 2003-12-18 13:04:28 -05:00
Bill Hoffman 42b39099a7 ENH: add support for OBJECT_DEPENDS for visual studio 2003-07-31 15:32:53 -04:00
Andy Cedilnik ef20a2a8a9 BUG: Fix copy/paste typo 2003-07-22 13:15:45 -04:00
Ken Martin 117f961a5a moved function into cmTarget 2003-06-24 15:10:47 -04:00
Ken Martin a5a067fa1c removed some no longer required code 2003-06-23 11:16:20 -04:00
Ken Martin 703242071f more crazt changes source files now must match with full path 2003-06-05 14:40:25 -04:00
Bill Hoffman 0876c19dc8 ENH: remove warnings from borland 6 compiler 2003-05-29 09:34:06 -04:00
Bill Hoffman ca773a5d6d ENH: add stdlib.h for portability to borland 6 2003-05-24 10:07:58 -04:00
Bill Hoffman 94c396184e BUG: HasCXX did not use GetFileFormat and was broken 2003-03-15 10:04:37 -05:00
Bill Hoffman 3859417d1a ENH: add target properties 2002-12-20 17:15:45 -05:00
Brad King 4888c088ae ENH: Moved ExpandListVariables out of individual commands. Argument evaluation rules are now very consistent. Double quotes can always be used to create exactly one argument, regardless of contents inside. 2002-12-11 18:13:33 -05:00
Amitha Perera 939035ad91 BUG: the dependency analysis would incorrectly alphabetically re-order the
link lines, which affects external libraries pulled up from deep within
the dependency tree. Fixed by preserving order everywhere.
2002-11-19 18:01:05 -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
Andy Cedilnik 9ed93397fb If you specify header file as source, it should still use C compiler and not CXX. Also fix COnly test so that it make sure that this still works... 2002-10-06 12:12:59 -04:00
Ken Martin 7ddb408621 removed some includes 2002-09-27 16:24:10 -04:00
Ken Martin 7b5a8762c6 modified how source files store properties 2002-08-16 11:20:18 -04:00
Ken Martin 44a7cd55ff removed all source lists from the system and made them vectors. Also appended _CMAKE_PATH to the end of the automatic cache entries for executables and libraries. Odds of all these changes working are slim but cmake builds and passes all its tests. VTK40 starts building 2002-06-27 15:57:09 -04:00
Bill Hoffman 32353c55e5 BUG: try to tell the difference between variables with sources and other variables 2002-06-25 09:59:08 -04:00
Ken Martin d1879a77e8 modified to handle src list vectors without proper dollar signs 2002-06-24 16:42:34 -04:00
Ken Martin 38145ad5a4 modified create test source to create a vector 2002-06-19 12:52:16 -04:00
Brad King 28895b0f9f ERR: Fixed compiler warnings. 2002-06-18 17:20:27 -04:00
Bill Hoffman e5668ea656 ENH: only add _LIB_DEPEND information for libraries and modules 2002-06-03 10:25:55 -04:00
Amitha Perera c24c2cca18 BUG: never make a target depend on itself. This was causing unnecessary library duplication, resulting in link errors on some platforms. 2002-05-29 15:00:37 -04:00
Amitha Perera 1c9981eb1d FIX: Remove assert since it was breaking IRIX builds. 2002-05-11 22:28:59 -04:00
Jim Miller de44f1faac FIX: Const reference to a set needs a const_iterator. (.NET build error) 2002-05-10 14:06:34 -04:00
Amitha Perera 0e6b39e52f BUG: Correct some of the dependency analysis code.
- Make sure the original link line is untouched
- Avoid duplicating the link line when supporting version < 1.4
- Make sure the cyclic dependencies and such are output correctly in
  complicated cases.
- Avoid outputing dependencies that are already satisfied on the original
  link line when possible.
2002-05-10 13:35:42 -04:00
Bill Hoffman 6734d3bb88 ENH: change set<string> to set<cmStdString> to avoid long symbols that crash ar on solaris 2002-05-09 09:33:52 -04:00
Bill Hoffman cdf550de13 ENH: rework library depend stuff 2002-05-03 16:34:05 -04:00
Amitha Perera 4bff970413 - bug fix where paths weren't being output when LIB_OUT_PATH *isn't* used
- test case for above mentioned bug
- more comments. Comments are good.
2002-05-03 00:27:34 -04:00
Bill Hoffman 0838265fdc check for optimized or debug library adds 2002-05-02 19:09:12 -04:00
Bill Hoffman 46e9d970e9 remove canonical conversion for lib names 2002-05-02 16:13:18 -04:00
Bill Hoffman a80153b5cb make it backwards compatible with old cmake 2002-05-02 15:56:13 -04:00
Bill Hoffman 2242006ca1 Debug optimized cache fixes 2002-05-02 15:10:19 -04:00
Amitha Perera 4fe8947bcc BUG: The library paths should stay with the libraries during dependency analysis. 2002-05-02 13:41:40 -04:00
Bill Hoffman 27fe57b716 ENH: change LINK_LIBRARY to add to targets 2002-05-02 13:17:10 -04:00
Amitha Perera 3d4230033a BUG: if a_LIBS_DEPENDS exists but is empty, there are no explicit dependencies. 2002-05-02 02:27:26 -04:00
Amitha Perera 099436db26 ENH: Make the LinkLibraries command contribute dependencies towards AddLibraries. 2002-05-01 16:33:27 -04:00
Amitha Perera 1f8df8585e ENH: Add library dependency analysis. 2002-05-01 14:00:21 -04:00
Bill Hoffman 4ea0f6b949 ENH: add enable language support for PROJECT command, this means that a C only project can be built with cmake, even without a cxx compiler 2002-04-02 15:43:23 -05:00
Bill Hoffman 8b3b49a010 ENH: major change, the cmMakefile now contains a master list of cmSourceFile objects, the source lists reference the list via pointers, also you can now set properties on a file, like compile flags, abstract, etc. 2002-03-29 10:06:30 -05:00
Will Schroeder a6a43d5320 ENH:Updated copyright 2002-01-21 15:30:43 -05:00
Brad King cfa25e9e1a ENH: Added INSTALL_PROGRAMS command and corresponding support. This involved splitting cmTarget::INSTALL into INSTALL_FILES and INSTALL_PROGRAMS enum values. INSTALL_FILES no longer adds execute permission. The INSTALL_PROGRAMS commnad takes either a list of explicit names, or a regex. It will not expand source lists like the INSTALL_FILES command will. 2001-07-31 11:29:21 -04:00
Amitha Perera e169953e92 ENH: Source and header file extensions are in variables in cmMakefile.
AUX_SOURCE_DIRECTORY will only add files that have a "source" extension.
2001-07-16 18:40:42 -04:00
Ken Martin 012603c746 duh 2001-06-13 13:53:11 -04:00
Ken Martin 521e301116 minor cvs web changeCMakeLists.txt 2001-06-13 13:49:24 -04:00
Ken Martin dbebd0a276 added install rules 2001-05-23 11:31:43 -04:00
Bill Hoffman e606732b94 ENH: allow duplicate libraries 2001-05-23 09:35:14 -04:00
Ken Martin a15ae83e95 fix for expaning libraries prior to generating dsp 2001-05-10 15:32:49 -04:00
Ken Martin 2da0c57d46 added TARGET_LINK_LIBRARY command and support for debug and release libraries to link against 2001-04-30 10:44:00 -04:00
Will Schroeder 54cfe84f3f ENH:New copyright 2001-04-27 08:01:17 -04:00
Ken Martin 73f04d1409 many fixes and cleanup and features 2001-04-24 16:49:12 -04:00