summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
Commit message (Collapse)AuthorAgeFilesLines
* ENH: Support full-path libs w/out valid names.Brad King2008-07-231-0/+3
| | | | | | | | This change introduces policy CMP0008 to decide how to treat full path libraries that do not appear to be valid library file names. Such libraries worked by accident in the VS IDE and Xcode generators with CMake 2.4 and below. We support them in CMake 2.6 by introducing this policy. See policy documentation added by this change for details.
* ENH: Add full target version signature cmTarget::GetTargetVersion.Brad King2008-07-091-3/+16
|
* ENH: Allow users to specify a custom Info.plist templateBrad King2008-05-171-5/+19
| | | | | | - Create MACOSX_BUNDLE_INFO_PLIST target property to specify template. - Look for MacOSXBundleInfo.plist.in in CMAKE_MODULE_PATH by default. - See issue #6983.
* ENH: Allow users to specify macro-like #include line transforms for ↵Brad King2008-05-141-0/+18
| | | | | | | | dependency scanning. - Define IMPLICIT_DEPENDS_INCLUDE_TRANSFORM property on targets and directories. - Make the directory version inherited. - See issue #6648.
* BUG: Make sure all source files are found before generating.Brad King2008-05-121-0/+15
| | | | | | | | - Previously this was done implicitly by the check for a target link language which checked all source full paths. - The recent change to support computing a link language without finding all the source files skipped the implicit check. - This change adds an explicit check to find all source files.
* BUG: A per-config target name postfix should be ignored for Mac bundle and ↵Brad King2008-04-141-2/+8
| | | | framework names.
* BUG: Correct Mac OS X framework behaviorBrad King2008-04-081-138/+174
| | | | | | | | | | | | - 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-19/+3
| | | | do it.
* ENH: support unset of propertiesKen Martin2008-04-011-4/+0
|
* ENH: Add note to Fortran_MODULE_DIRECTORY property documentation about using ↵Brad King2008-03-281-1/+3
| | | | CMAKE_Fortran_MODULE_DIRECTORY to initialize it.
* STYLE: Fix line-too-long for new INTERNAL_ERROR messages.Brad King2008-03-151-4/+3
|
* ENH: Add policy CMP_0004 to require library names to have no leading or ↵Brad King2008-03-131-0/+3
| | | | trailing whitespace. Replace previous check of CMAKE_BACKWARDS_COMPATIBILITY against version 2.4 with the policy.
* ENH: Convert CMAKE_LINK_OLD_PATHS to policy CMP0003.Brad King2008-03-131-0/+5
| | | | | | | | | - Policy is WARN by default so projects will build as they did in 2.4 without user intervention - Remove CMAKE_LINK_OLD_PATHS variable since it was never in a release and the policy supercedes it - Report target creation backtrace in warning message since policy should be set by that point
* ENH: Improve new error/warning message generationBrad King2008-03-131-0/+13
| | | | | | | | | | - Add cmListFileBacktrace to record stack traces - Move main IssueMessage method to the cmake class instance (make the backtrace an explicit argument) - Change cmMakefile::IssueMessage to construct a backtrace and call the cmake instance version - Record a backtrace at the point a target is created (useful later for messages issued by generators)
* ENH: remove abort calls and replace with an IssueMessage INTERANL_ERROR, ↵Bill Hoffman2008-03-131-6/+32
| | | | better to not crash on the end user.
* BUG: Fix memory leak when cmTarget instances are assigned. We really need ↵Brad King2008-03-041-0/+2
| | | | to get rid of global targets and their associated assignments.
* ENH: Allow users to work around problems with the builtin chrpath by setting ↵Brad King2008-03-021-0/+6
| | | | CMAKE_NO_BUILTIN_CHRPATH.
* ENH: Cleanup builtin chrpath supportBrad King2008-03-021-0/+15
| | | | | | | | | | | | - Move computation of extended build-tree rpath to cmComputeLinkInformation - Only enable the extended build-tree rpath if the target will be installed - Generalize the interface of file(CHRPATH) - When changing the rpath on installation only replace the part generated by CMake because the native tools (ex SunCC on Linux) might have added their own part to the rpath
* BUG: Do not try to change the RPATH when installing a target if ↵Brad King2008-03-011-0/+12
| | | | CMAKE_SKIP_RPATH is on or the path does not need to be changed.
* ENH: Use builtin chrpath instead of relinking ELF targetsBrad King2008-03-011-5/+9
| | | | | | | | | | - Add cmSystemTools::ChangeRPath method - Add undocumented file(CHRPATH) command - When installing use file(CHRPATH) to change the rpath instead of relinking - Remove CMAKE_CHRPATH lookup from CMakeFindBinUtils - Remove CMAKE_USE_CHRPATH option since this should always work
* COMP: Fix Borland 5.5 buildBrad King2008-02-241-9/+9
| | | | | | | - Its <iosfwd> header includes windows.h which defines GetCurrentDirectory - It defines 'interface' so we cannot use it as a variable name.
* ENH: Better linker search path computation.Brad King2008-02-211-1/+42
| | | | | | | | | | | | | - Use linker search path -L.. -lfoo for lib w/out soname when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME - Rename cmOrderRuntimeDirectories to cmOrderDirectories and generalize it for both soname constraints and link library constraints - Use cmOrderDirectories to order -L directories based on all needed constraints - Avoid processing implicit link directories - For CMAKE_OLD_LINK_PATHS add constraints from libs producing them to produce old ordering
* COMP: Fix HP warning about cmTargetInternalPointer::operator= checking for ↵Brad King2008-02-191-1/+2
| | | | self-assignment.
* ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE propertiesBrad King2008-02-181-41/+116
|
* ENH: Allow multiple OS X applications bundles to be created in a single ↵Brad King2008-02-141-1/+13
| | | | 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: Enforce global target name uniqueness.Brad King2008-02-111-4/+15
| | | | | | | | - Error if imported target is involved in conflict - Error for non-imported target conflict unless CMAKE_BACKWARDS_COMPATIBILITY <= 2.4 - Include OUTPUT_NAME property in error message - Update add_executable and add_library command documentation
* ENH: Avoid computing link information for static library targets. They do ↵Brad King2008-02-071-0/+3
| | | | not link.
* BUG: Make sure linking to a shared lib on windows uses import library and ↵Brad King2008-02-061-2/+6
| | | | not the new realname.
* BUG: Do not create versioned executable names on Xcode where they are not ↵Brad King2008-02-061-1/+1
| | | | supported.
* ENH: When linking to versioned targets whose real file name is known pass ↵Brad King2008-02-061-4/+47
| | | | the real name to the linker instead of the symlink name.
* ENH: Pass dependent library search path to linker on some platforms.Brad King2008-02-011-3/+3
| | | | | | | | | | | | | | | | - Move runtime path ordering out of cmComputeLinkInformation into its own class cmOrderRuntimeDirectories. - Create an instance of cmOrderRuntimeDirectories for runtime path ordering and another instance for dependent library path ordering. - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean. - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean. - Create variables to specify -rpath-link flags: CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG - Enable -rpath-link flag on Linux and QNX. - Documentation and error message updates
* COMP: Fix shadowed local warning.Brad King2008-02-011-3/+3
|
* ENH: Support linking to shared libs with dependent libsBrad King2008-01-311-29/+129
| | | | | | | | | - Split IMPORTED_LINK_LIBRARIES into two parts: IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_DEPENDENT_LIBRARIES - Add CMAKE_DEPENDENT_SHARED_LIBRARY_MODE to select behavior - Set mode to LINK for Darwin (fixes universal binary problem) - Update ExportImport test to account for changes
* ENH: Add target property LINK_SEARCH_END_STATIC to help people building ↵Brad King2008-01-311-0/+12
| | | | static binaries on some platforms.
* ENH: Implemented link-interface specification feature.Brad King2008-01-301-0/+119
| | | | | | | | | | | | - Shared libs and executables with exports may now have explicit transitive link dependencies specified - Created LINK_INTERFACE_LIBRARIES and related properties - Exported targets get the interface libraries as their IMPORTED_LINK_LIBRARIES property. - The export() and install(EXPORT) commands now give an error when a linked target is not included since the user can change the interface libraries instead of adding the target.
* BUG: cmTarget instances should not be copied. Removed pass-by-value ↵Brad King2008-01-291-11/+24
| | | | arguments from cmLocalVisualStudio7Generator::WriteGroup and cmLocalVisualStudio6Generator::WriteGroup. Updated cmTarget to make this easier to find.
* ENH: Add cmTarget::GetLinkInformation method to allow several places in the ↵Brad King2008-01-291-32/+63
| | | | generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
* ENH: Document PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE target properties ↵Brad King2008-01-281-0/+30
| | | | and corresponding arguments to INSTALL(TARGETS).
* ENH: Support exporting/importing of AppBundle targets.Brad King2008-01-281-0/+10
| | | | | | | | - Imported bundles have the MACOSX_BUNDLE property set - Added cmTarget::IsAppBundleOnApple method to simplify checks - Document BUNDLE keyword in INSTALL command - Updated IMPORTED_LOCATION property documentation for bundles - Updated ExportImport test to test bundles
* ENH: Support exporting/importing of Framework targets.Brad King2008-01-281-32/+16
| | | | | | | | - 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: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-89/+491
| | | | | | | | | | | | | | | | | | 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
* ENH: Created cmComputeLinkDepends to compute link dependencies.Brad King2008-01-271-5/+2
| | | | | | | | - This will be useful for imported library dependencies - Replaces old cmTarget analyze-lib-depends stuff for linking - Formalizes graph construction and dump - Explicitly represents dependency inferral sets - Use BFS of initial dependencies to preserve order
* ENH: Implement linking with paths to library files instead of -L and -l ↵Brad King2008-01-221-59/+72
| | | | | | | | | | | | | | | | | separation. See bug #3832 - This is purely an implementation improvement. No interface has changed. - Create cmComputeLinkInformation class - Move and re-implement logic from: cmLocalGenerator::ComputeLinkInformation cmOrderLinkDirectories - Link libraries to targets with their full path (if it is known) - Dirs specified with link_directories command still added with -L - Make link type specific to library names without paths (name libfoo.a without path becomes -Wl,-Bstatic -lfoo) - Make directory ordering specific to a runtime path computation feature (look for conflicting SONAMEs instead of library names) - Implement proper rpath support on HP-UX and AIX.
* BUG: Added missing documentation of LINK_FLAGS_<CONFIG> property.Brad King2008-01-211-1/+5
|
* ENH: Add AppendProperty methods for use by C++ code in CMake. Simplify ↵Brad King2008-01-171-0/+10
| | | | implementation of SET_PROPERTY command by using them.
* ENH: Renamed <CONFIG>_COMPILE_DEFINITIONS to COMPILE_DEFINITIONS_<CONFIG> ↵Brad King2008-01-161-4/+4
| | | | for better documentation clarity.
* ENH: Add explicit documentation entry for configuration-specific ↵Brad King2008-01-151-0/+5
| | | | <CONFIG>_COMPILE_DEFINITIONS.
* ENH: Create COMPILE_DEFINITIONS property for targets and source files. ↵Brad King2008-01-141-2/+26
| | | | Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
* STYLE: Spelling fixes on documentationAmitha Perera2008-01-101-4/+4
|
* ENH: only allow usage of chrpath if the executable file format is ELFAlexander Neundorf2008-01-021-13/+5
| | | | Alex