summaryrefslogtreecommitdiffstats
path: root/Source/cmExtraEclipseCDT4Generator.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* cmLocalGenerator: modernize memory managementMarc Chevrier2019-12-091-1/+1
|
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-2/+2
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* Eclipse: Add option to set the resource encodingMartin Gerhardy2019-07-091-0/+3
|
* Use C++11 override instead of CM_OVERRIDEBrad King2017-09-151-2/+2
| | | | | | | | We now require C++11 support including `override`. Drop use of the old compatibility macro. Convert references as follows: git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' | xargs sed -i 's/CM_OVERRIDE/override/g'
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+1
|
* 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'
* Simplify CMake per-source license noticesBrad King2016-09-271-13/+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.
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-1/+9
|
* Refactor extra generator registration to use factoriesTobias Hunger2016-08-031-13/+1
| | | | | | | | | | | This will allow additional information about the availability and capabilities of extra generators to be queried without actually creating them. Instead of a static NewFactory() method like the main generator factories have, use a static GetFactory() method to get a pointer to a statically allocated extra generator factory. This simplifies memory management.
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+1
|
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-6/+6
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-32/+30
| | | | | | | | | | | | | 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.
* Eclipse: Implement traversal of nested source groups (#15701)Patrik Lehmann2016-03-311-0/+3
|
* cmExtraEclipseCDT4Generator: port to cmXMLWriterDaniel Pfeifer2016-03-231-12/+9
|
* Eclipse: only add C/CXX macros if the language is enabledAlex Neundorf2016-02-241-0/+2
| | | | | | | | | | | With this patch, the builtin macros and include dirs are only added to the project file if the C/CXX langauges are really enabled. I.e. before this patch the CXX-stuff was in the project file as soon as CXX had been enabled at least once for this build tree. I.e. disabling CXX later on did not remove the CXX macros etc. from the project file (related to #15150) Alex
* Eclipse: Port API to cmLocalGenerator.Stephen Kelly2015-10-081-1/+1
|
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-3/+3
|
* Eclipse: use MachO64 parser starting with Helios (#14380)Alex Neundorf2014-01-011-0/+1
| | | | | | | | | With this patch, cmake now puts the MachO64 bit binary file parser into the config file if the detected Eclipse is at least Helios (7.0), otherwise with the old parser executables will not be recognized by Eclipse. Alex
* eclipse: Add natures for Eclipse based on enabled languagesBen Boeckel2013-11-191-0/+3
| | | | Also adds support for the Java nature if Java is being used.
* Use GmakeErrorParser instead of deprecated MakeErrorParser (fixes bug 0013699)Victor Zverovich2013-04-281-0/+1
|
* Eclipse: add switch to disable linked resources (#13189)Alex Neundorf2012-10-171-0/+1
| | | | | | | | Eclipse may get confused by these linked resources, because it sees the same source file multiple times then and doesn't recognize that it's the same file actually. Alex
* Eclipse: fix #13358: don't create bad linked resourcesAlex Neundorf2012-08-161-5/+0
| | | | | | | | | | | | | | directory where the project file is located (${CMAKE_BINARY_DIR}), which can happen e.g. for EXECUTABLE_OUTPUT_PATH and related variables. Now, it seems this code never worked. If EXECUTABLE_OUTPUT_PATH was set to point into a subdir of CMAKE_BINARY_DIR, the code did nothing. If it pointed directly at CMAKE_BINARY_DIR or some other location, it created a linked resource. I tested this with Eclipse Europa (3.3) and Juno (4.2), and in this case both versions of Eclipse complained that this is a bad location for a linked resource. Alex
* Eclipse: create links to subprojects also in the source-project (#12579)Alex Neundorf2011-11-191-2/+3
| | | | Alex
* Eclipse: add Build and Clean targets to targetsAlex Neundorf2011-10-231-1/+2
| | | | | | | | With this commit the virtual folder for the targets now have "Build" and "Clean" targets associated to them, so you can build and clean per-target now in the project explorer. Alex
* Eclipse: move code for generating links to targets into separate functionAlex Neundorf2011-10-231-1/+1
| | | | Alex
* Eclipse: move code for generating links to projects into separate functionAlex Neundorf2011-10-231-0/+3
| | | | Alex
* Eclipse: add virtual folder for each targetAlex Neundorf2011-10-191-1/+3
| | | | | | | | For each target a virtual folder is created, which contains one virtual folder for each sourcegroup, which contain links to the actual source files (#12294, #12223) Alex
* Detect whether the current Eclipse version supports VirtualFoldersAlex Neundorf2011-10-151-0/+1
| | | | | | | | VirtualFolders are supported since 3.6 (Helios). Next patch will be to actually make use of the new flag SupportsVirtualFolders. Alex
* -fix VirtualFolders in Eclipse under WindowsAlex Neundorf2011-05-061-1/+2
| | | | | | | | Under Windows "locationURI" must be used for virtual folders, while "location" must be used only for linked folders. Under Linux it doesn't seem to matter. Alex
* Add cache var CMAKE_ECLIPSE_MAKE_ARGUMENTS when using the Eclipse generatorAlex Neundorf2010-12-121-0/+1
| | | | | | | | This variable can be set to command line arguments which will be passed to make when eclipse invokes make, e.g. you can enter "-j8" to get 8 parallel builds (#9930) Alex
* Don't disable colors in the CodeBlocks generator and minor cleanup.Alex Neundorf2010-11-111-2/+0
| | | | | | | Since now the only users of SetToolSupportsColor() are gone, this method is removed too. Alex
* Remove the "early alpha stage" comments about Eclipse and C::BAlex Neundorf2010-11-111-2/+0
| | | | Alex
* Remove trailing whitespaceAlex Neundorf2010-11-111-2/+2
| | | | Alex
* fix the way the PATH and other related env.vars are stored in the eclipse ↵Alexander Neundorf2009-12-231-0/+3
| | | | | | | | | | | | | | | | | | project file when using MSVC Before this commit, the value of PATH at cmake time was put into the eclipse project file. The problem with this is that this will be lost the first time cmake is rerun from an build inside eclipse which was started without the environment externally already set. This patch now: -adds the env.var to the cache if it is not already in the cache -reuses the variable from the cache if it is in the cache, but not in the env. -uses the variable from the cache if it contains the whole content of the current env.var (e.g. if it is the full PATH plus the MSVC dirs) Also store INTEL_LICENSE_FILE in the project file if an Intel compiler is used. Alex
* improve system/compiler specific settings of EclipseAlexander Neundorf2009-11-221-12/+0
| | | | | | | | | -use CMAKE_EXECUTABLE_FORMAT and CMAKE_SYSTEM_NAME to decide which binary parsers to load (ELF/Mach O/PE) -use CMAKE_(C|CXX)_COMPILER_ID to load the respective compiler error parser -remove EclipseToolchainType, which was a mixture between compiler and operating system Alex
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-18/+13
| | | | | | | 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.
* Major improvement of the generated targets in Eclipse.Alexander Neundorf2009-09-161-1/+3
| | | | | | | | | | | | | | | Before this change all targets were displayed in the top level directory of the project. Now the targets are displayed in the correct directory. The targets "clean" and "all" are now created in every subdirectory. Also now the targets for just compiling one file, preprocessing one file, assembling one file are are created for Eclipse. Additionally all targets get a prefix now in eclipse, so that they are sorted in a way which makes sense (global targets first, then executable and libraries, then object files, then preprocessed, then assembly). Also this prefix gives the user a hint what the target is, i.e. whether it's a library or an executable or something else. Alex
* sync target generation with the CodeBlocks generatorAlexander Neundorf2009-09-101-1/+0
| | | | | | | | | | | Basically the code is now a copy of the one from the CodeBlocks generator, maybe this could move into a common helper function somewhere: -only insert GLOBAL targets from the toplevel directory -don't insert the edit_cache target if it calls ccmake, since this doesn't work in the output tab of Eclipse -add the /fast targets Alex
* ENH: when using the Eclipse project generator, run gcc so that it tells usAlexander Neundorf2009-03-131-0/+4
| | | | | | | | | | its system include directories. These are catched in CMakeSystemSpecificInformation.cmake (only with the Eclipse generator) and then written by the Eclipse generator in the Eclipse project file. This way Eclipse can find the standard headers (#7585) Not sure CMakeSystemSpecificInformation.cmake is the best place to do this. Alex
* ENH: patch from Miguel,Alexander Neundorf2009-01-111-0/+4
| | | | | | | | | | | | | | | | | | | | | As it is today the generator creates linked resources to LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH if they are not a subdirectory of the binary dir, so that the IDE can detect the Binaries (this was addressed previously as a result of a bug report). Reduces code redundancy by encapsulating common behaviour for LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH in AppendLinkedResource. Addresses the two new variable names for these locations, CMAKE_LIBRARY_OUTPUT_DIRECTORY and CMAKE_RUNTIME_OUTPUT_DIRECTORY respectively. Finally, it is addressing a bug in the current code for relative paths in these variables. If it is a relative path to the binary dir, the IsSubdirectory call returns false and so it creates the linked resource. The created linked resource produces an error in the Eclipse IDE because the IDE expects it to be a full path. The patch now addresses this by concatenating the binary dir if it is a relative path.
* COMP: forgot to commit this fileAlexander Neundorf2009-01-101-0/+1
| | | | Alex
* BUG: fix #8105: don't hardcode "gcc" and "make" but use CMAKE_C_COMPILER andAlexander Neundorf2009-01-091-1/+2
| | | | | | CMAKE_MAKE_PROGRAM instead Alex
* BUG: apply patch from #8205, also fixes #8212: escape characters for XMLAlexander Neundorf2009-01-081-0/+2
| | | | | | when writing the eclipse project files Alex
* ENH: patch from Miguel part 2: if ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT isAlexander Neundorf2008-02-191-1/+12
| | | | | | | | | | true, then the generator additionally generates eclipse project files in the source dir, since this is the only way to get cvs/svn working with eclipse This is off by default and the user has to enable it explicitely. If cmake can't write there it still continues. Alex
* ENH: patch part 1 from Miguel: use the cmake project name for the eclipseAlexander Neundorf2008-02-191-0/+9
| | | | | | project name Alex
* ENH: patch from MiguelAlexander Neundorf2007-08-171-17/+20
| | | | | | | | | | | | | | | - cleaning up a bit: static helper functions, remove unused scanner profiles, remove unused variables, etc. - correct <name> entry in .project file - converts the make command and other paths obtained from cygwin cmake to windows style paths - provide environment setup for compiling with nmake - create linked resources and path entries for executable/library_output_path's not subdirs of binary path - fixes incorrect exclusions of output dirs when named the same as source dir - excludes the CMakeFiles subdirs from the directories to scan for output targets - removes possible redundant entries in <pathentry include ...> - adds the all and preinstall targets to the target list - removes the linked resources for non out-of-source builds and conflicting dirs Alex
* ENH: add Eclipse CDT4 generator, patch from Miguel A. Figueroa-VillanuevaAlexander Neundorf2007-08-011-0/+93
Alex