summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* -improve crosscompiling from Linux to iphone (#10526)Alex Neundorf2010-05-011-7/+9
| | | | | | Patch by Karol Krizka Alex
* Fix line length style issue.David Cole2010-02-021-1/+2
|
* Fix issue #10155 - default value of CMAKE_OSX_DEPLOYMENT_TARGET should ↵David Cole2010-01-291-3/+7
| | | | always be the empty string. When the value of CMAKE_OSX_DEPLOYMENT_TARGET is the empty string, the -mmacosx-version-min flag should not show up on the compiler command line. The logic for selecting default value of CMAKE_OSX_SYSROOT is orthogonal to and independent of the value of the deployment target. The default value for CMAKE_OSX_SYSROOT is the SDK that corresponds to the current version of Mac OSX on which cmake is running.
* Singly-quote target names for Watcom linkerBrad King2009-11-301-0/+10
| | | | | | | The Watcom tools do their own command-line parsing and do not accept double-quotes. Instead we single-quote the target output name when invoking wlink and other Watcom tools. This fixes support for spaces in the target output directory path when it is not under the build tree.
* Define per-target OSX_ARCHITECTURES propertyBrad King2009-10-211-25/+26
| | | | | | | | | | | 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.
* Split Borland compiler information filesBrad King2009-10-081-9/+0
| | | | | | | | | | | This commit re-writes Borland compiler build rules. We split the rules into modern <os>-<id>-<lang> information modules but share a common macro between languages to avoid duplication. We also address a bug in the previous rules that would build some target types against the static Borland runtime and others against the shared Borland runtime in one build tree. Now we always use the shared runtime as is the default in the rules for MS tools.
* Introduce "build feature" lookup frameworkBrad King2009-10-021-0/+20
| | | | | | | 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.
* Fix default install prefix on HaikuBrad King2009-09-301-0/+17
| | | | | | | | Since Haiku does not have /usr (and therefore /usr/local), this commit changes the default install prefix to the equivalent directory of /boot/common. See issue #9607.
* 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.
* Fix CMake Internal Error from cmTarget::GetOutputInfo - triggered by calling ↵David Cole2009-09-251-3/+8
| | | | GetLocation on a utility target - caused by custom command output file with same name as custom target. The fix is to avoid calling GetLocation unless the target is of a type that is expected to have a location...
* Optionally force conversion to relative pathBrad King2009-09-221-13/+16
| | | | | | | | 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.
* Fix check for -isysroot on OS XBrad King2009-09-191-7/+2
| | | | | | | | | | | Previously we checked for this flag by parsing the version number of GCC out of 'gcc --version', but this is not reliable because the format can vary greatly. Now we run 'gcc -v --help' and look for '-isysroot' in the list of options. We also now store the result on a per-language basis in the per-compiler info file "CMake<LANG>Compiler.cmake". This is necessary to make it accessible from try-compile projects so that they generate correctly.
* Only do the OSX arch stuff on OSX.Bill Hoffman2009-09-181-2/+3
|
* Add detection of gcc versions that do not support isysroot option and do not ↵Bill Hoffman2009-09-181-7/+13
| | | | use it for them.
* Fix case where no archs are found on older macs.Bill Hoffman2009-09-171-4/+4
|
* Fix for bug #9466. Change the implementation of OSX arch lists. If no ↵Bill Hoffman2009-09-171-4/+1
| | | | ARCHs are specified by the user then no flags are set. We no longer use CMAKE_OSX_ARCHITECTURES_DEFAULT.
* Create CMP0014 to require CMakeLists.txt filesBrad King2009-09-031-1/+41
| | | | | | Until now CMake accidentally accepted add_subdirectory() and subdirs() calls referring to directories that do not contain a CMakeLists.txt file. We introduce CMake Policy CMP0014 to make this case an error.
* Factor cmLocalGenerator::Configure input file readBrad King2009-09-031-3/+9
| | | | | | 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-4/+8
| | | | | | 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.
* Manage current local generator with automatic varBrad King2009-09-031-5/+22
| | | | | | | | The cmLocalGenerator::Configure method sets its cmLocalGenerator instance as the global generator's current local generator during configuration. This commit refactors management of the current local generator to use an automatic variable. This will allow early returns from the method.
* ENH: minor cleanup of testKen Martin2009-08-041-6/+4
|
* ENH: make sure GUIDs for filters are cachedBill Hoffman2009-07-171-2/+3
|
* ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties ↵Bill Hoffman2009-07-141-9/+4
| | | | instead, fix VXExternalInclude test for VS10
* ENH: Simpler cmTarget::GetLinkerLanguage signatureBrad King2009-07-071-4/+2
| | | | | | | This method previously required the global generator to be passed, but that was left from before cmTarget had its Makefile member. Now the global generator can be retrieved automatically, so we can drop the method argument.
* ENH: Support more preprocessor values in VS6Brad King2009-04-241-2/+9
| | | | | | | | | Previously we rejected all preprocessor definition values containing spaces for the VS6 IDE generator. In fact VS6 does support spaces but not in combination with '"', '$', or ';', and only if we use the sytnax '-DNAME="value with spaces"' instead of '-D"NAME=value with spaces"'. Now we support all definition values that do not have one of these invalid pairs. See issue #8779.
* BUG: Fix invalid array access discovered during investigation of issue #7832.David Cole2009-04-071-1/+1
|
* BUG: Allow more shell ops in custom commandsBrad King2009-03-171-0/+4
| | | | | This extends the set of common shell operators to include "||", "&&", "1>", and "2>". See issue #6868.
* ENH: Refactor generation of CTestTestfile contentBrad King2009-03-161-70/+22
| | | | | | | | | This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls into CTestTestfile.cmake files out of cmLocalGenerator and into a cmTestGenerator class. This will allow more advanced generation without cluttering cmLocalGenerator. The cmTestGenerator class derives from cmScriptGenerator to get support for per-configuration script generation (not yet enabled).
* ENH: Overhaul CMake version numberingBrad King2009-03-051-0/+1
| | | | | | | | | | | | | This moves the version numbers into an isolated configured header so that not all of CMake needs to rebuild when the version changes. Previously we had spaces, dashes and/or the word 'patch' randomly chosen before the patch number. Now we always report version numbers in the traditional format "<major>.<minor>.<patch>[-rc<rc>]". We still use odd minor numbers for development versions. Now we also use the CCYYMMDD date as the patch number of development versions, thus allowing tests for exact CMake versions.
* BUG: Use new include dir suppresson for all gensBrad King2009-02-261-23/+18
| | | | | | 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.
* ENH: Simplify reverse cmLocalGenerator::ConvertBrad King2009-02-261-16/+6
| | | | | | It does not make sense to call the reverse Convert signature (for remote paths corresponding to CMake-managed directories) with NONE or FULL since they have no path. Patch from Modestas Vainius. See issue #7779.
* ENH: Re-enable system include dir suppressionBrad King2009-02-251-0/+22
| | | | | | | | | | | | | | | This creates variable CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES to specify implicit include directories on a per-language basis. This replaces the previous platform-wide variable. It is necessary to avoid explicit specification of -I/usr/include on some compilers (such as HP aCC) because: 1.) It may break ordering among system include directories defined internally by the compiler, thus getting wrong system headers. 2.) It tells the compiler to treat the system include directory as a user include directory, enabling warnings in the headers. See issue #8598.
* BUG: Remove implicit include dir suppressionBrad King2009-02-241-20/+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/+25
| | | | | | 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/+28
| | | | | | | 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.
* BUG: Fix old-style install to prefix topBrad King2009-02-041-0/+4
| | | | | | | | | The old install_files, install_programs, and install_targets commands used to permit installation to the top of the prefix by specifying destination '/'. This was broken in 2.6.0 to 2.6.2 by changes to enforce valid destinations that did not account for this case. This change fixes the case by converting the install destination to '.' which is the new-style way to specify the top of the installation prefix.
* BUG: Fix issue #6195. Add CMAKE_OSX_DEPLOYMENT_TARGET cache variable to ↵David Cole2009-01-271-2/+19
| | | | specify the target deployment runtime OS version of the built executables on Mac OSX. Thanks to Mike Jackson for the patch.
* ENH: Warn if build dir is too long for filesystemBrad King2008-12-161-2/+21
| | | | | | 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-9/+10
| | | | | | 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-11/+99
| | | | | | | 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: Simplify framework -F flag generationBrad King2008-10-091-3/+5
| | | | | This removes an unnecessary use of ConvertToOutputForExisting which is needed only on Windows to consider short-pathing.
* ENH: Create Info.plist files in OS X FrameworksBrad King2008-09-021-0/+40
| | | | | | | 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-10/+42
| | | | | | | | 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: Add UNKNOWN type for IMPORTED librariesBrad King2008-08-181-0/+1
| | | | | | | | | | | | | | | When creating an IMPORTED target for a library that has been found on disk, it may not be known whether the library is STATIC or SHARED. However, the library may still be linked using the file found from disk. Use of an IMPORTED target is still important to allow per-configuration files to be specified for the library. This change creates an UNKNOWN type for IMPORTED library targets. The IMPORTED_LOCATION property (and its per-config equivalents) specifies the location of the library. CMake makes no assumptions about the library that cannot be inferred from the file on disk. This will help projects and find-modules import targets found on disk or specified by the user.
* STYLE: Convert unused target type cases to defaultBrad King2008-08-181-10/+2
| | | | | | In switch statements that deal with only a few target types, use a 'default' case for the remaining target types instead of listing them explicitly. This will make it easier to add more types in the future.
* BUG: Custom command depends may match sourcesBrad King2008-08-051-0/+9
| | | | | | | | Custom command dependencies that are not full paths or targets may also match source files. When one does, the full information about the source file's location and name may be used. This fixes the case when a custom commands depends by relative path on a source file generated by another custom command specifying its output by relative path.
* BUG: Do not convert RPATH entries to full path.Brad King2008-08-051-1/+1
| | | | | | When generating RPATH entries on the link line using a repeated linker flag (-R ... -R ... style) do not convert individual entries to a full path. We need to preserve what the user requested.
* BUG: Fix escaping in link scriptsBrad King2008-08-051-1/+1
| | | | | | | When generating escape sequences for the native build tool do not put in Makefile escapes for paths generated into link scripts. This fixes putting "$ORIGIN" into the RPATH, and probably some other subtle problems.
* BUG: fix for bug 7421, fortran did not get arch flags on the macBill Hoffman2008-07-301-1/+1
|
* COMP: fix compiler warning and follow styleBill Hoffman2008-07-221-1/+3
|