summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileLibraryTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* ENH: Pass config to cmTarget::GetLinkerLanguageBrad King2009-07-081-5/+10
| | | | | | This passes the build configuration to most GetLinkerLanguage calls. In the future the linker language will account for targets linked in each configuration.
* ENH: Pass config to cmTarget RPATH install methodsBrad King2009-07-081-2/+2
| | | | | This passes the build configuration to cmTarget methods IsChrpathUsed and NeedRelinkBeforeInstall. Later these methods will use the value.
* ENH: Simpler cmTarget::GetLinkerLanguage signatureBrad King2009-07-071-10/+5
| | | | | | | This method previously required the global generator to be passed, but that was left from before cmTarget had its Makefile member. Now the global generator can be retrieved automatically, so we can drop the method argument.
* ENH: Pass config to cmTarget::GetDirectory()Brad King2009-07-031-4/+4
| | | | | | | This teaches the makefile generators to always pass the configuration name to the cmTarget::GetDirectory method. Later this will allow per-configuration target output directories, and it cleans up use of the current API.
* ENH: Create cmMakefileTargetGenerator::ConfigNameBrad King2009-07-031-19/+11
| | | | | | This member stores the build configuration for which Makefiles are being generated. It saves repeated lookup of the equivalent member from cmLocalUnixMakefileGenerator3, making code shorter and more readable.
* ENH: Always imply CLEAN_DIRECT_OUTPUT target propBrad King2009-05-011-91/+28
| | | | | | | | | | | | | | This property was left from before CMake always linked using full path library names for targets it builds. In order to safely link with "-lfoo" we needed to avoid having both shared and static libraries in the build tree for targets that switch on BUILD_SHARED_LIBS. This meant cleaning both shared and static names before creating the library, which led to the creation of CLEAN_DIRECT_OUTPUT to disable the behavior. Now that we always link with a full path we do not need to clean old library names left from an alternate setting of BUILD_SHARED_LIBS. This change removes the CLEAN_DIRECT_OUTPUT property and instead uses its behavior always. It removes some complexity from cmTarget internally.
* ENH: Allow projects to disable per-rule echo linesBrad King2009-03-161-19/+22
| | | | | | | | | This creates global property RULE_MESSAGES which can be set to disbale per-rule progress and action reporting. On Windows, these reports may cause a noticable delay due to the cost of starting extra processes. This feature will allow scripted builds to avoid the cost since they do not need detailed information anyway. This replaces the RULE_PROGRESS property created earlier as it is more complete. See issue #8726.
* STYLE: Separate unrelated logicBrad King2009-03-161-3/+12
| | | | | | This separates unrelated uses of a library-type switch into separate switches. An upcoming commit will conditionally enter one of the switches.
* ENH: Define RULE_LAUNCH_* propertiesBrad King2009-02-101-0/+2
| | | | | | | This defines global, directory, and target properties RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM. Their values specify 'launcher' command lines which are prefixed to compile, link, and custom build rules by Makefile generators.
* ENH: Give target in which custom commands buildBrad King2009-02-101-3/+6
| | | | | | This gives the cmTarget instance for which custom command rules are being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands. It will be useful in the future.
* ENH: Factor out listing of objects on command lineBrad King2008-10-151-29/+3
| | | | | | Previously generation of object file lists for linker and cleaning command lines was duplicated for library and executable target generators. This combines the implementations.
* STYLE: Remove computed but unused variable.Brad King2008-10-151-3/+0
| | | | | An old list of object files for cleaning seems to have been left behind. This removes it.
* ENH: Fix optional use of relative paths.Brad King2008-10-091-3/+3
| | | | | | | 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.
* ENH: Create Info.plist files in OS X FrameworksBrad King2008-09-021-2/+11
| | | | | | | A Mac OS X Framework should provide a Resources/Info.plist file containing meta-data about the framework. This change generates a default Info.plist for frameworks and provides an interface for users to customize it.
* ENH: Build large archives incrementallyBrad King2008-08-041-0/+4
| | | | | | Creation of archive libraries with the unix 'ar' tool should be done incrementally when the number of object files is large. This avoids problems with the command line getting too many arguments.
* ENH: Set version info for shared libs on OSX.Brad King2008-07-091-0/+42
| | | | | | - Map SOVERSION major.minor.patch to compatibility_version - Map VERSION major.minor.patch to current_version - See issue #4383.
* BUG: make sure OBJECT_DIR is in the path of the SHELLBill Hoffman2008-04-111-1/+4
|
* BUG: Correct Mac OS X framework behaviorBrad King2008-04-081-58/+80
| | | | | | | | | | | | - Place the built library in foo.framework/Versions/A/foo - Do not create unused content symlinks (like PrivateHeaders) - Do not use VERSION/SOVERSION properties for frameworks - Make cmTarget::GetDirectory return by value - Remove the foo.framework part from cmTarget::GetDirectory - Correct install_name construction and conversion on install - Fix MACOSX_PACKAGE_LOCATION under Xcode to use the Versions/<version> directory for frameworks - Update the Framework test to try these things
* BUG: Do not create target output directory in cmTarget. Let the generators ↵Brad King2008-04-071-0/+2
| | | | do it.
* ENH: Handle large object file lists on some platformsBrad King2008-02-271-1/+27
| | | | | | | - 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)
* BUG: Link scripts should be generated with copy-if-different and included as ↵Brad King2008-02-201-1/+1
| | | | a dependency of the link rule.
* ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE propertiesBrad King2008-02-181-115/+30
|
* ENH: Allow multiple OS X applications bundles to be created in a single ↵Brad King2008-02-141-16/+0
| | | | 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).
* ENH: Avoid computing link information for static library targets. They do ↵Brad King2008-02-071-1/+5
| | | | not link.
* ENH: Enable use of link script whenever incremental archive construction ↵Brad King2008-01-301-3/+16
| | | | rules are available. Enable use of archive construction rules on MSYS.
* ENH: Added build rule variables CMAKE_<LANG>_ARCHIVE_CREATE, ↵Brad King2008-01-301-9/+97
| | | | CMAKE_<LANG>_ARCHIVE_APPEND, and CMAKE_<LANG>_ARCHIVE_FINISH to support creation of static archive libraries out of a large number of objects. See bug #6284.
* ENH: Support exporting/importing of Framework targets.Brad King2008-01-281-7/+4
| | | | | | | | - Imported frameworks have the FRAMEWORK property set - Added cmTarget::IsFrameworkOnApple method to simplify checks - Also remove separate IMPORTED_ENABLE_EXPORTS property and just use ENABLE_EXPORTS since, like FRAMEWORK, it just represents the target type. - Document FRAMEWORK keyword in INSTALL command. - Updated IMPORTED_LOCATION property documentation for Frameworks
* ENH: Simplified and moved link script implementation up from ↵Brad King2007-12-281-91/+47
| | | | cmMakefileLibraryTargetGenerator to cmMakefileTargetGenerator and use for cmMakefileExecutableTargetGenerator too. This addresses bug #6192.
* ENH: Add a depends check step to custom targets. Add support for the ↵Brad King2007-12-211-3/+4
| | | | IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global.
* ENH: do not remove executables and dll's before linking them so that ↵Bill Hoffman2007-10-181-9/+13
| | | | incremental links work, incremental links are still broken for vs 2005 and greater because of the manifest stuff
* ENH: Finish up the Framework creation code restructuring. Frameworks build ↵David Cole2007-10-101-19/+19
| | | | and install now. More work needed on the packaging step. See Tests/Framework for example use.
* ENH: Improve framework support in the makefile generator to match the ↵David Cole2007-08-141-96/+71
| | | | support just added to the Xcode generator. BUG: Remove spurious warning and eliminate empty Libraries subdir inside built framework.
* ENH: Simplify makefile target generator listing of object files to clean.Brad King2007-08-021-6/+2
|
* BUG: Only pay attention to the FRAMEWORK target property for SHARED library ↵David Cole2007-08-011-2/+3
| | | | targets
* ENH: Merging changes from branch CMake-SourceFile2-b between tagsBrad King2007-06-181-16/+5
| | | | | | | | | | | | | | | | | | | | | | | | CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk. This commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and CMake-SourceFile2-b-mp1-post on the trunk. The changes re-implement cmSourceFile and the use of it to allow instances to be created much earlier. The use of cmSourceFileLocation allows locating a source file referenced by a user to be much simpler and more robust. The two SetName methods are no longer needed so some duplicate code has been removed. The strange "SourceName" stuff is gone. Code that created cmSourceFile instances on the stack and then sent them to cmMakefile::AddSource has been simplified and converted to getting cmSourceFile instances from cmMakefile. The CPluginAPI has preserved the old API through a compatibility interface. Source lists are gone. Targets now get real instances of cmSourceFile right away instead of storing a list of strings until the final pass. TraceVSDependencies has been re-written to avoid the use of SourceName. It is now called TraceDependencies since it is not just for VS. It is now implemented with a helper object which makes the code simpler.
* ENH: prevent crashBill Hoffman2007-06-041-0/+6
|
* ENH: initial support for creation of frameworks on MacBill Hoffman2007-05-081-1/+246
|
* BUG: A utility target should not run the custom commands from its source ↵Brad King2007-05-011-1/+1
| | | | 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.
* ENH: Added support for import libraries created by executable and module ↵Brad King2007-03-191-9/+2
| | | | 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.
* ENH: Do not compute a path name for the import library if there is no import ↵Brad King2007-03-091-3/+9
| | | | library. This simplifies tracking down problems with trying to create import libraries for MODULEs.
* ENH: Added cmMakefileTargetGenerator::GenerateExtraOutput to wrap up ↵Brad King2007-03-091-17/+10
| | | | creation of rules to drive creation of extra outputs generated as side effects of another rule. Reimplemented generation of custom command multiple output rules to use it. Reimplemented soname symlink output dependencies to use it. Now if a symlink is deleted the library will be recreated with the symlink.
* BUG: Need to account for import library directory when constructing the ↵Brad King2007-03-091-1/+1
| | | | clean rule for the import library. This is an incremental fix for bug #4210.
* ENH: Added implib option to cmTarget::GetDirectory to support a separate ↵Brad King2007-03-091-1/+5
| | | | directory containing the import library. This is an incremental step for bug#4210.
* ENH: Combined cmTarget::GetDirectory and cmTarget::GetOutputDir since they ↵Brad King2007-03-081-1/+1
| | | | are nearly the same. This is another step for bug#2240.
* ENH: Replaced LibraryOutputPath and ExecutableOutputPath variables in ↵Brad King2007-03-081-6/+6
| | | | 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.
* BUG: Some calls to Convert() were converting for MAKEFILE but then passing ↵Brad King2007-03-081-21/+7
| | | | the output to the build shell. The calls have now been converted to call Convert() with SHELL.
* BUG: Do not clean the .pdb file for a target just before it is linked! This ↵Brad King2007-02-011-1/+5
| | | | finishes addressing bug#4341.
* BUG: The .pdb file generated for a library or executable should match the ↵Brad King2007-02-011-3/+10
| | | | real file name used for the target. This addresses bug#3277.
* ENH: Made cmMakefileTargetGenerator::GlobalGenerator have full type ↵Brad King2006-12-141-1/+1
| | | | cmGlobalUnixMakefileGenerator3 to give access to all methods. Fixed broken custom targets with no commands for Borland makefiles when CMAKE_SKIP_RULE_DEPENDENCY is set.
* ENH: Adding image version number (major.minor) property to windows binaries. ↵Brad King2006-10-161-0/+18
| | | | 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.