summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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
* ENH: Implemented Fortran module output directory and search path flags.Brad King2007-12-301-0/+10
|
* ENH: add support for chrpath, so the RPATH in ELF files can be changed whenAlexander Neundorf2007-12-181-0/+45
| | | | | | | | | | | | | | | | | | installing without having to link the target again -> can save a lot of time chrpath is handled very similar to install_name_tool on the mac. If the RPATH in the build tree file is to short, it is padded using the separator character. This is currently disabled by default, it can be enabled using the option CMAKE_USE_CHRPATH. There are additional checks whether it is safe to enable it. I will rework them and use FILE(READ) instead to detect whether the binaries are actually ELF files. chrpath is available here http://www.tux.org/pub/X-Windows/ftp.hungry.com/chrpath/ or kde svn (since a few days): http://websvn.kde.org/trunk/kdesupport/chrpath/ Alex
* ENH: Added SOURCES property to targets. This is based on patch from issues ↵Brad King2007-12-171-0/+34
| | | | #6137.
* BUG: For imported target directory, do not return pointer to freed memory.Brad King2007-11-211-3/+3
|
* BUG: fix undefined property FRAMEWORKKen Martin2007-10-301-0/+8
|
* BUG: Fix the dashboards! Put it back the way it was so it always creates the ↵David Cole2007-10-121-1/+1
| | | | target directory at configure time. Figure out how to avoid it for the framework case on the Mac/Xcode later...
* ENH: Finish up the Framework creation code restructuring. Frameworks build ↵David Cole2007-10-101-8/+102
| | | | and install now. More work needed on the packaging step. See Tests/Framework for example use.
* ENH: Added XCODE_ATTRIBUTE_<an-attribute> property to allow direct setting ↵Brad King2007-09-101-0/+6
| | | | of Xcode target attributes in generated projects. For example, one may set the prefix header property and the corresponding precompiled option to do precompiled headers.
* STYLE: fix typoAlexander Neundorf2007-08-091-1/+1
| | | | Alex
* ENH: Added warning when an install rule is created from an EXCLUDE_FROM_ALL ↵Brad King2007-08-031-2/+3
| | | | target. Added a foo/preinstall version of targets that need relinking so that exclude-from-all targets can be manually relinked for installation.
* BUG: Target exclusion-from-all tests should always use the root local ↵Brad King2007-08-031-2/+2
| | | | generator associated with the all target being tested.
* ENH: Added cmTarget::GetLanguages method to centralize computation of the ↵Brad King2007-08-021-8/+14
| | | | list of languages compiled in a target.
* BUG: Only pay attention to the FRAMEWORK target property for SHARED library ↵David Cole2007-08-011-2/+4
| | | | targets
* BUG: <CONFIG>_LOCATION property should use the config name in the directory ↵Brad King2007-08-011-5/+11
| | | | and not $(OutDir). This addresses bug#5363.
* ENH: second try for handling the linker language with integer priority ↵Alexander Neundorf2007-07-121-42/+40
| | | | | | values (returning a pointer to a string on the stack is no good idea) Alex
* COMP: revert last commit for now, broke Visual StudioAlexander Neundorf2007-07-111-41/+43
| | | | Alex
* ENH: CMAKE_<LANG>_LINKER_PREFERENCE is now an integer priority, not aAlexander Neundorf2007-07-111-43/+41
| | | | | | | | | | | | | | | | | | | two-step priority (None or Prefered) Current order: ASM 0, C 10, Fortran 20, CXX 30, Java 40 This is the same order as automake choses: http://www.gnu.org/software/automake/manual/html_node/How-the-Linker-is-Chosen.html This change should be backward compatible: if there is a project using fortran and CXX, they had to set the LINKER_LANGUAGE explicitely, otherwise cmake complained (but still generated the project files). Explicitely setting the linker language still overrides automatic detection. If somebody has a custom language for cmake and the PREFERENCE starts with "P", its changed to 100, which gives it preference over all other languages (except the other custom languages which have also "Prefered"). "None" is converted to 0. Alex
* STYLE: Fixed line-too-long, fixed indentation, removed trailing whitespace, ↵Brad King2007-07-021-180/+211
| | | | added function separator comment lines.
* ENH: here we really want only non-imported targets, as discussed with BradAlexander Neundorf2007-06-271-2/+2
| | | | Alex
* BUG: handle dependencies to imported targets better: don't create aAlexander Neundorf2007-06-211-2/+2
| | | | | | | | | dependency if the target name was not listed in DEPENDS, if it was listed in DEPENDS, create a dependency to the file Seems to work, but have to check with Brad. Alex
* ENH: Merging changes from branch CMake-SourceFile2-b between tagsBrad King2007-06-181-247/+224
| | | | | | | | | | | | | | | | | | | | | | | | 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: Moved link library related code from GenerateSourceFilesFromSourceLists ↵Brad King2007-05-281-8/+13
| | | | to AnalyzeLibDependencies to make the former do no more than what its name says.
* ENH: Removed "Used" mark from custom commands. It is no longer needed or ↵Brad King2007-05-281-10/+0
| | | | checked by any generators.
* ENH: Made cmTarget::GetSourceFiles method return reference to const so ↵Brad King2007-05-281-1/+1
| | | | addition of cmSourceFile pointers must be done with an access method in cmTarget.
* BUG: don't use non-imported target when cross compiling as commands in ↵Alexander Neundorf2007-05-241-3/+3
| | | | | | | | custom commands STYLE: remove now invalid comments, use this-> Alex
* ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create ↵Brad King2007-05-231-6/+6
| | | | targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore.
* BUG: Target names in the COMMAND part of a custom command should not create ↵Brad King2007-05-231-38/+32
| | | | a file-level dependency that forces the command to rerun when the executable target rebuilds, but the target-level dependency should still be created. Target names in a DEPENDS should do both a target-level and file-level dependency. Updated the BuildDepends test to check that this works.
* COMP: don't user string::clear(), fix warnings about unused variablesAlexander Neundorf2007-05-231-4/+4
| | | | Alex
* ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates anAlexander Neundorf2007-05-221-39/+141
| | | | | | | | | | "imported" executable target. This can then be used e.g. with ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for "imported" targets, and FindTarget() now takes an additional argument bool useImportedTargets to specify whether you also want to search in the imported targets or only in the "normal" targets. Alex
* BUG: An empty configuration name is equivalent to no configuration.Brad King2007-05-171-1/+1
|