summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio7Generator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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-15/+8
| | | | | | | | 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-4/+25
| | | | | Move the code which sets CMAKE_VS_PLATFORM_NAME from cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
* Merge topic 'vs-configurations'Brad King2013-05-161-0/+10
|\ | | | | | | | | 42bb42d VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
| * VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generatorsBrad King2013-05-131-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Initialize the CMAKE_CONFIGURATION_TYPES cache entry early during EnableLanguage like the Xcode generator does. Avoid depending on the MSVC compiler information module to do it. Otherwise code like project(MyProj NONE) sets CMAKE_CONFIGURATION_TYPES late (in GenerateConfigurations), and to only "Debug" and "Release" instead of the standard set of 4. Reported-by: Paul Smith <paul@mad-scientist.net>
* | Add projectDir parameter to GenerateBuildCommandPetr Kmoch2013-04-121-1/+3
|/ | | | | | | | 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: Restore CMAKE_GENERATOR_FC variableBrad King2013-02-221-0/+1
| | | | | | | | | In commit bed6c388 (VS,Xcode: Remove unused CMAKE_GENERATOR_* variables, 2013-02-19) we removed this variable among others from the VS generator claiming they were all not used. In fact the Fortran compiler detection module CMakeDetermineFortranCompiler.cmake uses CMAKE_GENERATOR_FC even for the Visual Studio IDE generators because it does not use the full IDE compiler id detection like the C and C++ language files do.
* VS,Xcode: Remove unused CMAKE_GENERATOR_* variablesBrad King2013-02-191-3/+0
| | | | | | | Since the topic merged to master by commit 34a02846 (Merge topic 'ide-compiler-id', 2012-08-24), these variables are not used by CMakeDetermine*Compiler.cmake for VS and Xcode generators. Drop the code that sets them.
* VS: Added "Deploy" at project configuration for WindowsCE targetsPatrick Gansterer2012-11-271-3/+3
|
* Merge topic 'generator-factory'Brad King2012-11-201-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | Making the function static allows us to call it directly, without creating and removing an instance of the generator.
* | Merge topic 'per-config-EXCLUDE_FROM_DEFAULT_BUILD' into vs-global-sectionsBrad King2012-11-161-19/+34
|\ \ | | | | | | | | | | | | Conflicts: Source/cmGlobalVisualStudio7Generator.h
| * | Add property EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>Petr Kmoch2012-11-131-19/+34
| |/ | | | | | | Allow EXCLUDE_FROM_DEFAULT_BUILD to be specified per configuration.
* | Implement properties VS_GLOBAL_SECTION_*Petr Kmoch2012-11-161-5/+67
|/ | | | | | 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: Avoid empty, unreferenced solution folders... (#13571)David Cole2012-10-241-0/+2
| | | | | | | | | | | | | ...in generated sub-directory sln files. Thanks to rlandert for the bug report and proposed patch. The method WriteTargetsToSolution gets called possibly multiple times, once per sln file, (-> once per "project" command). Before accumulating folder names in VisualStudioFolders, clear it first, so it doesn't have stale entries in it from the previous sln file.
* VS: Simplify MSVC version reportingBrad King2012-08-301-1/+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-7/+1
| | | | | Move adding of definitions into cmGlobalVisualStudioGenerator to share code and avoid duplicate architecture string literals.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-32/+32
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* VS: Fix line-too-long style errorsBrad King2012-04-191-4/+5
| | | | | Commit 59139031 (include_external_msproject: Add TYPE, GUID, PLATFORM options, 2012-04-16) introduced some long lines. Wrap them.
* include_external_msproject: Add TYPE, GUID, PLATFORM options (#13120)Leonid Yurchenko2012-04-161-7/+18
| | | | These allow one to reference more external VS project file variations.
* Order VS local generator Version ivar values consistentlyBrad King2011-11-141-1/+2
| | | | | | | | | | | Move the Version member to the top cmLocalVisualStudioGenerator class and set it consistently for instances created by all the global generator versions. Use an enumeration type with values scaled by a factor of 10 so we can handle VS 7.1 without out-of-order numbers. VS 7.1 support for SuppressStartupBanner was broken by commit 25116a3c (Fix CMAKE_VERBOSE_MAKEFILE for VS10 vcxproj files, 2011-10-11) because it assumed comparison of VS version numbers works. Now it does.
* Fix automoc with VS builds: apply patch from BillAlex Neundorf2011-08-181-12/+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
* Avoid msbuild ".\" idiosyncrasy that builds multiple configs (#11594)Brad King2010-12-201-4/+8
| | | | | | | | | | | | | If a .sln file refers to a project file with a leading ".\", as in ".\foo.vcxproj" instead of just "foo.vcxproj" or a full path then msbuild behaves strangely. Whenever target foo is built as a dependency of another target, msbuild brings multiple configurations up to date instead of just the requested configuration! Avoid a leading ".\" in project file references to avoid this behavior. This alternative fix to that attempted by commit 57e71533 (Avoid msbuild idiosyncrasy that builds multiple configs, 2010-12-10) avoids use of full path project file references which vcbuild does not support.
* Revert "Avoid msbuild idiosyncrasy that builds multiple configs" (#11633)Brad King2010-12-201-0/+2
| | | | | | | | This reverts commit 57e71533f45601275afd7787d763664f9e6b9536. While "msbuild" can handle full paths to project files in solutions, the old "vcbuild" used for VS < 10 cannot. We will need another way to fix issue #11594.
* Revert "Remove unused parameter "root" in some VS generator methods"Brad King2010-12-201-1/+2
| | | | This reverts commit 10f01ae962feb68177f7bd698b01bbc18668920c.
* Remove unused parameter "root" in some VS generator methodsBrad King2010-12-101-2/+1
| | | | | The previous commit removed the last use of this parameter from the implementation of WriteTargetsToSolution. Remove the parameter.
* Avoid msbuild idiosyncrasy that builds multiple configs (#11594)Brad King2010-12-101-2/+0
| | | | | | | | | | If a .sln file refers to a project file with a leading ".\", as in ".\foo.vcxproj" instead of just "foo.vcxproj" or a full path then msbuild behaves strangely. Whenever target foo is built as a dependency of another target, msbuild brings multiple configurations up to date instead of just the requested configuration! Refer to all project files by full path to avoid this behavior.
* Remove unused variable "rootdir" in VS generatorsBrad King2010-12-101-2/+0
|
* Honor FOLDER on include_external_msproject targets (#11436)David Cole2010-11-101-37/+41
| | | | | | | Add FOLDER property usage to the VSExternalInclude test and inspect results manually to verify behavior. Thanks to Jens Auer for the bug report.
* Merge topic 'vs-project-groups'Brad King2010-10-051-2/+10
|\ | | | | | | | | fd3249e New USE_FOLDERS property OFF by default. (#3796)
| * New USE_FOLDERS property OFF by default. (#3796)David Cole2010-10-021-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visual Studio Express editions do not support solution folders, so default behavior should be as if USE_FOLDERS global property is OFF. Also, allow folder names to be the same as target names: internally, use a prefix to distinguish folder GUIDs from target GUIDs. Add a target and folder with the same name in the ExternalProject test to exercise this code. For CMake itself, provide a new option CMAKE_USE_FOLDERS that defaults to ON so that Visual Studio users get a nicely organized CMake project. Express edition users will have to turn off the CMAKE_USE_FOLDERS option in order to build CMake in the VS Express IDE.
* | Merge topic 'vs-project-groups'Brad King2010-09-081-0/+99
|\ \ | |/ | | | | | | e6ac0aa Add FOLDER target property, for IDEs (#3796)
| * Add FOLDER target property, for IDEs (#3796)David Cole2010-09-031-0/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Factor out duplicate VS target dependency codeBrad King2010-08-241-51/+15
|/ | | | | | Compute VS target dependencies in cmGlobalVisualStudioGenerator when the main global dependency analysis is done. Use these results in each of the VS generators instead of duplicating the analysis.
* Teach VS generators to set the MACHINE type correctly.Bill Hoffman2009-11-201-1/+2
|
* Avoid duplicate ZERO_CHECK in VS solutionsBrad King2009-10-191-7/+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-27/+16
| | | | | | | | | | | | | | 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.
* Cleanup cmGlobalGenerator::GetTargetSets methodBrad King2009-10-011-10/+7
| | | | | | This commit cleans up the declaration, definition, and invocations of the GetTargetSets method and related code. There is no change in function except to make the method virtual.
* Move OrderedTargetDependSet into VS superclassBrad King2009-09-301-28/+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.
* ENH: Separate VS flag table typeBrad King2009-07-291-1/+1
| | | | | Move the cmVS7FlagTable type out of the VS generators and rename it to cmIDEFlagTable. It will be useful for other generators.
* ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties ↵Bill Hoffman2009-07-141-49/+19
| | | | instead, fix VXExternalInclude test for VS10
* ENH: only 5 failing tests for VS 10Bill Hoffman2009-07-101-33/+2
|
* BUG: Fix ALL_BUILD ordering enforcementBrad King2009-01-211-4/+4
| | | | | | The previous change to make ALL_BUILD come first among targets did not account for comparing the target name against itself. This led to an invalid ordering of the target set. This change fixes it.
* ENH: Make ALL_BUILD always the default projectBrad King2009-01-211-0/+9
| | | | | | | This teaches the VS IDE generators to write ALL_BUILD into solution files first so that it is always the default active project. Previously it was first only if no target name sorted lexicographically earlier. See issue #8172.
* BUG: Fix VS IDE project orderBrad King2009-01-211-21/+34
| | | | | | | | | | Our implementation of the feature to pull in dependent targets in VS solution files for subprojects caused the order of project files in the solution to be arbitrary (based on pointer value in the representation). Target ordering in solution files is important to prevent unnecessary changing of the files and because the VS IDE selects the first project listed as the default active target. This change restores lexicographic order by target name.
* STYLE: fix line length stuff for KWStyleBill Hoffman2008-10-011-1/+2
|
* BUG: fix for 6794 support for LTCG WholeProgramOptimization, which is not ↵Bill Hoffman2008-08-191-0/+1
| | | | available in VS 8 and newer.
* ENH: add support for Intel Fortran Visual studio IDEBill Hoffman2008-04-301-5/+14
|