summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileLibraryTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* BUG: When using link scripts use native shell escapes instead of makefile ↵Brad King2006-10-131-1/+15
| | | | shell escapes because the script is not interpreted by a make tool.
* BUG: Do not collapse the INSTALL_NAME_DIR setting because users may intend ↵Brad King2006-10-111-18/+3
| | | | to have .. in the path. This makes the makefile generator consistent with the already working Xcode implementation of this feature. Also added a test for @executable_path/.. style settings for this property.
* BUG: Fix/cleanup custom commands and custom targets. Make empty comment ↵Brad King2006-09-281-0/+6
| | | | 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.
* BUG: Need to clean manifest files that may have been generated for .exe and ↵Brad King2006-08-151-0/+13
| | | | .dll files.
* STYLE: Fixed line length.Brad King2006-08-081-1/+2
|
* ENH: Added target property CLEAN_DIRECT_OUTPUT to not clean all forms of a ↵Brad King2006-08-031-49/+83
| | | | library name so that static and shared libraries of the same name can coexist in a single build directory.
* BUG: Do not write link script lines that use the ':' command which is ↵Brad King2006-06-181-1/+6
| | | | supposed to be a no-op anyway.
* BUG: Need to use different link script name when relinking.Brad King2006-06-171-1/+8
|
* ENH: Added generation of link rules into script files executed by a cmake -E ↵Brad King2006-06-151-9/+73
| | | | command in order to support longer link lines. This is needed only on platforms without response file support and that may have weak shells.
* ENH: centralized locaiton of CMakeFiles settingKen Martin2006-06-141-2/+4
|
* BUG: Custom command outputs listed explicitly as source files in a target ↵Brad King2006-06-011-17/+10
| | | | 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.
* STYLE: fix line lengthKen Martin2006-05-121-24/+40
|
* ENH: name pdb files for visual studio make based buildsBill Hoffman2006-04-191-0/+5
|