Commit Graph

103 Commits

Author SHA1 Message Date
Brad King c895d9f2e0 ENH: Give target in which custom commands build
This gives the cmTarget instance for which custom command rules are
being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands.
It will be useful in the future.
2009-02-10 08:50:33 -05:00
Brad King 67671ac400 BUG: Do not re-generate after a AppBundle build
A previous change accidentally added the MacOS content directory and
Info.plist files created for MACOSX_BUNDLE executables to the list of
CMake input files.  This causes CMake to re-generate the project too
often.  These items should be added to the list of CMake output files.
2009-02-06 09:03:27 -05:00
Brad King 07454a39f1 ENH: Factor out listing of objects on command line
Previously generation of object file lists for linker and cleaning
command lines was duplicated for library and executable target
generators.  This combines the implementations.
2008-10-15 10:21:14 -04:00
Brad King cd1528279c STYLE: Remove computed but unused variable.
An old list of object files for cleaning seems to have been left behind.
This removes it.
2008-10-15 10:21:03 -04:00
Brad King ad44a41a18 ENH: Fix optional use of relative paths.
These changes refactor cmLocalGenerator methods Convert and
ConvertToOutputForExisting to support references inside the build tree
using relative paths.  After this commit, all tests pass with Makefile
generators when relative paths are enabled by default.  See issue #7779.
2008-10-09 15:30:07 -04:00
David Cole d797592726 BUG: Fix issue #3648 - make sure CMake reruns if a Bundle application's directory is removed or if it's Info.plist file disappears since those elements are put in place at CMake configure time. 2008-09-02 12:43:45 -04:00
Brad King 1829bed8b5 BUG: Do not create target output directory in cmTarget. Let the generators do it. 2008-04-07 13:39:13 -04:00
Brad King dfe2ea6406 ENH: Handle large object file lists on some platforms
- Use a response file when enabled by
    CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_OBJECTS
  - Enable for C and CXX with cl (MSVC)
  - Enable for Fortran with ifort (Intel Fortran)
2008-02-27 17:10:45 -05:00
Brad King 454da64c99 BUG: Link scripts should be generated with copy-if-different and included as a dependency of the link rule. 2008-02-20 14:56:29 -05:00
Brad King 9ed4266306 ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE properties 2008-02-18 16:38:34 -05:00
Brad King ed76198b84 ENH: Cleanup building of OS X bundle content
- Fixes repeated rebuild of bundles by Makefile generators
 - Add special rules to copy sources to their
   MACOSX_PACKAGE_LOCATION bundle directory
 - Remove MacOSX_Content language hack
   - Remove EXTRA_CONTENT property
   - Remove MACOSX_CONTENT
   - Remove corresponding special cases in object names
