summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* BUG: Pass shared library export symbol in DEFINESBrad King2009-02-271-2/+1
| | | | | | | The <target>_EXPORTS macro defined for object files when built in a shared library <target> should be put in the <DEFINES> make rule replacement and not <FLAGS>. Also, it should honor the platform variable CMAKE_<LANG>_DEFINE_FLAG. See issue #8107.
* ENH: Define RULE_LAUNCH_* propertiesBrad King2009-02-101-0/+2
| | | | | | | 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: Give target in which custom commands buildBrad King2009-02-101-1/+1
| | | | | | This gives the cmTarget instance for which custom command rules are being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands. It will be useful in the future.
* BUG: Fix preprocess and assembly rule expansionBrad King2009-02-021-12/+12
| | | | | | The recent change to avoid expanding rule variables in informational and 'cd' commands broke the logical order in generation of preprocess and assembly rules. This corrects the order.
* BUG: Do not expand rule variables in info rulesBrad King2009-02-021-33/+36
| | | | | | | Previously the makefile generator would expand rule variables even on its progress and echo commands for object compilation rules (but not for link rules). This fixes the implementation to only expand rule variables on user-specified rules.
* ENH: Refactor custom command rule hashingBrad King2009-02-021-6/+5
| | | | | | | | | | This simplifies computation of custom command rule hashes to hash content exactly chosen as the custom commands are generated. Unfortunately this will change the hashes of existing build trees from earlier CMake versions, but this is not a big deal. The change is necessary so that in the future we can make optional adjustments to custom command lines at generate time without changing the hashes every time the option is changed.
* BUG: Fix color check for dependency scanningBrad King2008-10-151-2/+5
| | | | | Generation of color rules for dependency scanning messages did not account for disabling color at generation time. See issue #7814.
* ENH: Support object lists longer than 128K on MSVCBrad King2008-10-151-8/+29
| | | | | | We use response files to list object files for the MSVC linker. The linker complains if any response file is greater than 128K, so we split the object file lists into multiple response files.
* ENH: Factor out listing of objects on command lineBrad King2008-10-151-0/+38
| | | | | | Previously generation of object file lists for linker and cleaning command lines was duplicated for library and executable target generators. This combines the implementations.
* ENH: Fix optional use of relative paths.Brad King2008-10-091-5/+5
| | | | | | | 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-1/+3
| | | | | This removes an unnecessary use of ConvertToOutputForExisting which is needed only on Windows to consider short-pathing.
* ENH: Use new link info during dependency scanningBrad King2008-09-151-7/+7
| | | | This removes another use of the old-style link line computation.
* BUG: Include less content as input to "rule hash" computation.Brad King2008-06-031-1/+7
| | | | | | | - The rule hash should use only commands specified by the user. - No make output (echo and progress) rules should be included. - No outputs or dependencies need be included. The native build tool will take care of them.
* ENH: Introduce "rule hashes" to help rebuild files when rules change.Brad King2008-06-021-7/+6
| | | | | | | | | | | | | | - In CMake 2.4 custom commands would not rebuild when rules changed. - In CMake 2.6.0 custom commands have a dependency on build.make which causes them to rebuild when changed, but also when any source is added or removed. This is too often. - We cannot have a per-rule file because Windows filesystems do not deal well with lots of small files. - Instead we add a persistent CMakeFiles/CMakeRuleHashes.txt file at the top of the build tree that is updated during each CMake Generate step. It records a hash of the build rule for each file to be built. When the hash changes the file is removed so that it will be rebuilt.
* BUG: Fix makefile generator to have link rules depend on all full path ↵Brad King2008-05-211-38/+7
| | | | libraries that appear on the link line. This allows projects to relink when imported targets have changed.
* ENH: Add SKIP_RULE_DEPENDS option for add_custom_command()Brad King2008-05-141-2/+5
| | | | | | - Allows make rules to be created with no dependencies. - Such rules will not re-run even if the commands themselves change. - Useful to create rules that run only if the output is missing.
* BUG: Fix generation of some paths into .cmake files in the build tree to ↵Brad King2008-05-101-2/+4
| | | | escape strings for the CMake language. This fix allows users to put double quotes in the SOVERSION of a shared library.
* BUG: fix for bug 6834 RC should not get all COMPILE_FLAGS from a target and ↵Bill Hoffman2008-04-221-2/+27
| | | | should work the same way as it does in the vs ide
* BUG: When MACOSX_PACKAGE_LOCATION specifies Headers/foo we must still create ↵Brad King2008-04-141-2/+7
| | | | the Headers symlink.
* BUG: make sure OBJECT_DIR is in the path of the SHELLBill Hoffman2008-04-111-0/+3
|
* BUG: Correct Mac OS X framework behaviorBrad King2008-04-081-5/+5
| | | | | | | | | | | | - Place the built library in foo.framework/Versions/A/foo - Do not create unused content symlinks (like PrivateHeaders) - Do not use VERSION/SOVERSION properties for frameworks - Make cmTarget::GetDirectory return by value - Remove the foo.framework part from cmTarget::GetDirectory - Correct install_name construction and conversion on install - Fix MACOSX_PACKAGE_LOCATION under Xcode to use the Versions/<version> directory for frameworks - Update the Framework test to try these things
* BUG: response file must be a copy if different or you get relinks every time ↵Bill Hoffman2008-04-031-0/+1
| | | | you run cmake
* ENH: Handle large object file lists on some platformsBrad King2008-02-271-0/+24
| | | | | | | - Use a response file when enabled by CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_OBJECTS - Enable for C and CXX with cl (MSVC) - Enable for Fortran with ifort (Intel Fortran)
* ENH: Simplify make build rule generation by removing use of OBJECTS_QUOTED ↵Brad King2008-02-241-14/+4
| | | | and TARGET_QUOTED rule variables and updating the generation of OBJECTS to always use the newer cmLocalGenerator::Convert method.
* BUG: Link scripts should be generated with copy-if-different and included as ↵Brad King2008-02-201-1/+4
| | | | a dependency of the link rule.
* ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE propertiesBrad King2008-02-181-32/+26
|
* ENH: Cleanup building of OS X bundle contentBrad King2008-02-151-16/+68
| | | | | | | | | | - Fixes repeated rebuild of bundles by Makefile generators - Add special rules to copy sources to their MACOSX_PACKAGE_LOCATION bundle directory - Remove MacOSX_Content language hack - Remove EXTRA_CONTENT property - Remove MACOSX_CONTENT - Remove corresponding special cases in object names
* ENH: Added build rule variables CMAKE_<LANG>_ARCHIVE_CREATE, ↵Brad King2008-01-301-30/+77
| | | | CMAKE_<LANG>_ARCHIVE_APPEND, and CMAKE_<LANG>_ARCHIVE_FINISH to support creation of static archive libraries out of a large number of objects. See bug #6284.
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-2/+2
| | | | | | | | | | | | | | | | | | 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
* ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into ↵Brad King2008-01-181-0/+4
| | | | a COMPILE_DEFINITIONS directory property.
* ENH: Enable CMAKE_<lang>_DEFINE_FLAG for COMPILE_DEFINITIONS property ↵Brad King2008-01-171-4/+4
| | | | implementation.
* ENH: Renamed <CONFIG>_COMPILE_DEFINITIONS to COMPILE_DEFINITIONS_<CONFIG> ↵Brad King2008-01-161-4/+4
| | | | for better documentation clarity.
* ENH: Create COMPILE_DEFINITIONS property for targets and source files. ↵Brad King2008-01-141-2/+51
| | | | Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
* BUG: Restore old interface of "make foo.o" and "make foo.i" even though ↵Brad King2008-01-071-5/+9
| | | | 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: Implemented Fortran module output directory and search path flags.Brad King2007-12-301-0/+95
|
* ENH: Simplified and moved link script implementation up from ↵Brad King2007-12-281-0/+32
| | | | cmMakefileLibraryTargetGenerator to cmMakefileTargetGenerator and use for cmMakefileExecutableTargetGenerator too. This addresses bug #6192.
* ENH: Store in DependInfo.cmake files a list of the corresponding files for ↵Brad King2007-12-281-0/+31
| | | | the targets to which a target links. This is useful for locating Fortran modules provided by linked targets. See issue #5809.
* ENH: Add a depends check step to custom targets. Add support for the ↵Brad King2007-12-211-1/+27
| | | | IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global.
* BUG: The dependency scanning target should be symbolic.Brad King2007-12-211-1/+1
|
* ENH: Enabled color printing of "Scanning dependencies of target ..." message.Brad King2007-12-191-2/+3
|
* ENH: Moved dependency integrity check from CheckBuildSystem over to a ↵Brad King2007-12-191-25/+1
| | | | 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.
* ENH: fix for bug 6102, allow users to change the compilerBill Hoffman2007-12-131-0/+12
|
* STYLE: Fixed line-too-long.Brad King2007-11-231-1/+2
|
* ENH: Change compiler working directory to the local build tree location when ↵Brad King2007-11-211-17/+41
| | | | compiling object files. This simplifies the compiler command line and the usage of the <objBase>.s and <objBase>.i targets. It also helps fortran compilers put their modules in the correct place.
* ENH: Finish up the Framework creation code restructuring. Frameworks build ↵David Cole2007-10-101-1/+1
| | | | and install now. More work needed on the packaging step. See Tests/Framework for example use.
* ENH: Added IMPLICIT_DEPENDS option to ADD_CUSTOM_COMMAND. It currently ↵Brad King2007-09-171-0/+15
| | | | works only for Makefile generators. It allows a custom command to have implicit dependencies in the form of C or CXX sources.
* ENH: Added OBJECT_OUTPUTS source file property. Updated PrecompiledHeader ↵Brad King2007-09-131-0/+19
| | | | test to use it (making the test simpler).
* ENH: Replaced dependency integrity map with an explicit map from object file ↵Brad King2007-08-071-1/+11
| | | | to source file for each language in each target. This simplifies creation of implicit dependency scanning rules and allows more than one object file in a target to start dependency scanning with the same source file.
* ENH: Added cmTarget::GetLanguages method to centralize computation of the ↵Brad King2007-08-021-7/+5
| | | | list of languages compiled in a target.
* ENH: Simplify makefile target generator listing of object files to clean.Brad King2007-08-021-0/+1
|