summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio8Generator.h
Commit message (Collapse)AuthorAgeFilesLines
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-10/+10
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* VS: Ignore USE_FOLDER property on VS versions that do not support itBrad King2016-04-261-0/+2
| | | | | Solution folders are supported on VS 8 and above in the full versions and on VS 11 and above in the express versions.
* VS: Detect VS 8 and 9 Express editionsBrad King2016-04-261-0/+4
|
* VS: Port interface to cmGeneratorTargetStephen Kelly2015-10-241-1/+1
|
* VS: Port ProjectDepends to cmGeneratorTarget.Stephen Kelly2015-10-241-1/+2
|
* cmState: Move TargetType enum from cmTarget.Stephen Kelly2015-10-141-2/+2
| | | | | | | Mostly automated: values=( "EXECUTABLE" "STATIC_LIBRARY" "SHARED_LIBRARY" "MODULE_LIBRARY" "OBJECT_LIBRARY" "UTILITY" "GLOBAL_TARGET" "INTERFACE_LIBRARY" "UNKNOWN_LIBRARY" "TargetType") for i in "${values[@]}"; do git grep -l cmTarget::$i | xargs sed -i "s|cmTarget::$i|cmState::$i|g"; done
* VisualStudio: Replace Compute override with AddExtraIDETargets override.Stephen Kelly2015-10-051-1/+1
|
* cmGlobalGenerator: Virtualize the Compute step and override it.Stephen Kelly2015-07-301-1/+1
|
* cmGlobalGenerator: Require a cmake instance in ctor.Stephen Kelly2015-05-271-1/+1
| | | | It is required anyway, so this makes it explicit.
* VS: Do not accumulate configurations globally (#15577)Brad King2015-05-211-1/+3
| | | | | | | | | | | Drop the VS >= 7 generator's global Configurations member and instead lookup configurations using cmMakefile::GetConfigurations where needed. This avoids accumulating all CMAKE_CONFIGURATION_TYPES values ever encountered by a project() or enable_language() command and allows the final value to be used in each directory. We don't officially support per-directory CMAKE_CONFIGURATION_TYPES values but we certainly should not generate configurations not in the final value in the top level directory.
* VS: Remove obsolete methods.Stephen Kelly2015-05-191-3/+0
| | | | Base class implementations for these are identical.
* cmLocalGenerator: Require a parent in the constructor.Stephen Kelly2015-04-281-1/+1
| | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8Brad King2014-09-051-0/+2
| | | | | | | | | 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 logic deciding to add "Deploy" to the .sln fileGilles Khouzam2014-07-311-0/+3
| | | | | Move the condition to a "NeedsDeploy" virtual method that can be overridden by more recent VS generators.
* cmGlobalGenerator: Create a non-virtual 'DoGenerate' methodBrad King2014-07-221-1/+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-0/+2
| | | | | | | 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: Refactor CMAKE_FORCE_*64 platform definitionsBrad King2014-07-171-2/+1
| | | | | | | 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.
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-4/+5
|
* stringapi: Use strings for VS project namesBen Boeckel2014-03-081-2/+3
|
* Constify handling of target dependencies.Stephen Kelly2013-12-111-1/+1
|
* VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdevBrad King2013-11-181-0/+2
| | | | | Teach the VS generators to compute the locations of these tools directly from registry entries. Add internal APIs to get the locations on demand.
* VS: Fix CMAKE_SUPPRESS_REGENERATION bad ZERO_CHECK dependency (#14378)Brad King2013-08-281-1/+1
| | | | | | | When CMAKE_SUPPRESS_REGENERATION tells us not to create the ZERO_CHECK target we should not add dependencies on it from other targets either. Reviewed-by: Mateusz Loskot <mateusz@loskot.net>
* VS: Replace ArchitectureId with PlatformNamePatrick Gansterer2013-08-051-1/+1
| | | | | | | | 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-3/+0
| | | | | Move the code which sets CMAKE_VS_PLATFORM_NAME from cmGlobalVisualStudio8Generator to cmGlobalVisualStudio7Generator.
* VS: Added "Deploy" at project configuration for WindowsCE targetsPatrick Gansterer2012-11-271-1/+1
|
* VS: Allow setting the name of the target platformPatrick Gansterer2012-11-271-0/+1
| | | | | Since the name for a target platform is independent of its cpu architecture an additional option is required to set it correctly.
* VS: Add parser for WCE.VCPlatform.config to read WinCE platformsPatrick Gansterer2012-11-271-0/+6
| | | | | | Parse the WCE.VCPlatform.config file, which contains the installed WindowsCE SDKs in XML format, and add possibility to generate Visual Studio generators for them.
* VS: Change variable type of Name from const char* to stringPatrick Gansterer2012-11-261-2/+2
|
* VS: Add CMAKE_VS_PLATFORM_NAME definition to cmMakefilePatrick Gansterer2012-11-261-0/+2
| | | | | | When adding more platforms to the Visual Studio generators a simple regular expressing can not handle all cases anymore. This new define holds the name of the Visual Studio target platform.
* Merge topic 'generator-factory'Brad King2012-11-201-8/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * VS: Remove platform specific generator filesPatrick Gansterer2012-11-191-7/+9
| | | | | | | | Move the whole logic into the base class and the factory.
| * VS: Remove GetPlatformName from platform-specific generatorsPatrick Gansterer2012-11-191-1/+1
| | | | | | | | | | Use the existing ArchitectureId to generate the PlatformName to reduce duplicated information in the classes.
| * 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/+3
| | | | | | | | | | This new abstract class allows us move some logic from the cmGlobalGenerator into its own layer in a next step.
* | Add property EXCLUDE_FROM_DEFAULT_BUILD_<CONFIG>Petr Kmoch2012-11-131-4/+4
|/ | | | Allow EXCLUDE_FROM_DEFAULT_BUILD to be specified per configuration.
* VS: Cleanup AddPlatformDefinitions() of Visual Studio generatorsPatrick Gansterer2012-08-221-3/+0
| | | | | 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-3/+3
| | | | | | | | | | | | | | | | | 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/ \+$//'
* include_external_msproject: Add TYPE, GUID, PLATFORM options (#13120)Leonid Yurchenko2012-04-161-1/+2
| | | | These allow one to reference more external VS project file variations.
* Skip VS <= 7.1 dependency analysis for VS >= 8Brad King2010-12-011-0/+1
| | | | | | | | Commit 1a0c166 (Store direct dependencies in solutions for VS >= 8, 2010-08-20) disabled use of VS-specific global dependency analysis. Avoid perfoming the analysis at all when it is not needed. This also prevents creation of bogus and unused '_UTILITY' targets since they are not needed for dependencies.
* Store direct dependencies in solutions for VS >= 8Brad King2010-09-101-0/+2
| | | | | | | | Since commit bc43b0f2 (Do not link library dependencies in VS solutions, 2009-10-20) CMake disables for VS >= 8 linking of a target to libraries that happen to be listed as solution-level dependencies. Therefore we can list the direct dependencies of each target in the solution file and let VS handle transitive dependencies automatically.
* VS: Add ArchitectureId to VS 8 and 9 generatorsPatrick Gansterer2010-08-261-0/+2
| | | | Avoid duplicate architecture string literals.
* VS: Convert PlatformName member to a virtual methodPatrick Gansterer2010-08-241-3/+2
|
* WIP: VS 10 Win64 generatorBrad King2009-10-221-0/+2
| | | | See issue #9754.
* 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-0/+2
| | | | | | | | | | | | 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.
* 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.
* Create VS generator GetRegistryBase methodBrad King2009-09-161-0/+1
| | | | | | | | | This method returns the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version> A protected GetIDEVersion method retrieves the version-specific part of the key name.
* Simplify VS generator ZERO_CHECK dependencyBrad King2009-09-041-2/+0
| | | | | | | | | | The VS generators use a ZERO_CHECK target on which all other targets depend to check whether CMake needs to re-run. This commit simplifies the addition of a dependency on the target to all other targets. We also move addition of dependencies to the beginning of the Generate step. This allows the dependency on ZERO_CHECK to be included in the global inter-target dependency analysis.
* 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.