summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix line-too-long style violationsBrad King2009-10-231-1/+2
| | | | | The commit "Define per-target OSX_ARCHITECTURES property" introduced some long lines. This wraps them into multiple shorter lines.
* Define per-target OSX_ARCHITECTURES propertyBrad King2009-10-211-0/+4
| | | | | | | | | | | The CMAKE_OSX_ARCHITECTURES variable works only as a global setting. This commit defines target properties OSX_ARCHITECTURES OSX_ARCHITECTURES_<CONFIG> to specify OS X architectures on a per-target and per-configuration basis. See issue #8725.
* Introduce "build feature" lookup frameworkBrad King2009-10-021-0/+4
| | | | | | | This creates cmTarget::GetFeature and cmMakefile::GetFeature methods to query "build feature" properties. These methods handle local-to-global scope and per-configuration property lookup. Specific build features will be defined later.
* 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.
* Optionally force conversion to relative pathBrad King2009-09-221-1/+1
| | | | | | | | In cmLocalGenerator::ConvertToRelativePath we normally convert to relative path only if the local and remote paths both lie inside the source tree or both lie inside the build tree. This commit adds an optional 'force' argument to allow conversion even when this rule is violated.
* Factor cmLocalGenerator::Configure input file readBrad King2009-09-031-0/+3
| | | | | | This method tells the cmMakefile to read the input CMakeLists.txt file. We factor out the call into a ReadInputFile method so it can be extended without polluting the Configure method.
* Factor cmLocalGenerator::Configure object max pathBrad King2009-09-031-0/+1
| | | | | | Much of the code in this method was dedicated to computing ObjectMaxPath after configuring the directory. We move this last step into its own ComputeObjectMaxPath method for better organization.
* ENH: add group support and fix borland errorBill Hoffman2009-07-111-4/+4
|
* ENH: first pass at VS 10, can bootstrap CMake, but many tests still failBill Hoffman2009-06-251-1/+1
|
* BUG: Use new include dir suppresson for all gensBrad King2009-02-261-1/+2
| | | | | | This fixes CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES to be used for all generators instead of just those that construct their own compiler command lines directly. See issue #8598.
* BUG: Remove implicit include dir suppressionBrad King2009-02-241-2/+1
| | | | | | | We used to suppress generation of -I/usr/include (and on OSX also -I/usr/local/include). This behavior seems to cause more trouble than it's worth, so I'm removing it until someone encounters the original problem it fixed. See issue #8598.
* ENH: Add rule substitutions useful for launchersBrad King2009-02-101-0/+1
| | | | | | This defines make rule substitutions <LANGUAGE>, <TARGET_NAME>, <TARGET_TYPE>, and <OUTPUT>. They will be useful for RULE_LAUNCH_* property values.
* ENH: Define RULE_LAUNCH_* propertiesBrad King2009-02-101-0/+7
| | | | | | | This defines global, directory, and target properties RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM. Their values specify 'launcher' command lines which are prefixed to compile, link, and custom build rules by Makefile generators.
* ENH: Warn if build dir is too long for filesystemBrad King2008-12-161-0/+1
| | | | | | When an object file directory is too deep to place an object file without exceeding CMAKE_OBJECT_PATH_MAX, this issues a warning. Previously we silently ignored the problem. See issue #7860.
* ENH: Refactor passing of max length object dirBrad King2008-12-161-2/+2
| | | | | | When computing the maximum length full path to the build directory under which object files will be placed, pass the actual path instead of just its length. This will be useful for error message generation.
* ENH: Fix optional use of relative paths.Brad King2008-10-091-3/+20
| | | | | | | These changes refactor cmLocalGenerator methods Convert and ConvertToOutputForExisting to support references inside the build tree using relative paths. After this commit, all tests pass with Makefile generators when relative paths are enabled by default. See issue #7779.
* ENH: Create Info.plist files in OS X FrameworksBrad King2008-09-021-0/+7
| | | | | | | A Mac OS X Framework should provide a Resources/Info.plist file containing meta-data about the framework. This change generates a default Info.plist for frameworks and provides an interface for users to customize it.
* ENH: Allow custom limit on object file path lengthBrad King2008-08-211-0/+1
| | | | | | | | Some native build tools, particularly those for cross compiling, may have a limit on the length of the full path to an object file name that is lower than the platform otherwise supports. This change allows the limit to be set by the project toolchain file through the variable CMAKE_OBJECT_PATH_MAX.
* ENH: Allow multiple OS X applications bundles to be created in a single ↵Brad King2008-02-141-0/+6
| | | | build directory. Converted Info.plist files to be generated directly instead of configured with make variables. The MACOSX_BUNDLE_* variables are now properties (and vars for compatibility).
* ENH: Enable use of link script whenever incremental archive construction ↵Brad King2008-01-301-0/+4
| | | | rules are available. Enable use of archive construction rules on MSYS.
* ENH: Add cmTarget::GetLinkInformation method to allow several places in the ↵Brad King2008-01-291-7/+0
| | | | generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
* BUG: Work-around bug in MSVC 6 command line parsing.Brad King2008-01-231-0/+2
|
* ENH: Implement linking with paths to library files instead of -L and -l ↵Brad King2008-01-221-8/+1
| | | | | | | | | | | | | | | | | separation. See bug #3832 - This is purely an implementation improvement. No interface has changed. - Create cmComputeLinkInformation class - Move and re-implement logic from: cmLocalGenerator::ComputeLinkInformation cmOrderLinkDirectories - Link libraries to targets with their full path (if it is known) - Dirs specified with link_directories command still added with -L - Make link type specific to library names without paths (name libfoo.a without path becomes -Wl,-Bstatic -lfoo) - Make directory ordering specific to a runtime path computation feature (look for conflicting SONAMEs instead of library names) - Implement proper rpath support on HP-UX and AIX.
* ENH: Enable use of COMPILE_DEFINITIONS property for Fortran sources.Brad King2008-01-181-1/+4
|
* ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into ↵Brad King2008-01-181-1/+0
| | | | a COMPILE_DEFINITIONS directory property.
* ENH: Enable CMAKE_<lang>_DEFINE_FLAG for COMPILE_DEFINITIONS property ↵Brad King2008-01-171-1/+2
| | | | implementation.
* ENH: Create COMPILE_DEFINITIONS property for targets and source files. ↵Brad King2008-01-141-0/+11
| | | | Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
* ENH: Improved escaping in kwsys/System. Added escape of % for NMake. Added ↵Brad King2008-01-131-0/+1
| | | | escape of ; for the VS IDE.
* ENH: add CMAKE_DEFINE_FLAG_(LANG) that can replace -D flags with what the ↵Bill Hoffman2008-01-111-1/+1
| | | | compiler actually uses
* BUG: Restore old interface of "make foo.o" and "make foo.i" even though ↵Brad King2008-01-071-1/+2
| | | | object file names now include source extensions. For Java we also need to always remove the source extension (.java -> .class). This fixes the re-opening of bug #6169.
* ENH: Added method cmLocalGenerator::GetBackwardsCompatibility to reduce ↵Brad King2007-12-291-0/+21
| | | | parsing of CMAKE_BACKWARDS_COMPATIBILITY variable. Add cmLocalGenerator::NeedBackwardsCompatibility to simplify checks for compatibility requirements.
* ENH: Enabled color printing of "Scanning dependencies of target ..." message.Brad King2007-12-191-1/+2
|
* ENH: Moved dependency integrity check from CheckBuildSystem over to a ↵Brad King2007-12-191-6/+7
| | | | per-target UpdateDependencies step. This greatly reduces the startup time for make processes and allows individual targets to be built without a global dependency check.
* STYLE: fix warnings: comparison signed/unsigned, unused variableAlexander Neundorf2007-12-191-1/+1
| | | | Alex
* ENH: add support for chrpath, so the RPATH in ELF files can be changed whenAlexander Neundorf2007-12-181-4/+7
| | | | | | | | | | | | | | | | | | installing without having to link the target again -> can save a lot of time chrpath is handled very similar to install_name_tool on the mac. If the RPATH in the build tree file is to short, it is padded using the separator character. This is currently disabled by default, it can be enabled using the option CMAKE_USE_CHRPATH. There are additional checks whether it is safe to enable it. I will rework them and use FILE(READ) instead to detect whether the binaries are actually ELF files. chrpath is available here http://www.tux.org/pub/X-Windows/ftp.hungry.com/chrpath/ or kde svn (since a few days): http://websvn.kde.org/trunk/kdesupport/chrpath/ Alex
* STYLE: restructure OutputLinkLibraries() a bit, so that new there is aAlexander Neundorf2007-11-261-0/+4
| | | | | | | | function which returns the RPATH, so e.g. the install rpath can be queried when the command for the build rpath is created. This is a first step for supporting chrpath. Alex
* ENH: Moved GetTargetDirectory method up to cmLocalGenerator. This provides ↵Brad King2007-08-011-0/+6
| | | | a common interface to something that was implemented in most local generators anyway.
* ENH: Merging changes from branch CMake-SourceFile2-b between tagsBrad King2007-06-181-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk. This commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and CMake-SourceFile2-b-mp1-post on the trunk. The changes re-implement cmSourceFile and the use of it to allow instances to be created much earlier. The use of cmSourceFileLocation allows locating a source file referenced by a user to be much simpler and more robust. The two SetName methods are no longer needed so some duplicate code has been removed. The strange "SourceName" stuff is gone. Code that created cmSourceFile instances on the stack and then sent them to cmMakefile::AddSource has been simplified and converted to getting cmSourceFile instances from cmMakefile. The CPluginAPI has preserved the old API through a compatibility interface. Source lists are gone. Targets now get real instances of cmSourceFile right away instead of storing a list of strings until the final pass. TraceVSDependencies has been re-written to avoid the use of SourceName. It is now called TraceDependencies since it is not just for VS. It is now implemented with a helper object which makes the code simpler.
* STYLE: remove duplicate non-const accessors GetLocalGenerator(int) andAlexander Neundorf2007-06-151-0/+4
| | | | | | | | | | | | GetLocaGenerators(cmLocalGenerators) from cmGlobalGenerator(). Now there is one const accessor which is even faster since it returns a reference (instead of copying a vector) -more const to ensure that this the returned local generators don't actually get modified -removed duplicated code in GetCTestCommand() and GetCPackCommand() -added some const accessors Alex
* ENH: Added testing for custom command line arguments containing all special ↵Brad King2007-05-171-0/+1
| | | | characters on the US keyboard. Fixed curly brace arguments on borland and % arguments in mingw32-make.
* BUG: fix -D escaped quotes for watcomBill Hoffman2007-05-101-1/+1
|
* BUG: fix problem for non-C/CXX languages with Visual Studio, theAlexander Neundorf2007-05-091-1/+3
| | | | | | | dependencies for the custom commands added for java were not handled correctly. Needs more work. Alex
* ENH: now target names can be used in add_custom_command() andAlexander Neundorf2007-05-091-1/+13
| | | | | | | | | | add_custom_target() as COMMAND, and cmake will recognize them and replace them with the actual output path of these executables. Also the dependency will be added automatically. Test included. ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(), so it is done now in one central place Alex
* ENH: Added computation of object file names that are almost always short ↵Brad King2007-03-161-2/+4
| | | | enough to not exceed the filesystem path length limitation. This is useful when a source file from outside the tree is referenced with a long full path. The object file name previously would contain the entire path which when combined with the build output directory could exceed the filesystem limit. Now CMake recognizes this case and replaces enough of the beginning of the full path to the source file with an md5sum of the replaced portion to make the name fit on disk. This addresses bug#4520.
* ENH: some code cleanupKen Martin2007-03-121-4/+0
|
* ENH: SetupPathConversions is now called automatically on demand.Brad King2007-03-081-3/+2
|
* ENH: Improved computation of RelativePathTopSource and RelativePathTopBinary ↵Brad King2007-03-071-0/+2
| | | | to use higher relative path tops when the source directories jump around in a tree below the original source top.
* COMP: Fix ConvertToRelativePath change for Xcode generator.Brad King2007-03-071-10/+10
|
* ENH: Moved ConvertToRelativePath from cmGlobalGenerator to cmLocalGenerator. ↵Brad King2007-03-071-0/+21
| | | | This is in preparation for setting up each local generator to have its own RelativePathTopSource and RelativePathTopBinary based on its ancestor directories.
* ENH: Make EXCLUDE_FROM_ALL a target and directory properties. Also, make ↵Andy Cedilnik2007-02-231-9/+2
| | | | IsInAll use EXCLUDE_FROM_ALL. Also, enable the test that tests this