Brad King
430296dc96
ENH: Moved global inter-target dependency analysis and cycle-prevention code up from cmGlobalUnixMakefileGenerator3 to cmGlobalGenerator. Simplified cmGlobalUnixMakefileGenerator3 to use it. Later other generators may be modified to use it also.
2007-12-23 15:03:42 -05:00
Brad King
d83b4cd255
ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global.
2007-12-21 12:22:12 -05:00
Alexander Neundorf
4ed64cf73a
ENH: add GetCleanTargetName() which returns "clean" for makefiles, so it can
...
be used by the eclipse generator
Alex
2007-11-25 07:34:53 -05:00
David Cole
867de7fc67
ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded.
2007-11-16 07:01:58 -05:00
Bill Hoffman
d9d40942a0
ENH: add guess progress for first time configuring a project.
2007-11-12 22:33:00 -05:00
David Cole
8e4c7b99e1
ENH: Finish up the Framework creation code restructuring. Frameworks build and install now. More work needed on the packaging step. See Tests/Framework for example use.
2007-10-10 11:06:15 -04:00
Alexander Neundorf
d338e69c01
ENH: add support for Fortran to the KDevelop generator
...
-minor optimization for GetLanguageEnabled()
Alex
2007-08-31 13:42:21 -04:00
Alexander Neundorf
3e12a6cb91
ENH: add install files generators for targets which have PUBLIC_HEADER,
...
PRIVATE_HEADER or RESOURCE_FILES property, use the destination for the
public headers as include directory property for exported libraries
Alex
2007-08-27 16:04:57 -04:00
David Cole
ef22ad6bec
ENH: Handle FRAMEWORK and BUNDLE arguments in the INSTALL TARGETS command. Work in progress... More to come.
2007-08-22 11:32:48 -04:00
Alexander Neundorf
12f6383561
ENH: move the code for the NOTFOUND checking into its own function, so
...
Configure() gets easier to overview
-improve the error message, now it also says in which directories and for
which targets the missing variables are used
-minor speedup: the include directories don't have to be checked per target,
per directory is enough
Alex
2007-08-16 15:33:17 -04:00
Brad King
d7118006de
BUG: Target exclusion-from-all tests should always use the root local generator associated with the all target being tested.
2007-08-03 15:44:25 -04:00
Alexander Neundorf
55303d6dd2
STYLE: fix line lengths
...
Alex
2007-07-20 08:36:16 -04:00
Alexander Neundorf
95a8331edb
ENH: produce a lot more output when running with --debug-output
...
-try to fix build error on HPUX
Alex
2007-07-17 09:25:08 -04:00
Alexander Neundorf
021ceea1b0
ENH: second try for handling the linker language with integer priority values (returning a pointer to a string on the stack is no good idea)
...
Alex
2007-07-12 08:37:10 -04:00
Alexander Neundorf
16705a3e87
COMP: revert last commit for now, broke Visual Studio
...
Alex
2007-07-11 17:29:27 -04:00
Alexander Neundorf
bea1a5de77
ENH: CMAKE_<LANG>_LINKER_PREFERENCE is now an integer priority, not a
...
two-step priority (None or Prefered)
Current order: ASM 0, C 10, Fortran 20, CXX 30, Java 40
This is the same order as automake choses:
http://www.gnu.org/software/automake/manual/html_node/How-the-Linker-is-Chosen.html
This change should be backward compatible:
if there is a project using fortran and CXX, they had to set the
LINKER_LANGUAGE explicitely, otherwise cmake complained (but still generated
the project files). Explicitely setting the linker language still overrides
automatic detection.
If somebody has a custom language for cmake and the PREFERENCE starts with
"P", its changed to 100, which gives it preference over all other languages
(except the other custom languages which have also "Prefered"). "None" is
converted to 0.
Alex
2007-07-11 16:22:04 -04:00
Alexander Neundorf
43de8c8628
ENH: add OPTIONAL keyword to ENABLE_LANGUAGE, so it will be possible to do
...
something like this:
ENABLE_LANGUAGE(ASM-ATT)
IF(CMAKE_ASM-ATT_COMPILER_WORKS)
... do assembler stufff
ELSE(CMAKE_ASM-ATT_COMPILER_WORKS)
... fallback to generic C/C++
ENDIF(CMAKE_ASM-ATT_COMPILER_WORKS)
Alex
2007-06-28 09:09:26 -04:00
Alexander Neundorf
c0d000d234
ENH: add INSTALL(EXPORT ...) mode and INSTALL( TARGETS ... EXPORT <set> ) ,
...
tests still have to be added
Alex
2007-06-19 13:10:21 -04:00
Brad King
35936433e1
ENH: Merging changes from branch CMake-SourceFile2-b between tags
...
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.
2007-06-18 11:59:23 -04:00
Alexander Neundorf
6d200fa6be
STYLE: minor fixes
...
Alex
2007-06-15 16:07:16 -04:00
Alexander Neundorf
9d4f3a0686
STYLE: remove duplicate non-const accessors GetLocalGenerator(int) and
...
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
2007-06-15 10:10:24 -04:00
Alexander Neundorf
422dc631b6
ENH: split cmGlobalGenerator::SetLanguageEnabled() in two parts, where the
...
second part copies the values from the cmake variables into internal maps.
So this can now be done after the compiler-specific information has been
loaded, which can now overwrite more settings.
Alex
2007-06-11 15:31:42 -04:00
Alexander Neundorf
96bb8da184
COMP: less warnings
...
Alex
2007-06-08 12:42:29 -04:00
Alexander Neundorf
0ddc9f62e5
ENH: add cmExternalMakefileProjectGenerator, which should make it easier to
...
write generators for IDE projects, which use already existing makefiles
(current the kdevelop generator)
-first stept of the export interface, iniitial export() command
-more replacements for the FIND_XXX docs
Alex
2007-06-08 11:57:16 -04:00
Alexander Neundorf
4878c00905
ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
...
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.
Alex
2007-05-22 10:24:59 -04:00
Alexander Neundorf
df8f550029
ENH: add install/strip target for makefile generators if strip was found
...
Alex
2007-05-18 13:43:39 -04:00
Alexander Neundorf
8245f437b6
BUG: fix problem for non-C/CXX languages with Visual Studio, the
...
dependencies for the custom commands added for java were not handled
correctly. Needs more work.
Alex
2007-05-09 14:41:38 -04:00
Alexander Neundorf
7f11536704
ENH: now target names can be used in add_custom_command() and
...
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
2007-05-09 08:25:45 -04:00
Ken Martin
2a1e2456ae
ENH: some code consolidation and cleanup
2007-04-12 15:46:14 -04:00
Bill Hoffman
5891ba16ce
ENH: add project to target map, not used yet, but created
2007-03-13 14:23:08 -04:00
Brad King
fc19882e8f
ENH: Moved ConvertToRelativePath from cmGlobalGenerator to cmLocalGenerator. This is in preparation for setting up each local generator to have its own RelativePathTopSource and RelativePathTopBinary based on its ancestor directories.
2007-03-07 15:15:46 -05:00
Brad King
73a5c33f9b
BUG: Removed legacy SetupTests method that was causing RUN_TESTS to test twice.
2007-03-05 13:01:02 -05:00
Ken Martin
49085f7fed
BUG: fixes so that --build-and-test will honor timeouts
2007-01-30 11:35:17 -05:00
Bill Hoffman
b0bc59f709
ENH: commit fix for putting everything in the build on vs
2006-11-09 09:57:23 -05:00
Brad King
e4ec89d036
ENH: Added SYMBOLIC source file property to mark custom command outputs that are never actually created on disk. This is used by the Watcom WMake generator to generate the .SYMBOLIC mark on the files in the make system.
2006-10-02 10:20:53 -04:00
Brad King
239fce5caa
ENH: Do not generate install target unless some INSTALL or INSTALL_* commands have been used. This addresses bug#2827.
2006-08-31 10:47:00 -04:00
Brad King
eef327b944
ENH: Adding install/local global target for Makefile generators. This runs installation only in the current directory and not subdirectories.
2006-08-29 10:03:47 -04:00
Brad King
15ca72a862
BUG: Delay relative path configuration until as late as possible to make sure the source/binary dir are set. This is a work-around for lack of a more structured way of creating the global generator.
2006-06-19 14:57:57 -04:00
Brad King
0bbcb49f65
ENH: Added generation of link rules into script files executed by a cmake -E command in order to support longer link lines. This is needed only on platforms without response file support and that may have weak shells.
2006-06-15 16:17:11 -04:00
Brad King
87d4d0e039
BUG: cmGlobalGenerator::Build should not always use the /fast target name because dependency checking is often required. It now takes an argument specifying whether to use the /fast target name, and the argument is currently only true for try-compiles.
2006-06-01 15:51:24 -04:00
Brad King
ec2104cd31
BUG: Updated Makefile dependency scanning to provide a full local generator to the dependency scanner to do proper path conversions. This allows the rules written into the depend.make files to use the same relative path conversion as those written into the build.make files. Several previous changes added more and more information for use by the dependency scanner and it was converging to having the full local generator anyway.
2006-05-25 09:47:30 -04:00
Ken Martin
b8483cf109
STYLE: fix line length
2006-05-11 10:40:28 -04:00
Brad King
4494c29078
ENH: Enabling color makefile support using cmsysTerminal_cfprintf. Support for color is automatically detected when messages are printed. Also made color scheme more readable on both black and white backgrounds. This option can be enabled by setting CMAKE_COLOR_MAKEFILE to true in the project.
2006-04-26 21:31:39 -04:00
Andy Cedilnik
1e608c912c
ENH: Add packaging of source code (make package_source)
2006-04-17 15:26:54 -04:00
Ken Martin
1bca540e52
ENH: fix compile issue on HP hopefully
2006-04-12 11:36:55 -04:00
Ken Martin
535acdc7a0
ENH: some performance optimizations
2006-04-11 12:51:20 -04:00
Brad King
d5719f22c1
ENH: Added support for multiple outputs generated by a single custom command. For Visual Studio generators the native tool provides support. For Xcode and Makefile generators a simple trick is used. The first output is considered primary and has the build rule attached. Other outputs simply depend on the first output with no build rule. During cmake_check_build_system CMake detects when a secondary output is missing and removes the primary output to make sure all outputs are regenerated. This approach always builds the custom command at the right time and only once even during parallel builds.
2006-04-11 11:06:19 -04:00
Andy Cedilnik
bad1215a85
ENH: Add support for preinstall for cmake generated projects when packaging them
2006-04-10 13:44:39 -04:00
Brad King
2301a025ea
ENH: Added global TargetManifest computation between Configure and Generate steps. This allows generators to know what other targets will exist on disk when the build completes.
2006-04-04 11:48:19 -04:00
Brad King
eb31755eb2
ENH: Implemented VT100 terminal escape sequences. If CMAKE_COLOR_MAKEFILE is set then messages produced by makefiles will be in color if the native tool supports it. This addresses bug#3060.
2006-03-30 15:39:03 -05:00
Brad King
08b14163ee
ENH: Added named component installation implementation. Installation behavior should be unchanged unless -DCOMPONENT=<name> is specified when cmake_install.cmake is invoked.
2006-03-30 13:33:48 -05:00
Ken Martin
4102949bf9
STYLE: minor comment cleanups
2006-03-16 10:53:14 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Bill Hoffman
89e5fc63fe
STYLE: fix line lengths
2006-03-10 13:54:57 -05:00
Brad King
93c95f1cc5
BUG: Fixed installation of MacOSX Bundle executables and the corresponding install_name remapping support. Extended the BundleTest test to check that this all works. Part of these fixes required changing the signature of AppendDirectoryForConfig in all generators. It now accepts prefix and suffix strings to deal with whether leading or trailing slashes should be included with the configuration subdirectory.
2006-03-03 12:58:48 -05:00
Andy Cedilnik
07260a6f27
ENH: Cleanup global targets even more and potentially fix Xcode
2006-03-01 08:28:39 -05:00
Andy Cedilnik
c4156b4531
COMP: Even more global target fixes
2006-02-24 17:35:35 -05:00
Andy Cedilnik
0ba40b59c7
COMP: Handle preinstall properly on IDEs
2006-02-24 09:43:23 -05:00
Andy Cedilnik
549b77034e
COMP: Fixes for visual studio
2006-02-23 13:37:35 -05:00
Andy Cedilnik
12dc64c7f5
ENH: Add a notion of a global target
2006-02-23 10:07:24 -05:00
Brad King
afa8367885
BUG: Fixed cmTarget::GetFullPath to not append the configuration name when only one configuration is built. It now asks the generator what subdirectory if any to use for a given configuration name.
2006-02-03 11:36:11 -05:00
Brad King
22c62c9e65
BUG: Sweeping changes to cleanup computation of target names. This should
...
fix many bugs related to target names being computed inconsistently.
- Centralized computation of a target's file name to a method in
cmTarget. Now that global knowledge is always available the
*_CMAKE_PATH cache variables are no longer needed.
- Centralized computation of link library command lines and link
directory search order.
- Moved computation of link directories needed to link CMake targets
to be after evaluation of linking dependencies.
This also removed alot of duplicate code in which each version had its
own bugs.
This commit is surrounded by the tags
CMake-TargetNameCentralization1-pre
and
CMake-TargetNameCentralization1-post
so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Andy Cedilnik
782bef7374
ENH: Add a way for the generated command to include extra flags. This is useful for CTest (or try compile) to add -j2
2005-12-01 11:41:00 -05:00
Ken Martin
2a45d5cd68
ENH: added DIRECTORY option to GET_DIRECTORY_PROPERTIES
2005-09-13 10:39:42 -04:00
Ken Martin
26c53fe14c
ENH: modified GET_TARGET_PROPERTIES to work with all targets
2005-06-20 14:00:48 -04:00
Brad King
7ed018ec09
BUG: Changing to a new test for whether to do relative path conversion. Now only paths inside the source or binary trees are converted.
2005-05-16 14:17:30 -04:00
Ken Martin
8c65179339
ENH: warning fixes and some first steps in cleaning up the convert code
2005-05-13 09:54:30 -04:00
Ken Martin
25f75d9075
ENH: added new methods to convert to HomeRelative paths
2005-05-11 10:19:58 -04:00
Andy Cedilnik
f812d053f6
ENH: Make FindMakeProgram public
2005-05-02 15:50:42 -04:00
Andy Cedilnik
61d0a75d11
ENH: Add option to ignore errors. Only works on make
2005-04-29 11:49:18 -04:00
Andy Cedilnik
7c5745ae95
ENH: Start working on command that will abstract generating of build command
2005-04-28 17:33:51 -04:00
Andy Cedilnik
86cebea79a
ENH: More ctest changes and move SetupTest to superclass
2005-04-01 15:48:46 -05:00
Ken Martin
345cf04012
ENH: big change that includes immediate subdir support, removing the notion of inherited commands, makefiles no longer read in the parent makefiles but instead inherit thier parent makefiles current settings
2005-03-18 10:41:41 -05:00
Ken Martin
3ff6722934
ENH: cleanup by removing all the olf local generate junk that i not longer needed
2005-03-10 13:39:38 -05:00
Bill Hoffman
a9a0c91630
ENH: fix for finding the correct target in the current project
2005-03-03 22:35:06 -05:00
Brad King
cb48e0c161
ENH: Merged implementations of ConvertToRelative*Path methods. The main ConvertToRelativePath method is now in cmGlobalGenerator. It converts paths only if they are at least inside the deepest common directory between the top-level source and build trees. Each cmLocalGenerator instance calls this global method with its own output directory as the "local" argument from which paths are relative. Added separate ConvertToOptionallyRelative path that pays attention to the CMAKE_USE_RELATIVE_PATHS option.
2005-02-24 16:04:54 -05:00
Ken Martin
4d30cb309c
ENH: ctest now uses CMake global generator to do the build part of build-and-test
2005-02-22 09:12:10 -05:00
Bill Hoffman
fd0f29e6f4
ENH: depends work between targets
2005-02-03 17:42:55 -05:00
Bill Hoffman
13865fc4fa
ENH: move project map to global generator base
2005-01-21 12:26:32 -05:00
Bill Hoffman
2615e6f0a9
BUG: fix for bug 1396, object files could not be used as sources any more
2004-12-06 12:38:04 -05:00
Bill Hoffman
692ba48c4e
ENH: major changes to support addition of languages from cmake modules directory.
2004-09-22 14:42:05 -04:00
Bill Hoffman
c2ef51e181
ENH: define language extensions in cmake files and not hard coded, also fix trycompile problem
2004-09-03 12:03:41 -04:00
Bill Hoffman
731369ef9c
ENH: try to initialize all languages at the same time
2004-08-27 08:41:07 -04:00
Bill Hoffman
66a08c10e5
ENH: more uniform approach to enable language, one step closer to being able to enable a language without modifing cmake source code
2004-08-26 14:55:55 -04:00
Brad King
9b1771aef4
BUG: CMAKE_TRY_COMPILE_CONFIGURATION should be obtained from the cmMakefile instance for the listfile containing the TRY_COMPILE call, not the top level listfile.
2004-08-04 16:33:10 -04:00
Bill Hoffman
ddb815c125
ENH: add new subdirectory exclude from top option
2004-03-09 16:28:44 -05:00
Bill Hoffman
a413160fec
ENH: add the unix makefile generator as an option from the windows GUI, this builds with mingw, cygwin, and combinations of make cl, bcc32
2003-08-21 16:22:23 -04:00
Andy Cedilnik
0b150f69c2
ENH: Use the new RunCommand
2003-08-03 22:34:37 -04:00
Brad King
e5ed57ec18
ENH: Registered global generators are now kept in a table in the cmake instance. Added support for documentation with a Generators section.
2003-07-07 21:52:10 -04:00
Bill Hoffman
c4fa5d1fdf
ENH: add a new command that allows exports of library dependencies from a project to a file
2003-01-20 16:59:02 -05:00
Ken Martin
05955d6403
fix bug in env settings
2003-01-09 12:18:22 -05:00
Bill Hoffman
384523a315
restore the environment for cxx and cc in global generator
2003-01-09 11:28:29 -05:00
Bill Hoffman
96189f79d5
ENH: unify EnableLanguage across all generators
2002-12-05 13:44:11 -05:00
Bill Hoffman
f5d95fb078
Complete rework of makefile generators expect trouble
2002-11-08 15:46:08 -05:00
Brad King
1f6a3c67b1
ENH: Added reference to Copyright.txt. Removed old reference to ITK copyright. Changed program name to CMake instead of Insight in source file header. Also removed tabs.
2002-10-23 18:03:27 -04:00
Ken Martin
c751d2ebff
added progress
2002-09-26 15:14:20 -04:00
Andy Cedilnik
157e2b4ac3
Add option of TRY_COMPILE to store the output of compilation so that if the output fails you can display it or store it in the file
2002-09-20 13:15:56 -04:00
Ken Martin
6132184cc3
better trycompile and enable langiages
2002-09-13 10:42:50 -04:00
Ken Martin
38e412626b
modified TryCompile
2002-09-10 16:49:40 -04:00
Ken Martin
5b0611d709
updates
2002-09-04 15:24:49 -04:00
Ken Martin
3ffc4b2ee1
in progress checkin
2002-08-30 16:00:35 -04:00