Brad King
28ea034737
ENH: Support exporting/importing of Framework targets.
...
- Imported frameworks have the FRAMEWORK property set
- Added cmTarget::IsFrameworkOnApple method to simplify checks
- Also remove separate IMPORTED_ENABLE_EXPORTS property and just use ENABLE_EXPORTS since, like FRAMEWORK, it just represents the target type.
- Document FRAMEWORK keyword in INSTALL command.
- Updated IMPORTED_LOCATION property documentation for Frameworks
2008-01-28 13:05:58 -05:00
Brad King
5594ad4885
ENH: Updated exporting and importing of targets to support libraries and 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
2008-01-28 08:38:36 -05:00
Brad King
96fd5909d9
ENH: Implement linking with paths to library files instead of -L and -l 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.
2008-01-22 09:13:04 -05:00
David Cole
546c839d04
ENH: Add a dependency from the PACKAGE target to the ALL target so that "make package" will first (essentially) do a "make all"... A similar chunk of code already existed for the make install target. This change makes it easy to build an installer package as part of a dashboard run simply by setting CTEST_BUILD_TARGET to "package".
2007-12-31 17:29:20 -05:00
Brad King
70f73adccb
COMP: Fix build on VS6.
2007-12-24 11:15:45 -05:00
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
Brad King
eee575283d
STYLE: Fixed line-too-long. COMP: Fixed warnings about lossy conversions.
2007-11-20 11:10:11 -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
a2ff3928de
ENH: add f stuff to avoid warnings
2007-11-12 22:36:26 -05:00
Bill Hoffman
d9d40942a0
ENH: add guess progress for first time configuring a project.
2007-11-12 22:33:00 -05:00
Ken Martin
6cdf032505
ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now
2007-10-22 12:49:09 -04: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
b7527db958
STYLE: the temporary variable is not necessary
...
Alex
2007-08-31 13:45:02 -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
e8ced6a0e2
COMP: include windows.h first, as it is done in the other source files
...
Alex
2007-08-17 10:14:32 -04:00
Alexander Neundorf
950c1359fa
COMP: quick windows name mangling fix (otherwise the compiler complains about cmMakefile::GetCurrentDirectoryA(), which doesn't exist)
...
Alex
2007-08-16 16:50:27 -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
Alexander Neundorf
1059a8891d
STYLE: I think the comment (and the book) were wrong about the naming of
...
this file
Alex
2007-08-07 15:09:21 -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
33e9becd6f
COMP: fix warning about unused parameter
...
Alex
2007-06-28 15:28:00 -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
b1aac1fb0d
ENH: use CMAKE_SYSTEM instead of CMAKE_SYSTEM_NAME, since
...
CMAKE_SYSTEM_NAME may already have been set when crosscompiling
Alex
2007-06-26 19:54:00 -04:00
Alexander Neundorf
b459ac2a1e
COMP: fix broken tests for now
...
Alex
2007-06-26 17:14:13 -04:00
Alexander Neundorf
5fb7dab541
ENH: check for CMAKE_HOST_SYSTEM_NAME to decide whether to load
...
CMakeDetermineSystem.cmake, since CMAKE_SYSTEM_NAME might already be preset
when using cmake for cross compiling
use type STRING instead of FILEPATH since otherwise a strange filename was
generated
Alex
2007-06-26 13:00:42 -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
3ca8c8d946
COMP: remove warning about unused variable
...
Alex
2007-06-12 08:23:24 -04:00
Alexander Neundorf
6c02ec1a40
STYLE: add a comment about SetLanguageEnabled()
...
-add a Generic.cmake for target platforms without operating system
Alex
2007-06-11 15:47:35 -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
1b68e41b08
STYLE: determineLanguageCalled removed, now the conditional code is directly
...
called in the only place where it could be set to true
Alex
2007-06-11 14:28:31 -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
ae035f7c90
BUG: fix #5137 , now with the modified CMakeDetermineSystem.cmake the
...
CMAKE_HOST_SYSTEM_xxx variables have to be preset, not the CMAKE_SYSTEM_xxx
ones
Alex
2007-06-07 09:37:54 -04:00
Bill Hoffman
8cba2c55f9
BUG: fix crash, bug 5121
2007-06-01 09:18:08 -04:00
Brad King
775f012fae
BUG: Need to create global targets before AddHelperCommands is called. We should investigate creating global targets at the beginning of the configure step even if their commands are not populated or if they will not actually be generated later.
2007-05-25 15:51:33 -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
Bill Hoffman
32aecc84a1
ENH: fix seg fault in ccmake when hitting configure twice
2007-04-24 12:30:25 -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
Ken Martin
b99129d2d8
ENH: some code cleanup
2007-03-12 10:26:59 -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
Bill Hoffman
d999d0240d
ENH: get rid of some extra erase calls
2007-02-21 14:07:33 -05:00
Ken Martin
49085f7fed
BUG: fixes so that --build-and-test will honor timeouts
2007-01-30 11:35:17 -05:00
Ken Martin
27379d7b08
ENH: make properties a bit more formal with documentation and chaining
2006-12-07 09:45:32 -05:00
Bill Hoffman
ccb77b65c6
ENH: unify version stuff, get rid of it out of cmake and cmMakefile and only use cmVersion
2006-11-29 15:59:16 -05:00
Bill Hoffman
dd8d1e8c8d
ENH: remove warning
2006-11-10 09:32:27 -05:00
Bill Hoffman
3b7005c554
BUG: fix for broken borland compiler
2006-11-10 08:11:37 -05:00
Bill Hoffman
b0bc59f709
ENH: commit fix for putting everything in the build on vs
2006-11-09 09:57:23 -05:00
Andy Cedilnik
897a2a9029
ENH: Cleanup of install component list. There was already the list in the global generator. Use that one
2006-10-31 14:28:48 -05:00
Andy Cedilnik
7ded253013
ENH: Add support for displaying the list of components
2006-10-30 15:59:54 -05:00
Andy Cedilnik
d5f31292b2
BUG: Use variable instead of retrieving again. Fixes bug: Bug #3476
2006-10-12 15:30:01 -04:00
Bill Hoffman
4f304e7a07
BUG: fix for bug #3517 seg fault with enable language before project command
2006-10-04 11:11:21 -04:00
Bill Hoffman
18e302a377
ENH: fix dashbaord error do not exclude root project from itself.
2006-10-03 17:53:07 -04:00
Bill Hoffman
f851821cc7
BUG: fix for bug#3714 execlude_from_all not working on vs
2006-10-03 15:12:25 -04: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
7d2de52c1a
ENH: Cleaned up signature of cmMakefile::AddUtilityCommand. It is not valid to have an output from a utility rule and no calls to the method asked for an output anyway. The argument has been removed.
2006-09-28 13:55:26 -04:00
Brad King
57eb30087f
STYLE: Fixed line-too-long warning.
2006-09-01 09:51:28 -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
ed6791c898
BUG: Make sure targets of type GLOBAL_TARGET have a makefile set.
2006-08-25 22:56:36 -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
Ken Martin
8e9a6beccc
ENH: centralized locaiton of CMakeFiles setting
2006-06-14 12:28:32 -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
Brad King
e838bb31e3
BUG: Make sure RUN_TESTS target passes the desired configuration to ctest.
2006-05-13 12:28:06 -04:00
Ken Martin
01c25dd378
STYLE: fix line length
2006-05-12 10:46:50 -04:00
Ken Martin
b8483cf109
STYLE: fix line length
2006-05-11 10:40:28 -04:00
Ken Martin
3023eb7ccb
ENH: Makefile performance improvements
2006-05-02 09:56:42 -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
Bill Hoffman
0952ff6f4b
ENH: don't add package target if no package file is around
2006-04-20 15:49:37 -04:00
Andy Cedilnik
71b370c79c
BUG: Verify the global target name exists before using it. Fixes VS and Xcode
2006-04-17 16:06:31 -04:00
Andy Cedilnik
1e608c912c
ENH: Add packaging of source code (make package_source)
2006-04-17 15:26:54 -04:00
Ken Martin
17ebcb1bcd
COMP: fix warning
2006-04-12 11:56:27 -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
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
Bill Hoffman
6e217924ce
ENH: use correct addcache call to fix build tools
2006-04-03 22:05:58 -04:00
Bill Hoffman
ae10b3578d
ENH: add a wrapper for xcodebuild to get around bug and verbose output
2006-03-31 13:17:23 -05: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
Bill Hoffman
5a2668b326
ENH: add support for win64 for visual studio 2005 ide and nmake, also fix warnings produced by building for win64
2006-03-30 13:49:56 -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
7b3be313ee
ENH: modified the relative path code to not do relative paths between bin and source
2006-03-30 09:17:02 -05:00
Brad King
94cc5898e7
BUG: When generating the install rules for CMake itself the per-configuration subdirectory must be used to specify the executable location.
2006-03-16 18:24:26 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Brad King
c21a61c91a
BUG: Check for whether to add -C to package rule should check for a . in the first character not the second.
2006-03-07 14:38:52 -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
Bill Hoffman
2f78d874a7
ENH: fix for bug 2921, move _OVERRIDE variable to a better position to allow changing _INIT variables
2006-03-02 07:52:52 -05:00