summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* ENH: Allow users to specify a custom Info.plist templateBrad King2008-05-171-69/+39
| | | | | | - Create MACOSX_BUNDLE_INFO_PLIST target property to specify template. - Look for MacOSXBundleInfo.plist.in in CMAKE_MODULE_PATH by default. - See issue #6983.
* ENH: add support for Intel Fortran Visual studio IDEBill Hoffman2008-04-301-1/+1
|
* BUG: Do not escape shell operators when generating command lines.Brad King2008-04-291-0/+23
| | | | | - See bug#6868. - Update CustomCommand test to check.
* BUG: move this back out of the if statemtnBill Hoffman2008-04-291-1/+1
|
* ENH: allow users to set sysrootBill Hoffman2008-04-281-1/+11
|
* ENH: fix for the correct path to cmakeBill Hoffman2008-03-281-1/+1
|
* ENH: change CMP_ to CMPKen Martin2008-03-131-1/+1
|
* ENH: Improve handling of old-style compatibility.Brad King2008-03-071-9/+23
| | | | | | | | | | | | | | | | | | | - Remove CMP_0001 (no slash in target name) and restore old CMAKE_BACKWARDS_COMPATIBILITY check for it - Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY with cmLocalGenerator::NeedBackwardsCompatibility calls - Create new CMP_0001 to determine whether or not CMAKE_BACKWARDS_COMPATIBILITY is used. (old = use, new = ignore) - Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when CMP_0001 is set to OLD or WARN - Update documentation of cmake_policy and cmake_minimum_required to indicate their relationship and the 2.4 version boundary - When no cmake policy version is set in top level makefile implicitly call cmake_policy(VERSION 2.4) which restores CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility - Fix tests MakeClean and Preprocess to call cmake_policy(VERSION 2.6) because they depend on new policies
* ENH: Cleanup builtin chrpath supportBrad King2008-03-021-11/+0
| | | | | | | | | | | | - Move computation of extended build-tree rpath to cmComputeLinkInformation - Only enable the extended build-tree rpath if the target will be installed - Generalize the interface of file(CHRPATH) - When changing the rpath on installation only replace the part generated by CMake because the native tools (ex SunCC on Linux) might have added their own part to the rpath
* BUG: Do not place $(CMAKE_COMMAND) in link scripts.Brad King2008-03-011-0/+6
|
* ENH: Allow multiple OS X applications bundles to be created in a single ↵Brad King2008-02-141-0/+83
| | | | 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: Pass dependent library search path to linker on some platforms.Brad King2008-02-011-0/+9
| | | | | | | | | | | | | | | | - Move runtime path ordering out of cmComputeLinkInformation into its own class cmOrderRuntimeDirectories. - Create an instance of cmOrderRuntimeDirectories for runtime path ordering and another instance for dependent library path ordering. - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean. - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean. - Create variables to specify -rpath-link flags: CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG - Enable -rpath-link flag on Linux and QNX. - Documentation and error message updates
* ENH: Enable use of link script whenever incremental archive construction ↵Brad King2008-01-301-1/+2
| | | | 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-174/+46
| | | | generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-6/+6
| | | | | | | | | | | | | | | | | | configurations. - Created cmExportFileGenerator hierarchy to implement export file generation - Installed exports use per-config import files loaded by a central one. - Include soname of shared libraries in import information - Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands - Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators - Import files compute the installation prefix relative to their location when loaded - Add mapping of importer configurations to importee configurations - Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries - Scope IMPORTED targets within directories to isolate them - Place all properties created by import files in the IMPORTED namespace - Document INSTALL(EXPORT) and EXPORT() commands. - Document IMPORTED signature of add_executable and add_library - Enable finding of imported targets in cmComputeLinkDepends
* BUG: Fix generation of Watcom link lines.Brad King2008-01-231-4/+3
| | | | | - Work-around bug in Watcom command line parsing for spaces in paths. - Add 'library' option before libraries specified by file path.
* BUG: Work-around bug in MSVC 6 command line parsing.Brad King2008-01-231-1/+34
|
* ENH: Implement linking with paths to library files instead of -L and -l ↵Brad King2008-01-221-366/+112
| | | | | | | | | | | | | | | | | 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: improve backwards compatibilityKen Martin2008-01-191-5/+1
|
* BUG: fix bugs 5539 (progress going beyond 100% when new files are added) and ↵Ken Martin2008-01-181-11/+8
| | | | 5889 (tests are not found in some cases when using add_subdirectory to .. etc)
* ENH: Enable use of COMPILE_DEFINITIONS property for Fortran sources.Brad King2008-01-181-0/+32
|
* ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into ↵Brad King2008-01-181-35/+0
| | | | a COMPILE_DEFINITIONS directory property.
* ENH: use CTestTestfile.txtKen Martin2008-01-171-12/+3
|