summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Remove trailing whitespace from cmLocalGeneratorBrad King2011-11-291-73/+73
|
* Fix configuration-dependent flag lookup in cmLocalGenerator::GetTargetFlagsPeter Collingbourne2011-10-021-5/+22
| | | | | | | Specifically, perform configuration-dependent lookup of STATIC_LIBRARY_FLAGS for static libraries, and use the correct prefix for configuration-dependent lookup of LINK_FLAGS (i.e. "LINK_FLAGS_", as opposed to the value of the LINK_FLAGS property).
* Introduce a cmLocalGenerator::ConvertToIncludeReference functionPeter Collingbourne2011-10-021-1/+8
| | | | | This provides a mechanism for the local generator to override how header search paths are generated.
* Refactor TargetTypeNames.Nicolas Despres2011-10-021-1/+1
| | | | | | Make it a static method instead of an array. It is safer for the type checking and if we add a new target type we will be warned to add a case to the switch.
* Fortran: Add support for free- and fixed-form flagsBrad King2011-08-311-0/+25
| | | | | | | Define a "Fortran_FORMAT" target and source file property. Initialize the target property from a "CMAKE_Fortran_FORMAT" variable. Interpret values "FIXED" and "FREE" to indicate the source file format. Append corresponding flags to the compiler command line.
* Merge topic 'custom-command-slashes'Brad King2011-03-311-1/+0
|\ | | | | | | | | 1286050 Normalize slashes of add_custom_(command|target) DEPENDS (#11973)
| * Normalize slashes of add_custom_(command|target) DEPENDS (#11973)Brad King2011-03-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All commands accepting file paths should normalize the slashes so that the string-represented names can be compared reliably. The commands add_library and add_executable have done this for years. We taught add_custom_command to normalize its OUTPUT names in commit a75a0a14 (Normalize add_custom_command OUTPUT names, 2010-12-15). We handled a special case of the DEPENDS option in commit 7befc007 (Handle trailing slashes on add_custom_command DEPENDS, 2011-01-26). Teach both add_custom_command and add_custom_target to normalize slashes of DEPENDS files up front. This approach subsumes the above-mentioned special case so remove the one line added for it but keep its test. Extend the CustomCommand test to check that slash count mismatches between custom command OUTPUT and DEPENDS can still be linked correctly.
* | Merge topic 'include-flags-response-file'Brad King2011-03-221-10/+21
|\ \ | |/ |/| | | | | | | | | | | 86cb17b Pass include directories with response files to GNU on Windows 9a0b9bc Optionally pass include directories with response files 6e8a67f Generate target-wide flags before individual build rules d099546 Factor old-style -D flags out from -I flag generation
| * Optionally pass include directories with response filesBrad King2011-03-171-8/+20
| | | | | | | | | | | | Create platform option CMAKE_<lang>_USE_RESPONSE_FILE_FOR_INCLUDES to enable use of response files for passing the list of include directories to compiler command lines.
| * Factor old-style -D flags out from -I flag generationBrad King2011-03-151-2/+1
| | | | | | | | | | | | Move the GetDefineFlags call from cmLocalGenerator::GetIncludeFlags to all call sites so that the method exclusively constructs a string of include search path flags.
* | Handle trailing slashes on add_custom_command DEPENDSBrad King2011-01-261-0/+1
|/
* Remove cmLocalGenerator::GetRealLocationBrad King2010-12-081-18/+0
| | | | | | The cmCustomCommandGenerator::GetCommand method completely replaces the purpose of this method. Re-implement GetRealLocation inline at the only remaining call site and remove it.
* Skip file-level dependencies on custom targets (#11332)Brad King2010-12-081-4/+3
| | | | | | | A custom command may name a target created by add_custom_target in its DEPENDS field. Treat this case as a target-level dependency only since a custom target provides no standard file on which to add a file-level dependency.
* Improve signature of cmLocalGenerator::GetRealDependencyBrad King2010-12-081-12/+17
| | | | Allow file-level custom command dependencies to be skipped.
* No CMAKE_CONFIGURATION_TYPES in single-config generators (#10202)Brad King2010-09-081-33/+5
| | | | | | Factor out reading of CMAKE_CONFIGURATION_TYPES and CMAKE_BUILD_TYPE into cmMakefile::GetConfigurations. Read the former only in multi-config generators.
* Remove cmSystemTools::EscapeSpaces methodBrad King2010-08-181-6/+18
| | | | | | The last remaining call to this method exists only for compatibility. Remove the method and put its implementation inline in place of the last call.
* Fix spelling errors reported by Lintian.Kai Wasserbäch2010-07-131-1/+1
| | | | | During a Lintian run on the binary packages of CMake in Debian I was notified of many spelling mistakes.
* Merge branch 'mingw-response-files'Brad King2010-06-151-0/+4
|\
| * Use forward slashes for objects in response filesBrad King2010-03-111-0/+4
| | | | | | | | | | | | | | | | | | | | Response files are parsed by tools, not by shells. We teach cmLocalGenerator::Convert() a new "RESPONSE" output format and use it for objects listed in response files. It does not do special slash or MSYS root translation like the "SHELL" format does. This is necessary for GNU tools on Windows to understand response file content. See issue #10401.
* | -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.