summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.h
Commit message (Collapse)AuthorAgeFilesLines
* cmLocalVisualStudio7Generator: Adopt SourcesVisited lookup tableBrad King2020-09-081-0/+9
| | | | | | | Move it up the hierarchy from `cmLocalVisualStudio10Generator`. Propagate contents from a target's dependencies as part of the main target iteration logic instead of as part of the generator-specific target generation.
* cmLocalVisualStudio7Generator: Consolidate target iterationBrad King2020-09-041-2/+1
| | | | | Combine iteration with `cmLocalVisualStudio10Generator` and dispatch generation of each target with a virtual `GenerateTarget` method.
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* Modernize memory managementMarc Chevrier2020-03-051-1/+6
| | | | Update internals of various classes.
* cmLocalVisualStudio7Generator: clean up c_str()Vitaly Stakhovsky2020-01-201-2/+2
|
* cmVisualStudio10TargetGenerator: use std::string for tagVitaly Stakhovsky2019-11-101-1/+1
|
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-2/+2
| | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-1/+1
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* cmVisualStudioGeneratorOptions: specify indentation with integerVitaly Stakhovsky2018-04-251-1/+1
|
* cmVisualStudioGeneratorOptions: Move XML code to subclassesVitaly Stakhovsky2018-03-261-1/+14
|
* VS: Use 'override' keyword for overridden methods in generator classesVitaly Stakhovsky2017-12-161-6/+6
| | | | The corresponding 'virtual' removed.
* VS,Xcode: Add CMakeLists.txt sources without mutating targetsBrad King2017-10-181-2/+2
| | | | | | | | | | | | Rather than injecting `CMakeLists.txt` files into each target's `SOURCES`, teach the generators to add them during generation using dedicated code. This avoids mutating the original targets, and avoids polluting `$<TARGET_PROPERTY:foo,SOURCES>` with generator-specific content. This also avoids listing the `CMakeLists.txt` sources in the results of `CMAKE_DEBUG_TARGET_PROPERTIES==SOURCES` so the `RunCMake.TargetSources` test no longer needs a separate case for IDEs.
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* VS: Teach generators how to mark per-config source filesBrad King2017-04-131-1/+2
| | | | | | | | | | | | | Add internal infrastructure for looping over all sources for all configurations and generating each source with exclusion marks for configurations in which they do not participate. This does not yet make per-config sources available in general but does set up some of the needed infrastructure. Unfortunately doing this cleanly will require major refactoring of both the VS 7-9 generators and the VS 10+ generators (for separate reasons). Instead add some extra internal structures to carry information where we need it.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* Refactor module definition file selectionBrad King2017-03-091-1/+0
| | | | | | Create a `ModuleDefinitionInfo` structure for each configuration of a target to hold corresponding information about the selected module definition file (`.def` source).
* iwyu: Fix VisualStudio specific issuesDaniel Pfeifer2016-11-281-5/+12
|
* 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-26/+26
| | | | | | | | | | | | | 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.
* Source: Stabilize include orderBrad King2016-04-291-0/+1
| | | | | Each source file has a logical first include file. Include it in an isolated block so that tools that sort includes do not move them.
* VS: Optionally generate remote directory for WinCE projectsAndrej Bosik2016-03-151-0/+3
| | | | | | | Teach the VS 2008 and 2005 generators to set the `RemoteDirectory` in `DeploymentTool` and the `RemoteExecutable` in `DebuggerTool`. Use a `DEPLOYMENT_REMOTE_DIRECTORY` target property to specify the value.
* VS: Port ComputeLongestObjectDirectory to cmGeneratorTargetStephen Kelly2015-10-241-1/+2
|
* VS7: Port to cmGeneratorTargetStephen Kelly2015-10-241-13/+16
|
* cmGeneratorTarget: Move GetTargetVersion from cmTarget.Stephen Kelly2015-10-161-1/+2
|
* cmLocalGenerator: Port GetTargetDirectory to cmGeneratorTarget.Stephen Kelly2015-10-141-1/+2
|
* cmLocalGenerator: Create from already-constructed cmMakefile.Stephen Kelly2015-08-281-2/+1
| | | | Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
* cmLocalGenerator: Remove Parent pointer.Stephen Kelly2015-08-281-1/+0
|
* cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-1/+2
| | | | | | | | | | | Refactor the local generator creation API to accept a cmState::Snapshot. Adjust MakeLocalGenerator to use the 'current' snapshot in cases where there is no parent. Create the snapshot for subdirectories in cmMakefile::AddSubdirectory. This means that snapshots are now created at the point of extending the tree, as appropriate, and independently of the cmLocalGenerator and cmMakefile they represent the state for.
* 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: Move version information to global generator.Stephen Kelly2015-05-191-1/+1
|
* VS: Simplify setting of flag table.Stephen Kelly2015-05-191-3/+0
|
* cmLocalGenerator: Require a global generator in the constructor.Stephen Kelly2015-05-141-1/+2
| | | | Port generator factory methods to pass it.
* 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: Delay getting platform name in local generatorBrad King2014-07-171-3/+0
| | | | | | Ask the global generator during generation instead of trying to store it up front. Later the global generator may not know the platform name when it is creating the local generator.
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-1/+1
|
* stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-2/+2
|
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-4/+4
|
* stringapi: Take strings in escaping functionsBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for VS project namesBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings in target nameBen Boeckel2014-03-081-8/+9
|
* Fix setting of the entry point symbol for Windows CE (#14088)Patrick Gansterer2013-08-051-1/+1
| | | | | Set the EntryPointSymbol only when it has not been set before and use the correct symbol depending on the usage of Unicode.
* VS: Avoid empty source groups in some cases (#3474)Anton Helwart2013-03-081-1/+1
| | | | | | Teach the WriteGroup method return true if a group or any of its children have source files. Have children write their output to a temporay cmOStringStream. Add it to the real output only if not empty.
* VS: Support setting correct subsystem and entry point for WinCEPatrick Gansterer2012-11-261-0/+1
| | | | | WinCE has only one SubSystem. So the WIN32_EXECUTABLE property must be handled via the EntryPointSymbol in the vcproj files.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-8/+8
| | | | | | | | | | | | | | | | | 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: Add CMakeLists.txt re-run rules at start of generationBrad King2012-03-281-0/+1
| | | | | | | | | | | | | | | Since commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19) the VS 10 generator uses the cmGeneratorTarget source classification instead of directly getting the list of source files from the target. This accidentally dropped the CMakeLists.txt files from generated projects because they are added too late for cmGeneratorTarget. All generator-specific source files must be added to targets prior to cmGeneratorTarget construction. Refactor addition of the CMakeLists.txt files with CMake re-run custom commands to take place before normal generation begins, and therefore early enough to be included in the cmGeneratorTarget classification.
* Pre-compute object file names before VS project generationBrad King2012-03-091-5/+1
| | | | | | Implement cmGlobalGenerator::ComputeTargetObjects in the VS generator to pre-compute all the object file names. Use the results during generation instead of re-computing it later.
* Remove unused partial OBJECT_FILES property implementationBrad King2012-03-061-3/+0
| | | | | | | Remove partial implementation added by commit ca0230a3 (check in initial conv library stuff, 2007-02-16) since it was never finished. It does not make sense for multi-configuration generators since no specific build configuration is processed at CMake time.
* Order VS local generator Version ivar values consistentlyBrad King2011-11-141-5/+1
| | | | | | | | | | | 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.
* Merge topic 'AutomocForQt'David Cole2011-08-251-1/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 920a046 QtAutomoc: Eliminate compiler warning b00463f QtAutomoc test: Pass QT_QMAKE_EXECUTABLE e78ce44 Fix automoc with VS builds: apply patch from Bill 71165e9 Silence warning in automoc: use long instead of int 1879bcc Fix build: use std::ios::out|ios::trunc instead of std::ios_base::out 678e124 Only enable the automoc test after checking that Qt4 works 71c29d1 Fix bootstrap test with automoc afb3edc Fix warnings add30e9 Fix build: non-void function must return a value 7e6d845 Automoc.cmake is not needed anymore 2963d0b Fix logic which decides when to execute automoc test 77a5c6e Add documentation for AUTOMOC, add initialization via CMAKE_AUTOMOC bf8ef77 Add a test for automoc d045fd4 Nicer progress message for the automoc target 50cd6ce Move automoc processing from add_executable/library to cmGlobalGenerator cbaac2a Remove trailing whitespace c27607b Refactor SetupAutomocTarget() so it can be run after creating the target 24d9b7d Remove trailing whitespace 58b7fe6 Use cout instead of printf() 72caf4d Add the generated automoc.cpp file to the cleaned files ddb517d Color output when running moc 9303295 Initialize verbose based onb the env.var. ace1215 Move code for parsing a cpp-file from the big loop to separate function 735a5bb Fix line lengths 83b730c Add AUTOMOC to the add_library() command 126c6ea Add the cmake module required currently for automoc de91feb Remove the need to check for .h/.cxx during buildtime d65689a Add actual automoc code from automoc d1c0a5f Start implementing skeleton for automoc in cmake a65011b Start work on automoc: add empty cmQtAutomoc class
| * Fix automoc with VS builds: apply patch from BillAlex Neundorf2011-08-181-1/+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