Commit Graph

159 Commits

Author SHA1 Message Date
Stephen Kelly
33055c405e Generate modern-style cmake code.
The commits 9db31162 (Remove CMake-language block-end command
arguments, 2012-08-13) and 77543bde (Convert CMake-language
commands to lower case, 2012-08-13) changed most cmake code
to use lowercase commands and no parameters in termination
commands. However, those changes excluded cmake code generated
in c++ by cmake.

Make a similar style change to code generated by cmake.
2013-08-22 12:06:58 +02:00
Petr Kmoch
de8be9ef7d Add projectDir parameter to GenerateBuildCommand
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.
2013-04-12 11:35:35 -04:00
Patrick Gansterer
5170a8800f Make cmGlobalGenerator::GetDocumentation() a static function
Making the function static allows us to call it directly,
without creating and removing an instance of the generator.
2012-11-19 12:54:50 -05:00
Stephen Kelly
2c04bc00a4 Move the EscapeJSON method to a sharable location. 2012-06-04 23:42:37 +02:00
Brad King
3aa741acb6 Build object library targets in Makefiles
Treat OBJECT libraries as STATIC libraries but leave out the archive
step.  The object files will be left behind for reference by other
targets later.
2012-03-13 14:38:02 -04:00
Brad King
f737bd416a Pre-compute and store target object directory in cmGeneratorTarget
Add cmGeneratorTarget::ObjectDirectory member to hold the value.  In
ComputeTargetObjects set the value to the full path to the target object
directory including any necessary placeholder for the configuration
name.
2012-03-12 16:44:03 -04:00
Brad King
3baaf6ccec Pre-compute object file names before Makefile generation
Add a virtual cmGlobalGenerator::ComputeTargetObjects method invoked
during cmGeneratorTarget construction.  Implement it in the Makefile
generator to pre-compute all object file names for each target.  Use
the results during generation instead of re-computing it later.
2012-03-09 15:16:02 -05:00
Peter Collingbourne
557956f348 Introduce a cmGlobalGenerator::ResolveLanguageCompiler function
It is factored out of cmGlobalUnixMakefileGenerator3::EnableLanguage,
and may be used by other generators to resolve CMAKE_*_COMPILER
settings.
2011-10-02 18:30:43 +01:00
Brad King
e51bbc14f6 Merge topic 'output-compile-lines'
cdc2b41 Fix CompileCommandOutput test build on Windows
7039d1f Fix CompileCommandOutput test for Make tools not supporting spaces
4268e3d run_compile_commands: Cast istream::get() result to char
c45c60b run_compile_commands: Avoid extra stl vector conversion
7c5be51 run_compile_commands: Avoid shadow in std::map<>::at workaround
169bb05 Provide std::map<>::at for use in run_compile_commands
4e2185c Make std::map usage more portable in language=>flags/defines maps
a7e7a04 Fix run_compile_commands build on Apple GCC 3.3
c9174c0 Fix signed/unsigned comparison in EscapeJSON
8346a28 Only offer the compile command output feature on unix systems
0e6b05f Adds a test for the compile command line output.
5674844 make compile command output optional
fe07b05 implement cxx command output
65c0c24 cache flags and defines
3f064ef refactor flags and defines
2011-05-24 14:48:14 -04:00
Brad King
c9174c0e4b Fix signed/unsigned comparison in EscapeJSON 2011-05-16 11:55:56 -04:00
Brad King
dca304ec8d Merge branch 'MakeCodeBlocksGeneratorNonVerbose2' into rule-messages
Conflicts:
	Source/cmGlobalUnixMakefileGenerator3.cxx
	Source/cmGlobalUnixMakefileGenerator3.h