2008-02-15 11:22:23 -05:00
Brad King 67f8c0fd10 ENH: Allow multiple OS X applications bundles to be created in a single build directory. Converted Info.plist files to be generated directly instead of configured with make variables. The MACOSX_BUNDLE_* variables are now properties (and vars for compatibility). 2008-02-14 15:31:08 -05:00
Brad King 52b3f85642 ENH: Enable use of link script whenever incremental archive construction rules are available. Enable use of archive construction rules on MSYS. 2008-01-29 21:16:49 -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 59aa144516 ENH: Simplified and moved link script implementation up from cmMakefileLibraryTargetGenerator to cmMakefileTargetGenerator and use for cmMakefileExecutableTargetGenerator too. This addresses bug #6192. 2007-12-28 14:59:06 -05:00
Brad King d83b4cd255 ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global. 2007-12-21 12:22:12 -05:00
Bill Hoffman 0fc4d10e38 ENH: do not remove executables and dll's before linking them so that incremental links work, incremental links are still broken for vs 2005 and greater because of the manifest stuff 2007-10-18 09:38:34 -04:00
Brad King cd6abe486d ENH: Simplify makefile target generator listing of object files to clean. 2007-08-02 09:37:10 -04:00
Brad King 0fa1bd2f71 COMP: Fix build on mac after change to GetSourceFiles signature. 2007-05-28 11:03:11 -04:00
Brad King c51c245efa BUG: A utility target should not run the custom commands from its source files directly. The target-level rule must add dependencies on the file-level custom commands to drive them. This bug was introduced by the "fix" to bug 4377. This also restores the documented behavior that PRE_BUILD rules are treated as PRE_LINK rules on non-VS generators. Also fixed custom command dependencies on the rule file build.make so that custom commands re-run when the commands themselves change. 2007-05-01 13:51:25 -04:00
Brad King 721ff36924 ENH: Added platform variable CMAKE_EXE_EXPORTS_<lang>_FLAG to add a linker flag when building executables that have the ENABLE_EXPORTS property set. 2007-04-17 23:39:47 -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
Brad King 5ed8ea8a0e BUG: Fixed OSX bundles to be built in the directory specified by cmTarget::GetDirectory(). This is an incremental step for bug#2240. 2007-03-09 14:50:11 -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 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
Brad King 4089c76890 BUG: Some calls to Convert() were converting for MAKEFILE but then passing the output to the build shell. The calls have now been converted to call Convert() with SHELL. 2007-03-08 10:31:03 -05:00
Brad King ed7de15676 BUG: Do not clean the .pdb file for a target just before it is linked! This finishes addressing bug#4341. 2007-02-01 16:52:52 -05:00
Brad King 4d44392652 BUG: Clean rule for exe pdb file should use full path. 2007-02-01 16:07:32 -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
Brad King f7611f167c ENH: Made cmMakefileTargetGenerator::GlobalGenerator have full type cmGlobalUnixMakefileGenerator3 to give access to all methods. Fixed broken custom targets with no commands for Borland makefiles when CMAKE_SKIP_RULE_DEPENDENCY is set. 2006-12-14 14:30:41 -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 9a1d4e92eb BUG: Fix/cleanup custom commands and custom targets. Make empty comment strings work. Fix ZERO_CHECK target always out of date for debugging. Fix Makefile driving of custom commands in a custom target. Fix dependencies on custom targets not in ALL in VS generators. 2006-09-28 16:40:35 -04:00
Brad King c7daee6860 BUG: Need to clean manifest files that may have been generated for .exe and .dll files. 2006-08-15 15:28:29 -04:00
Andy Cedilnik 5a71f83f7a BUG: Several fixes to handle bundle content on Mac OSX 2006-07-06 16:04:49 -04:00
Ken Martin 8e9a6beccc ENH: centralized locaiton of CMakeFiles setting 2006-06-14 12:28:32 -04:00
Brad King 4189370497 BUG: Custom command outputs listed explicitly as source files in a target should be generated whether or not an object file in the target needs them. This useful and makes Makefile builds more consistent with VS IDE builds. 2006-06-01 11:45:51 -04:00
Brad King 1b956e9b74 BUG: Finished fix to bug#3229 and bug#3272. 2006-05-23 09:58:51 -04:00
Brad King 0379bb4909 BUG: Added missing cd command before running executable version symlink rule. This addresses bug#3229. 2006-05-16 13:41:27 -04:00
Ken Martin 47c7108111 STYLE: fix line length 2006-05-12 12:29:09 -04:00
Bill Hoffman e6ef33f598 ENH: name pdb files for visual studio make based builds 2006-04-19 16:36:14 -04:00
Bill Hoffman 3c8e899102 ENH: add support for per config target LINK_FLAGS 2006-04-03 12:57:51 -04:00
Brad King eb31755eb2 ENH: Implemented VT100 terminal escape sequences. If CMAKE_COLOR_MAKEFILE is set then messages produced by makefiles will be in color if the native tool supports it. This addresses bug#3060. 2006-03-30 15:39:03 -05:00
Andy Cedilnik 40272a16bd ENH: Add support for adding content to bundles 2006-03-28 08:54:01 -05:00
Ken Martin 3d96e52261 STYLE: some m_ to this-> cleanup 2006-03-15 11:02:08 -05:00
Bill Hoffman 4c5ba06fa1 ENH: use a cmake script to do the clean step, this allows for large numbers of files to be removed without making the command line too long 2006-03-09 14:30:35 -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 576f0b65c7 BUG: Fix generation of Xcode 2.0 and earlier projects to use CMAKE_BUILD_TYPE. 2006-02-24 11:13:31 -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 43df79d9fc BUG: Do not perform pre-build, pre-link, or post-install commands when relinking. 2006-02-16 15:39:19 -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 60cd72d01c ENH: Cleaned up generation of symbolic rules. Removed generation of rebuild_cache and similar rules from internal makefiles. 2006-02-15 16:35:16 -05:00
Ken Martin 7740ccd1a4 ENH: some cleanup of the makefile generator 2006-02-14 10:36:04 -05:00