summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio7Generator.h
Commit message (Collapse)AuthorAgeFilesLines
* VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8Brad King2014-09-051-0/+3
| | | | | | | | | For VS generator names that do not specify the platform name, read CMAKE_GENERATOR_PLATFORM to get it. Extend the RunCMake.GeneratorPlatform test with a case covering use of the x64 platform when the test generator is a Visual Studio generator whose name does not specify a platform.
* VS: Refactor internal default platform name selectionBrad King2014-09-051-2/+2
| | | | | | Rename the 'PlatformName' member to 'DefaultPlatformName' and make sure it is only read through a 'GetPlatformName()' call. This will allow non-default names to be chosen later.
* VS: Move internal MasmEnabled member up to VS 7 generatorBrad King2014-08-201-0/+4
| | | | | | | | Move the member from cmGlobalVisualStudio10Generator to cmGlobalVisualStudio7Generator to make it useful for earlier versions of VS. Set the member to true only starting with cmGlobalVisualStudio8Generator since we will not implement MASM support for versions less than VS 8.
* cmGlobalGenerator: Create a non-virtual 'DoGenerate' methodBrad King2014-07-221-7/+1
| | | | | | | Make the virtual 'Generate' method protected. Make 'DoGenerate' the main entry point to generation. This gives cmGlobalGenerator a chance to do some early operations before the individual generator-specific implementations take over.
* VS: Delay platform definitions until system name is knownBrad King2014-07-171-1/+1
| | | | | | | Move the definition of CMAKE_VS_PLATFORM_NAME and other variables that are not needed by CMakeDetermineSystem out of the AddPlatformDefinitions method and into a SetSystemName method. The latter may later use CMAKE_SYSTEM_NAME to decide what platform-specific definitions to add.
* VS: Remove unused parameter of WriteTargetConfigurationsBrad King2014-06-131-1/+0
| | | | | The cmGlobalVisualStudio7Generator::WriteTargetConfigurations 'root' parameter is no longer used, so remove it.
* VS: Fix subproject .sln dependencies on custom targetsBrad King2014-06-121-3/+5
| | | | | | | | | | | | | | | | | | | | | | Each project listed in a .sln must be marked (or not) as part of the "default build" for each configuration. For targets created by the add_custom_target() command we add them to the default build if they are not excluded in some way or if another target depends on them. In the top-level .sln, a custom target is excluded if it is not created with the ALL option to add_custom_target. In subdirectory .sln files, a target may also be excluded if it is not within the directory and is brought into the solution only due to a dependency from another target in the solution. Fix the "IsPartOfDefaultBuild" and "IsDependedOn" methods to check every target to be included in the .sln for a dependency on the custom target. Otherwise transitive dependencies through targets not in the current subdirectory will not be considered. Extend the SubProject test with a custom target to cover this case. Reported-by: William Deurwaarder <William.Deurwaarder@tomtom.com> Reported-by: Dirk Steenpass <dirk.steenpass@gmail.com>
* VS: Move VS-only API out of cmGlobalGeneratorBrad King2014-06-121-0/+1
| | | | | Move the IsDependedOn method to cmGlobalVisualStudio7Generator since that is the only caller.
* Encoding: If configured, write Visual Studio project files as UTF-8.Clinton Stimpson2014-03-141-0/+3
|
* stringapi: Use strings for program pathsBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-5/+5
|
* stringapi: Use strings for directoriesBen Boeckel2014-03-081-1/+1
|
* stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-3/+3
|
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-2/+2
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-2/+2
| | | | | | | | | | | 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 for VS project namesBen Boeckel2014-03-081-7/+7
|
* stringapi: Use strings in target nameBen Boeckel2014-03-081-1/+1
|
* VS: Teach include_external_msproject about non-C++ projects (#14661)David Golub2013-12-201-0/+2
| | | | | | Teach CMake to guess the project type guid based on the project file extension. This allows non-C++ projects like *.vbproj or *.csproj to be included.
* Constify handling of target dependencies.Stephen Kelly2013-12-111-4/+6
|
* VS: Add CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND variablesBrad King2013-12-041-0/+2
| | | | | | | | Since commit 5f5c92b9 (VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev, 2013-11-13) the VS generators have known how to lookup the locations of their build tools directly. Expose this information to CMake language code by defining new variables to hold the paths to these tools.
* VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generatorsBrad King2013-11-181-0/+1
| | | | | | | | 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.
* VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdevBrad King2013-11-181-0/+5
| | | | | Teach the VS generators to compute the locations of these tools directly from registry entries. Add internal APIs to get the locations on demand.
* cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-181-8/+10
| | | | | | | | | All cmGlobalGenerator::GenerateBuildCommand call sites that need to produce a string now generate "cmake --build" commands. The remaining call sites immediately pass the result to cmSystemTools::RunSingleCommand. Avoid the intermediate string and argument parsing by directly producing a vector of strings. Also drop the ignoreErrors argument because no call sites remain that use it.
* VS: Expose Intel Fortran .vfproj format version to CMake languageBrad King2013-10-181-0/+7
| | | | | | Lookup the Intel VS plugin version on demand in the VS global generator, compute the corresponding .vfproj format version number, and memoize it. Add it as a CMAKE_VS_INTEL_Fortran_PROJECT_VERSION platform definition.
* VS: Replace ArchitectureId with PlatformNamePatrick Gansterer2013-08-051-2/+2
| | | | | | | | 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().
* VS: Set CMAKE_VS_PLATFORM_NAME for VS7 and VS71 tooPatrick Gansterer2013-08-051-0/+6
| | | | | Move the code which sets CMAKE_VS_PLATFORM_NAME from cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
* Add projectDir parameter to GenerateBuildCommandPetr Kmoch2013-04-121-0/+1
| | | | | | | | Extend the cmGlobalGenerator::GenerateBuildCommand virtual method signature with a "projectDir" parameter specifying the top of the project build tree for which the build command will be generated. Populate it from call sites in cmGlobalGenerator::Build where a fully-generated build tree should be available.
* VS: Added "Deploy" at project configuration for WindowsCE targetsPatrick Gansterer2012-11-271-1/+1
|
* Merge topic 'generator-factory'Brad King2012-11-201-3/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 75ebebc VS: Remove platform specific generator files 8b62080 VS: Remove EnableLanguage from platform-specific generators 5bdf011 VS: Remove GetPlatformName from platform-specific generators 8d42ab4 VS: Fix ArchitectureId of Visual Studio 10 IA64 generator 6f439b3 VS: Remove AddPlatformDefinitions from platform-specific generators 5170a88 Make cmGlobalGenerator::GetDocumentation() a static function 04ff866 Allow a GeneratorFactory handling of more than one generator 984ebc3 Search generator in cmake::ExtraGenerators before in cmake::Generators 30a6950 Add cmGlobalGeneratorFactory::GetGenerators() e8f8414 Introduce the abstract class cmGlobalGeneratorFactory
| * Make cmGlobalGenerator::GetDocumentation() a static functionPatrick Gansterer2012-11-191-1/+1
| | | | | | | | | | Making the function static allows us to call it directly, without creating and removing an instance of the generator.
| * Introduce the abstract class cmGlobalGeneratorFactoryPatrick Gansterer2012-11-191-2/+4
| | | | | | | | | | This new abstract class allows us move some logic from the cmGlobalGenerator into its own layer in a next step.
* | Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD' into vs-global-sectionsBrad King2012-11-161-6/+6
|\ \ | | | | | | | | | | | | Conflicts: Source/cmGlobalVisualStudio7Generator.h
| * | Add property EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>Petr Kmoch2012-11-131-6/+6
| |/ | | | | | | Allow EXCLUDE_FROM_DEFAULT_BUILD to be specified per configuration.
* | Implement properties VS_GLOBAL_SECTION_*Petr Kmoch2012-11-161-0/+2
|/ | | | | | Add properties VS_GLOBAL_SECTION_PRE_<name> and VS_GLOBAL_SECTION_POST_<name>, which can be used to generate custom GlobalSection-s in the .sln file.
* VS: Cleanup AddPlatformDefinitions() of Visual Studio generatorsPatrick Gansterer2012-08-221-1/+0
| | | | | Move adding of definitions into cmGlobalVisualStudioGenerator to share code and avoid duplicate architecture string literals.
* include_external_msproject: Add TYPE, GUID, PLATFORM options (#13120)Leonid Yurchenko2012-04-161-1/+3
| | | | These allow one to reference more external VS project file variations.
* Rename/constify build-time config placeholder lookupBrad King2012-03-091-1/+1
| | | | | | Rename cmGlobalGenerator::GetCMakeCFG{InitDirectory => IntDir} to have a shorter name without a typo. Add a 'const' qualifier since the method is only for lookup and never needs to modify anything.
* Fix typo.Nicolas Despres2011-10-231-1/+1
|
* Remove trailing white-spaces.Nicolas Despres2011-10-231-15/+15
|
* Fix automoc with VS builds: apply patch from BillAlex Neundorf2011-08-181-3/+0
| | | | | | | | This patch moves the creation of VS GUIDs from the final pass to AddHelperCommands() and should fix the failing automoc tests with VS. Alex
* Revert "Remove unused parameter "root" in some VS generator methods"Brad King2010-12-201-0/+1
| | | | This reverts commit 10f01ae962feb68177f7bd698b01bbc18668920c.
* Remove unused parameter "root" in some VS generator methodsBrad King2010-12-101-1/+0
| | | | | The previous commit removed the last use of this parameter from the implementation of WriteTargetsToSolution. Remove the parameter.
* Merge topic 'vs-project-groups'Brad King2010-09-081-0/+4
|\ | | | | | | | | e6ac0aa Add FOLDER target property, for IDEs (#3796)
| * Add FOLDER target property, for IDEs (#3796)David Cole2010-09-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This work was started from a patch by Thomas Schiffer. Thanks, Thomas! See the newly added documentation of the FOLDER target property for details. Also added global properties, USE_FOLDERS and PREDEFINED_TARGETS_FOLDER. See new docs here, too. By default, the FOLDER target property is used to organize targets into folders in IDEs that have support for such organization. This commit adds "solution folder" support to the Visual Studio generators. Currently works with versions 7 through 10. Also, use the new FOLDER property in the ExternalProject test and in the CMake project itself.
* | Refactor VS <= 7.1 utility-depends workaroundBrad King2010-08-241-0/+1
|/ | | | | | | | | | | | | | | | | | Commit 438a7e2f (Fix utility dependencies for static libraries in VS generators, 2007-04-04) implemented utility-only dependencies between linkable targets by introducing an intermediate non-linkable target. We convert a dependency of the form foo -> bar to the form foo -> bar_UTILITY -> bar to prevent foo from including bar on its link line. Previously we added the extra "_UTILITY" targets explicitly among the project targets before dependency analysis was performed. Now we generate them separately at the last moment so that cmGlobalGenerator need not be aware of them.
* Do not link library dependencies in VS solutionsBrad King2009-10-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | In VS 8 and greater this commit implements add_dependencies(myexe mylib) # depend without linking by adding the LinkLibraryDependencies="false" option to project files. Previously the above code would cause myexe to link to mylib in VS 8 and greater. This option prevents dependencies specified only in the solution from being linked. We already specify the real link library dependencies in the project files, and any project depending on this to link would not have worked in Makefile generators. We were already avoiding this problem in VS 7.1 and below by inserting intermediate mylib_UTILITY targets. It was more important for those versions because if a static library depended on another library the librarian would copy the dependees into the depender! This is no longer the case with VS 8 and above so we do not need that workaround. See issue #9732.
* Avoid duplicate ZERO_CHECK in VS solutionsBrad King2009-10-191-1/+0
| | | | | | | | | | | | The commit "Avoid non-root copies of root-only targets" moved the check for root-only targets into cmGlobalGenerator::GetTargetSets to avoid adding multiple ALL_BUILD targets to the "original" target set. This approach did not work for ZERO_CHECK targets though because those are pulled in by dependency analysis. Instead we eliminate duplicate ZERO_CHECK targets altogether and refer to a single one from all solution files. This cleans up VS 10 project file references to ZERO_CHECK targets anyway.
* Avoid non-root copies of root-only targetsBrad King2009-10-061-0/+1
| | | | | | | | | | | | | | In cmGlobalGenerator::GetTargetSets we collect targets from all local generators in a tree or subtree corresponding to a project() command. Some targets, such as ALL_BUILD, are duplicated in each subdirectory with a project() command. For such targets we should keep only the copy for the top-most (root) local generator. Previously this filtering was done in each VS IDE generator, but it is easier to do it in one place when the targets are first encountered. This also fixes bad ALL_BUILD dependencies generated for VS 7.0 because the cmGlobalVisualStudio7Generator::WriteTargetDepends method was not filtering out duplicates. Now we avoid duplicates from the start.
* Move OrderedTargetDependSet into VS superclassBrad King2009-09-301-11/+0
| | | | | | We move cmGlobalVisualStudio7Generator::OrderedTargetDependSet up to cmGlobalVisualStudioGenerator so it can be re-used for other VS versions. See issue #9568.
* 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.