2011-05-16 11:28:07 -04:00
Brad King
051cee0096 Revert "Honor RULE_MESSAGES property for build target messages" (#12190)
This reverts commit dc36b34994.  It broke
dependency logic instead of only silencing messages.  Revert to previous
behavior.
2011-05-16 11:26:58 -04:00
Manuel Klimek
5674844de4 make compile command output optional 2011-04-25 13:27:58 -04:00
Manuel Klimek
fe07b0557b implement cxx command output 2011-04-25 13:27:58 -04:00
Alex Neundorf
a02987a0df Don't enforce VERBOSE makefiles for the CodeBlocks generator
Instead of enforcing verbose makefile, now the generated build command
includes "VERBOSE=1" so the output will be verbose when building in
C::B.
Also removed the now unused setForceVerboseMakefiles().

Alex
2010-11-11 22:06:09 +01:00
Alex Neundorf
7b1421b885 Remove trailing whitespace
Alex
2010-11-11 22:02:07 +01:00
Campbell Barton
dc36b34994 Honor RULE_MESSAGES property for build target messages 2010-11-03 10:10:03 -04:00
Brad King
6fc4cd8680 Fix or cast integer conversions in cmake
These were revealed by GCC's -Wconversion option.  Fix types where it is
easy to do so.  Cast in cases we know the integer will not be truncated.
2010-06-25 09:05:15 -04:00
Brad King
aa8c003609 Qualify std::map compare functor as const
Some older STL implementations invoke the comparison functor as a const
object, so the function call operator must be 'const' qualified.  This
fixes the commit "Fix support for OLD behavior of policy CMP0002" to
compile on older STLs.
2009-09-29 08:34:39 -04:00
Brad King
0089f9cf8f Fix support for OLD behavior of policy CMP0002
The commit "Cleanup make progress rule generation code" introduced a map
from target name to the progress.make file location.  Policy CMP0002's
OLD behavior allows duplicate target names in different directories, so
only one ends up with a progress.make file.  This commit fixes the map
to order by target name first and build directory second, restoring
support for duplicate target names.
2009-09-28 17:34:23 -04:00
Brad King
96afb12087 Convert CMake to OSI-approved BSD License
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.
2009-09-28 11:43:28 -04:00
Alexander Neundorf
03d032b637 Rescan dependencies also if CMakeDirectoryInformation.cmake has changed.
If CMakeDirectoryInformation.cmake is newer than depend.internal the include
directories may have changed, so dependencies need to be scanned again.
Ok by Brad.

Alex
2009-09-22 14:40:23 -04:00
Brad King
a3a046643a ENH: Pass config to cmTarget RPATH install methods
This passes the build configuration to cmTarget methods IsChrpathUsed
and NeedRelinkBeforeInstall.  Later these methods will use the value.
2009-07-08 13:03:47 -04:00
Brad King
cd83f1979d ENH: Cleanup make progress rule generation code
This cleans up the Makefile generator's progress rule code.  Instead of
keeping every cmMakefileTargetGenerator instance alive to generate
progress, we keep only the information necessary in a single table.
This approach keeps most of the code in cmGlobalUnixMakefileGenerator3,
thus simplifying its public interface.
2009-06-25 09:58:51 -04:00
Brad King
41b0f92c6a ENH: Enable basic OpenVMS platform support
This adds the Modules/Platform/OpenVMS.cmake platform file for OpenVMS.
We just use Unix-like rules to work with the GNV compiler front-end.

A problem with process execution currently prevents CMake link scripts
from working, so we avoid using them.
2009-06-10 13:04:04 -04:00
Brad King
b5394e9600 BUG: Avoid std::unique algorithm on VMS
The Compaq compiler's std::unique algorithm followed by deletion of the
extra elements seems to crash.  For now we'll accept the duplicate
dependencies on this platform.
2009-06-10 13:02:18 -04:00
Alexander Neundorf
2ab4e7df81 BUG: don't report changed compiler variables if the path to the compiler
differs only e.g. a double slash somewhere instead only one slash as
directory separator (#8890)

Alex
2009-05-10 05:29:10 -04:00
Brad King
2282748907 BUG: Fix OS X AppBundle/FW byproducts dependencies
App Bundle and Framework directories, symlinks, and Info.plist files we
create during generation are byproducts, not outputs.  We should re-run
CMake only when they are missing, not when they are old.
See issue #8465.
2009-02-06 11:18:56 -05:00
Bill Hoffman
bb7b27e417 ENH: add initial ctest -j feature 2008-07-03 09:31:33 -04:00
Ken Martin
fc8b27650c ENH: fix for bug 6364, extra help targets when there are subdirectories of the top level 2008-06-06 10:22:51 -04:00
Ken Martin
0b4375daf2 BUG: improve progress reporting when there are multiple targets with the same name, bug# 7042 2008-05-29 11:50:33 -04:00
Alexander Neundorf
4ce05b6e07 BUG: make ENABLE_LANGUAGE(ASM-ATT OPTIONAL) work again: if it didn't work
but was optional, don't delete the cache

Alex
2008-05-12 18:33:08 -04:00
Bill Hoffman
a24ff4e453 ENH: add PHONY targets 2008-03-24 10:26:38 -04:00
Ken Martin
2ad4f4bb9d BUG: fix some bad changes in progress calc 2008-03-12 14:37:46 -04:00
Bill Hoffman
6903d2df8b ENH: remove const 2008-01-30 22:56:34 -05:00
Bill Hoffman
8a83f09637 ENH: fix for bug 3218 dependant projects are written out automatically if they are in the project. Also fix bug 5829, remove hard coded CMAKE_CONFIGURATION_TYPES from vs 7 generator 2008-01-30 12:04:38 -05:00
Brad King
430296dc96 ENH: Moved global inter-target dependency analysis and cycle-prevention code up from cmGlobalUnixMakefileGenerator3 to cmGlobalGenerator. Simplified cmGlobalUnixMakefileGenerator3 to use it. Later other generators may be modified to use it also. 2007-12-23 15:03:42 -05:00
Brad King
2836fc43e7 BUG: Support cyclic dependencies among STATIC libraries by removing one from the generated Makefile rules. 2007-12-22 13:08:26 -05:00
Brad King
e23348c5a6 COMP: Remove unused parameter of method. 2007-12-21 18:32:22 -05:00
Brad King
3cf3bb664a ENH: Make static library targets depend on targets to which they "link" for the purpose of build ordering. This makes the build order consistent for static and shared library builds. It is also useful when custom command inputs of one library are generated as custom commands outputs of another. It may be useful in the future for Fortran module dependencies. Implemented for Makefiles, Xcode, and VS 8 and above. Added sample code to do it for VS 7.1 and below, but left it disabled with comments explaining why. Likely it will never be needed on VS 7.1 or below anyway. 2007-12-21 15:04:06 -05:00
Brad King
d2be142e3b BUG: Now that custom targets have dependencies their DependInfo files should be listed in Makefile.cmake. 2007-12-21 13:10:33 -05:00
Brad King
d83b4cd255 ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global. 2007-12-21 12:22:12 -05:00
Bill Hoffman
fd33bf93a5 ENH: fix for bug 6102, allow users to change the compiler 2007-12-13 15:54:29 -05:00
Ken Martin
6cdf032505 ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now 2007-10-22 12:49:09 -04:00
Brad King
bffcff4530 ENH: Added warning when an install rule is created from an EXCLUDE_FROM_ALL target. Added a foo/preinstall version of targets that need relinking so that exclude-from-all targets can be manually relinked for installation. 2007-08-03 16:31:08 -04:00
Brad King
d7118006de BUG: Target exclusion-from-all tests should always use the root local generator associated with the all target being tested. 2007-08-03 15:44:25 -04:00
Brad King
bf0c200f0a ENH: Added cmTarget::GetLanguages method to centralize computation of the list of languages compiled in a target. Transformed NeedRequiresStep to use it. 2007-08-03 09:39:32 -04:00
Brad King
8dc897b60c BUG: Removing accidental commit. 2007-08-02 14:28:45 -04:00
Brad King
695424f6b7 BUG: Quick-fix for accidental commit. 2007-08-02 14:28:00 -04:00
Brad King
8b0575c4ce ENH: Added cmTarget::GetLanguages method to centralize computation of the list of languages compiled in a target. 2007-08-02 14:23:46 -04:00