summaryrefslogtreecommitdiffstats
path: root/Source/cmExportBuildFileGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* backtrace: Convert to local paths in IssueMessageBen Boeckel2014-06-051-0/+1
| | | | | This is the only place we care show the FilePath to the user, so defer the expensive relative path calculation until here.
* Export: Populate INTERFACE_COMPILE_FEATURES property.Stephen Kelly2014-04-081-0/+3
|
* Remove some c_str() calls.Stephen Kelly2014-03-111-4/+4
| | | | | | Use the clang RemoveCStrCalls tool to automatically migrate the code. This was only run on linux, so does not have any positive or negative effect on other platforms.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-3/+5
|
* CMake 3.0.0-rc1 version updateBrad King2014-02-191-1/+1
|
* Export: Use the CMAKE_DEVEL_VERSION macro for build-export files.Stephen Kelly2014-02-111-1/+1
| | | | | Move the macro definition to the cmExportBuildFileGenerator.h header to share it.
* cmMakefile: make some methods take const std::string& instead of const char*Rolf Eike Beer2014-01-161-1/+1
| | | | | | | | Most callers already have a std::string, on which they called c_str() to pass it into these methods, which internally converted it back to std::string. Pass a std::string directly to these methods now, avoiding all these conversions. Those methods that only pass in a const char* will get the conversion to std::string now only once.
* export: Implement EXPORT subcommand (#9822)Stephen Kelly2013-12-241-4/+32
| | | | | | Teach the export command to handle export sets defined by invocations of install(TARGETS ... EXPORT foo). This makes maintenance of targets exported to both the build tree and install tree trivial.
* Export: Clean up comment.Stephen Kelly2013-12-191-2/+0
| | | | | Introduced in commit a4263c9f (export(): Handle multiple dependent export sets., 2013-10-10)
* QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property.Stephen Kelly2013-11-271-0/+3
| | | | | | | | | | | | | | | | | | | | Transitively consume the property from linked dependents. Implement configuration-specific support by following the pattern set out for compile definitions and includes in cmQtAutoGenerators. Implement support for origin-tracking with CMAKE_DEBUG_TARGET_PROPERTIES. This is motivated by the needs of KDE, which provides a separate translation system based on gettext instead of the Qt linguist translation system. The Qt uic tool provides command line options for configuring the method used to translate text, and to add an include directive to the generated file to provide the method. http://thread.gmane.org/gmane.comp.kde.devel.frameworks/7930/focus=7992 Implement the interface to provide the uic options as a usage-requirement on the KI18n target, as designed for KDE.
* export(): Handle multiple dependent export sets.Stephen Kelly2013-10-111-9/+64
| | | | | | | | | | | | The export-sets topic, merged in commit 49c7b649 (Merge topic 'export-sets', 2012-10-01) changed install(EXPORT) to allow exporting targets whose dependents are exported separately to different locations. Doing the same for export() was not possible because the export() command was executed at configure-time. Now that export() is also executed at generate-time, make it possible to export to multiple dependent export sets.
* export(): Process the export() command at generate time.Stephen Kelly2013-10-111-11/+10
| | | | | | | | | | | | Make the API for adding targets string based so that it can easily use cmGeneratorTarget. Teach the cmIncludeCommand to generate the exported file at configure-time instead if it is to be include()d. The RunCMake.ExportWithoutLanguage test now needs a dummy header.h file as expected error from export() is now reported after the missing file error.
* export(): Set a Makefile on the cmExportBuildFileGenerator.Stephen Kelly2013-10-101-11/+10
| | | | | | | | This is better than the cmCommand, because the lifetime of that is not as useful, and it is only used to report an error anyway. In the next commit, the cmExportBuildFileGenerator will outlive the cmCommand.
* export: Add support for INTERFACE_LIBRARY targetsStephen Kelly2013-10-081-7/+17
|
* Export: Generate INTERFACE_LINK_LIBRARIES property on targets.Stephen Kelly2013-07-081-0/+9
| | | | | | | | | | This property is generated only for targets which have recorded policy CMP0022 as NEW, and a compatibility mode is added to additionally export the old interfaces in that case too. If the old interfaces are not exported, the generated export files require CMake 2.8.12. Because the unit tests use a version which is not yet called 2.8.12, temporarily require a lower version.
* Generate INTERFACE_COMPILE_OPTIONS on export.Stephen Kelly2013-06-101-0/+3
| | | | | This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target property., 2013-05-16).
* Merge topic 'rpath-on-mac'Brad King2013-06-031-0/+16
|\ | | | | | | | | | | | | | | dc1d025 OS X: Add test for rpaths on Mac. 8576b3f OS X: Add support for @rpath in export files. 00d71bd Xcode: Add rpath support in Xcode generator. 94e7fef OS X: Add RPATH support for Mac.
| * OS X: Add support for @rpath in export files.Clinton Stimpson2013-06-031-0/+16
| | | | | | | | | | Also expand the IMPORTED_SONAME property for targets to match the install_name.
* | Merge topic 'framework-refactor'Brad King2013-06-031-1/+1
|\ \ | |/ | | | | | | 373faae Refactor how bundles and frameworks are supported.
| * Refactor how bundles and frameworks are supported.Clinton Stimpson2013-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make handling of directory separators consistent between non-bundle and bundle code. Remove xcode specific flag from cmTarget when getting install_name. Add (more) consistent convenience functions in cmTarget to get directories inside of bundles and frameworks to add files to. This refactor also fixes bug #12263 where frameworks had the wrong install name when SKIP_BUILD_RPATH. Also make install_name for frameworks consistent between Makefile and Xcode generator.
* | Add EXPORT_NAME property.Stephen Kelly2013-05-181-2/+2
|/ | | | | | This allows for example, the buildsystem to use names like 'boost_any' instead of the overly generic 'any', and still be able to generate IMPORTED targets called 'boost::any'.
* Export the COMPATIBLE_INTERFACE_BOOL content propertiesStephen Kelly2013-01-211-0/+1
|
* Export the INTERFACE_PIC property.Stephen Kelly2013-01-151-0/+2
|
* Make the BUILD_INTERFACE of export()ed targets work.Stephen Kelly2013-01-151-0/+2
| | | | | The existing BUILD_INTERFACE code is executed at generate time, which is too late for export().
* Move the exported check for dependencies of targetsStephen Kelly2013-01-151-6/+5
| | | | | Check only once, in the Config.cmake file, instead of once in each Config-<cfg>.cmake file.
* Split LINK_INTERFACE_LIBRARIES export handling into dedicated method.Stephen Kelly2013-01-101-0/+4
|
* Handle INTERFACE properties transitively for includes and defines.Stephen Kelly2013-01-051-0/+15
| | | | | Contextually, the behavior is as if the properties content from another target is included in the string and then the result is evaluated.
* Populate the ExportedTargets member early in GenerateMainFileStephen Kelly2013-01-051-11/+14
| | | | | | | The member variable is checked to determine whether to call HandleMissingTarget(). As that could be called during the loop in the comming commits, ensure that it contains all targets being exported.
* Generate an early-return guard in target Export files.Stephen Kelly2012-11-301-0/+14
| | | | | | | | | | | | Previously it was necessary for writers of Config files which incude exported target files to write the guard themselves, but this was not immediately obvious or documented. Options for them would be to use a variable, or an INHERITED directory property in an effort to avoid accidental name clashes in all contexts in which find_package can be used. Getting this right requires boiler plate code, so generate a simpler check automatically instead.
* exports: move the handling of missing targets into subclassesAlex Neundorf2012-09-301-17/+25
| | | | | | | | | | Before, cmExportFileGenerator::ComplainAboutMissingTarget() was a virtual function which had to be implemented in the subclasses. It is not anymore. Instead, there is now a virtual function HandleMissingTargets(), which is implemented in the two subclasses. This makes e.g. dealing correctly with APPEND mode easier. Alex
* exports: first try at error handling if a target is missingAlex Neundorf2012-09-281-1/+3
| | | | | | | | | Now, if an imported target depends on a library which must come from some other export set, cmake generates a check which errors out if that target does not exist. I guess instead of completely erroring out it would be better to only make the find_package() fail. Alex
* exports: accept a missing target if it is exported exactly onceAlex Neundorf2012-09-281-6/+17
| | | | | | | | | | | If a target is exported, and a library it depends on is not part of the same export set, before this patch cmake errored out. With this patch, it now checks whether the missing target is exported somewhere else exactly once, and accepts in this case (because then it can determine the namespace for the missing target and use this). Alex
* Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .libBrad King2011-12-051-0/+2
| | | | | | | | | | | | | | | | Teach the Windows-GNU.cmake platform file to look for Visual Studio tools matching the target ABI. Add an extra step to the link command for shared libraries and executables that export symbols and on which a new GNUtoMS property is set (initialized by the CMAKE_GNUtoMS option). Tell the GNU linker to output a module definition (.def) file listing exported symbols in addition to the GNU-format import library (.dll.a). Pass the .def file to the MS "lib" tool to construct a MS-format DLL import library (.lib). Teach the install(TARGETS) command to install the MS import library next to the GNU one. Teach the install(EXPORT) and export() command to set the IMPORTED_IMPLIB property pointing at the import library to use the import library matching the tools in the importing project.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* BUG: Fix LOCATION property for Mac AppBundlesBrad King2009-01-201-7/+1
| | | | | | | Previously cmTarget::GetLocation and cmTarget::GetFullPath would return for Mac AppBundles the top-level bundle directory but without the .app extension. We worked around this at the call sites. This fixes the methods and removes the work-arounds. See issue #8406.
* ENH: Improve exporting/importing of targetsBrad King2008-02-061-4/+25
| | | | | - Use real name instead of link for location of versioned targets - Error when a target is exported multiple times
* ENH: Pass dependent library search path to linker on some platforms.Brad King2008-02-011-7/+5
| | | | | | | | | | | | | | | | - 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
* ENH: Implemented link-interface specification feature.Brad King2008-01-301-4/+22
| | | | | | | | | | | | - 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.
* STYLE: Updated TODO comment for PUBLIC_HEADER_LOCATION export.Brad King2008-01-281-0/+2
|
* ENH: Support exporting/importing of AppBundle targets.Brad King2008-01-281-0/+5
| | | | | | | | - 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: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-0/+117
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