summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudioGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmLocalGenerator: Add GetProjectName method.Stephen Kelly2015-10-081-1/+1
|
* VisualStudio: Replace Compute override with AddExtraIDETargets override.Stephen Kelly2015-10-051-7/+1
|
* VS: Remove impossible condition.Stephen Kelly2015-09-271-3/+2
|
* VS: Refactor target ordering logicBrad King2015-09-221-6/+12
| | | | | | | | Refactor cmGlobalVisualStudioGenerator::TargetCompare to store the name of the target that should come first instead of hard-coding "ALL_BUILD". Update client sites to specify "ALL_BUILD" when ordering for .sln files and an empty string otherwise (in cases when "ALL_BUILD" should not be encountered anyway).
* cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget.Stephen Kelly2015-08-261-1/+1
|
* cmGeneratorTarget: Move GetLanguages from cmTarget.Stephen Kelly2015-08-261-1/+3
|
* cmGeneratorTarget: Move compile defintions processing from cmTarget.Stephen Kelly2015-08-261-1/+1
|
* Replace foo.size() pattern with !foo.empty().Stephen Kelly2015-08-241-1/+1
|
* Replace 'foo.size() > 0' pattern with !foo.empty().Stephen Kelly2015-08-241-1/+1
|
* Merge topic 'use-generator-target'Brad King2015-08-111-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 29886ce7 cmTarget: Use a simpler delete algorithm. 197f4de1 cmTarget: Split storage of compile definitions from genexes. 44e071ae cmTarget: Split storage of compile features from genexes. 772ecef4 cmTarget: Split storage of compile options from genexes. 1f54bc1c cmTarget: Split storage of include directories from genexes. 7568199b cmTarget: Request only the link libraries where needed. 10040601 cmLinkImplementationLibraries: Move to namespace scope. d9da6ee2 cmLinkItem: Split to separate file. 27252b24 cmComputeLinkInformation: Simplify generator object access.
| * cmTarget: Split storage of include directories from genexes.Stephen Kelly2015-08-071-0/+1
| |
* | cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget.Stephen Kelly2015-08-061-4/+6
|/
* cmGlobalGenerator: Virtualize the Compute step and override it.Stephen Kelly2015-07-301-4/+7
|
* cmGlobalGenerator: Move generation object creation to Compute().Stephen Kelly2015-07-301-0/+2
|
* VisualStudio: Skip global targets when processing.Stephen Kelly2015-07-291-0/+4
|
* Merge topic 'auto_export_dll_symbols'Brad King2015-07-081-0/+70
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8f86407c Windows: Optionally generate DLL module definition files automatically 069aa93b bindexplib: Add support for "/bigobj" format objects 61bbbdcf bindexplib: Fix treatment of some symbols de70c922 bindexplib: Teach DumpFile to return errors 8ea69dfe bindexplib: Build source as part of CMakeLib 2963cb2a bindexplib: Wrap long lines 4ff09893 bindexplib: Drop code that CMake does not need 7de8276c bindexplib: Add copyright/license notice block 65086ad7 bindexplib: Import original implementation from CERN
| * Windows: Optionally generate DLL module definition files automaticallyBill Hoffman2015-07-061-0/+70
| | | | | | | | | | | | | | Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically generate a module definition file from MS-compatible .obj files and give it to the linker in order to export all symbols from the .dll part of a SHARED library.
* | cmComputeTargetDepends: Change API to use cmGeneratorTarget.Stephen Kelly2015-07-011-9/+18
|/
* cmState: Host some state from the cmGlobalGenerator.Stephen Kelly2015-05-271-2/+2
|
* cmGlobalGenerator: Require a cmake instance in ctor.Stephen Kelly2015-05-271-1/+2
| | | | It is required anyway, so this makes it explicit.
* VS: Move version information to global generator.Stephen Kelly2015-05-191-0/+13
|
* cmGlobalGenerator: Move some flags from cmLocalGenerator.Stephen Kelly2015-05-141-0/+2
| | | | | These flags are global, and so they belong here instead of being set on each local generator.
* cmMakefile: Port users of GetStart* methods to new names.Stephen Kelly2015-04-201-1/+1
|
* cmMakefile: Rename GetCurrent{Output,Binary}Directory.Stephen Kelly2015-04-201-1/+1
| | | | Match names used in CMake code.
* Use two-iterator std::set::insert where appropriate.Stephen Kelly2015-01-111-10/+2
|
* VS: Refactor CMAKE_FORCE_*64 platform definitionsBrad King2014-07-171-10/+0
| | | | | | | Remove the general infrastructure for these additional platform definitions and hard-code the only two special cases that used it. They are only for historical reasons so no new such cases should be added.
* cmTarget: Make the source files depend on the config.Stephen Kelly2014-04-021-1/+9
| | | | | | | | | | | | | | | | | Disallow the use of config-specific source files with the Visual Studio and Xcode generators. They don't have any way to represent the condition currently. Use the same common-config API in cmQtAutoGenerators. While it accepts config-specific files, it doesn't have to support multiple configurations yet. Loop over the configs in cmTargetTraceDependencies and cmGlobalGenerator::WriteSummary and consume all source files. Loop over the configs in cmComputeTargetDepends and compute the object library dependencies for each config.
* Merge topic 'target-objects-refactor'Brad King2014-03-171-43/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6c9dd0ec cmGlobalGenerator: Make ComputeTargetObjects non-virtual c481fadc cmGeneratorTarget: Don't store ObjectSources for object libraries. f6da0440 cmLocalGenerator: Add ComputeObjectFilenames interface. 9ad804ac cmGeneratorTarget: Constify cmSourceFile* in containers. c725bb3c Constify some APIs in generators. dcfcd23e cmGeneratorTarget: Make GetSourceDepends const. 04cf50ff cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const. 6132d979 cmGeneratorTarget: Constify the AddExplicitObjectName API. bc512211 cmGeneratorTarget: Constify the AddObject API. cd43433d cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface. d5b2e33b Makefiles: Compute local object files on demand.
| * cmGlobalGenerator: Make ComputeTargetObjects non-virtualStephen Kelly2014-03-151-24/+0
| | | | | | | | | | | | | | | | Implement it in terms of the ComputeObjectFilenames virtual method on the local generators. Remove the reimplementation from the global generators which are now all functionally identical.
| * cmLocalGenerator: Add ComputeObjectFilenames interface.Stephen Kelly2014-03-131-34/+14
| | | | | | | | | | Implement it in the local generators and use it in the global generators.
| * cmGeneratorTarget: Constify cmSourceFile* in containers.Stephen Kelly2014-03-131-5/+5
| | | | | | | | | | Some of them will be used with other APIs which require value_type to be cmSourceFile const*.
| * cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.Stephen Kelly2014-03-131-1/+6
| | | | | | | | Make it public for future external calls.
* | Encoding: If configured, write Visual Studio project files as UTF-8.Clinton Stimpson2014-03-141-1/+2
|/
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-2/+2
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-4/+4
| | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* stringapi: Use strings in target nameBen Boeckel2014-03-081-3/+3
|
* OS X: Make sure RPATHs are unique to avoid possible corruption.Clinton Stimpson2014-02-031-0/+17
| | | | | | | | When using link_directories() and including CMAKE_CFG_INTDIR, one can end up with duplicate RPATHs in the binary which install_name_tool cannot fix without corrupting the binary. Also, the cmake_install.cmake file has been fixed to correctly handle these generator specific variables.
* cmGeneratorTarget: Add methods to access source file groups.Stephen Kelly2014-01-091-6/+8
| | | | | These methods and others will be able to get a config parameter later to implement the INTERFACE_SOURCES feature.
* Constify handling of target dependencies.Stephen Kelly2013-12-111-11/+13
|
* Windows: Use wide-character system APIsClinton Stimpson2013-12-091-33/+39
| | | | | Make CMake compile with -DUNICODE. Make it possible for the 8 bit encoding to eventually be UTF-8 instead ANSI.
* VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generatorsBrad King2013-11-181-0/+13
| | | | | | | | Drop the "Modules/CMakeVS*FindMake.cmake" files. Override the cmGlobalGenerator::FindMakeProgram method for VS generators to use their internal APIs to locate the build tool. Set the CMAKE_MAKE_PROGRAM as a normal variable for use by project code, but do not cache it. This will allow CMake and CTest to select the proper tool at build time.
* Add the INTERFACE_LIBRARY target type.Stephen Kelly2013-10-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This target type only contains INTERFACE_* properties, so it can be used as a structural node. The target-specific commands enforce that they may only be used with the INTERFACE keyword when used with INTERFACE_LIBRARY targets. The old-style target properties matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for this target type. The name of the INTERFACE_LIBRARY must match a validity generator expression. The validity is similar to that of an ALIAS target, but with the additional restriction that it may not contain double colons. Double colons will carry the meaning of IMPORTED or ALIAS targets in CMake 2.8.13. An ALIAS target may be created for an INTERFACE library. At this point it can not be exported and does not appear in the buildsystem and project files are not created for them. That may be added as a feature in a later commit. The generators need some changes to handle the INTERFACE_LIBRARY targets returned by cmComputeLinkInterface::GetItems. The Ninja generator does not use that API, so it doesn't require changes related to that.
* VS: Replace ArchitectureId with PlatformNamePatrick Gansterer2013-08-051-4/+0
| | | | | | | | Since we do not need the information about the target architecture we can use the PlatformName only to specify the this information. This also removes setting of the MSVC_*_ARCHITECTURE_ID variable which is not required, because this variable gets set by the compiler detection code in CMAKE_DETERMINE_COMPILER_ID_CHECK().
* Fix spelling and typos (non-binary)Andreas Mohr2013-05-071-1/+1
|
* VS: Change variable type of ArchitectureId from const char* to stringPatrick Gansterer2012-11-261-2/+2
|
* VS: Add static method to get the base of the registryPatrick Gansterer2012-11-261-2/+9
|
* VS: Remove AddPlatformDefinitions from platform-specific generatorsPatrick Gansterer2012-11-191-0/+6
| | | | | Move the logic for handling platform specific defines from the subclasses into the cmGlobalVisualStudioGenerator base class.
* Resolve warnings about shadowing parameters and local variables.Stephen Kelly2012-11-131-1/+0
|
* VS: Simplify MSVC version reportingBrad King2012-08-301-6/+0
| | | | | | | | | Teach Windows-cl.cmake to use CMAKE_(C|CXX)_COMPILER_VERSION to set the "MSVC##" and MSVC_VERSION variables. It no longer needs the IDE generator to dictate the version or to detect the version by running the command-line tool for NMake and Ninja generators. Drop configuration of CMakeCPlatform.cmake and CMakeCXXPlatform.cmake from Windows-cl.cmake.in because all the results it saved are now cheap to compute every time.
* VS: Cleanup AddPlatformDefinitions() of Visual Studio generatorsPatrick Gansterer2012-08-221-0/+14
| | | | | Move adding of definitions into cmGlobalVisualStudioGenerator to share code and avoid duplicate architecture string literals.