Brad King
67f8c0fd10
ENH: Allow multiple OS X applications bundles to be created in a single 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).
2008-02-14 15:31:08 -05:00
Brad King
82fcaebe28
ENH: Pass dependent library search path to linker on some platforms.
...
- 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
2008-02-01 08:56:00 -05:00
Brad King
52b3f85642
ENH: Enable use of link script whenever incremental archive construction rules are available. Enable use of archive construction rules on MSYS.
2008-01-29 21:16:49 -05:00
Brad King
ffac622a85
ENH: Add cmTarget::GetLinkInformation method to allow several places in the generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
2008-01-29 15:07:33 -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
09af624dee
BUG: Fix generation of Watcom link lines.
...
- Work-around bug in Watcom command line parsing for spaces in paths.
- Add 'library' option before libraries specified by file path.
2008-01-23 13:30:55 -05:00
Brad King
865c2bc6d6
BUG: Work-around bug in MSVC 6 command line parsing.
2008-01-23 13:03:03 -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
Ken Martin
c3ab83150c
ENH: improve backwards compatibility
2008-01-19 15:09:36 -05:00
Ken Martin
7c473d4828
BUG: fix bugs 5539 (progress going beyond 100% when new files are added) and 5889 (tests are not found in some cases when using add_subdirectory to .. etc)
2008-01-18 10:25:25 -05:00
Brad King
8d1d5500c8
ENH: Enable use of COMPILE_DEFINITIONS property for Fortran sources.
2008-01-17 19:58:01 -05:00
Brad King
433099ecdd
ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into a COMPILE_DEFINITIONS directory property.
2008-01-17 19:29:43 -05:00
Ken Martin
456631225b
ENH: use CTestTestfile.txt
2008-01-17 12:44:59 -05:00
Brad King
18b9e7db6c
ENH: Enable CMAKE_<lang>_DEFINE_FLAG for COMPILE_DEFINITIONS property implementation.
2008-01-17 10:00:19 -05:00
Brad King
8262ccfd4e
ENH: Create COMPILE_DEFINITIONS property for targets and source files. Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
2008-01-14 09:20:58 -05:00
Brad King
340468a090
BUG: Removed stray debugging statement.
2008-01-13 16:59:09 -05:00
Brad King
857e2e15dd
ENH: Improved escaping in kwsys/System. Added escape of % for NMake. Added escape of ; for the VS IDE.
2008-01-13 16:36:20 -05:00
Bill Hoffman
ee886fbbdb
ENH: add CMAKE_DEFINE_FLAG_(LANG) that can replace -D flags with what the compiler actually uses
2008-01-11 13:00:29 -05:00
Brad King
52eb0ccac7
BUG: Restore old interface of "make foo.o" and "make foo.i" even though 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 .
2008-01-07 16:12:37 -05:00
Brad King
3efc6e40cb
BUG: Do not remove the source file extension when computing an object file name. This addresses bug #6169 . If CMAKE_BACKWARDS_COMPATIBILITY is 2.4 or lower maintain the old behavior so that existing build trees and old project releases are not affected.
2007-12-28 23:07:26 -05:00
Brad King
f872c10b7e
ENH: Added method cmLocalGenerator::GetBackwardsCompatibility to reduce parsing of CMAKE_BACKWARDS_COMPATIBILITY variable. Add cmLocalGenerator::NeedBackwardsCompatibility to simplify checks for compatibility requirements.
2007-12-28 23:07:14 -05:00
Brad King
850721f9af
COMP: Fixed data loss warning.
2007-12-20 09:27:59 -05:00
Alexander Neundorf
ac017f7aba
STYLE: fix warnings: comparison signed/unsigned, unused variable
...
Alex
2007-12-19 03:56:13 -05:00
Alexander Neundorf
3ae731fab7
ENH: add support for chrpath, so the RPATH in ELF files can be changed when
...
installing without having to link the target again -> can save a lot of time
chrpath is handled very similar to install_name_tool on the mac. If the
RPATH in the build tree file is to short, it is padded using the separator
character.
This is currently disabled by default, it can be enabled using the option
CMAKE_USE_CHRPATH. There are additional checks whether it is safe to enable
it. I will rework them and use FILE(READ) instead to detect whether the
binaries are actually ELF files.
chrpath is available here
http://www.tux.org/pub/X-Windows/ftp.hungry.com/chrpath/
or kde svn (since a few days): http://websvn.kde.org/trunk/kdesupport/chrpath/
Alex
2007-12-18 17:50:27 -05:00
Alexander Neundorf
f2bb0af819
STYLE: restructure OutputLinkLibraries() a bit, so that new there is a
...
function which returns the RPATH, so e.g. the install rpath can be queried
when the command for the build rpath is created. This is a first step for
supporting chrpath.
Alex
2007-11-26 17:57:39 -05:00
Bill Hoffman
5765fbbb88
ENH: fix spelling error
2007-10-22 14:01:49 -04:00
Bill Hoffman
613c35e033
ENH: do not always add -arch flags
2007-10-19 22:24:00 -04:00
David Cole
c8e832dcf5
BUG: Fix #5868 - add COMPONENT handling to the SCRIPT and CODE signatures of the INSTALL command.
2007-10-15 07:08:15 -04:00
Bill Hoffman
79d9041d81
BUG: fix for bug 0003618 , allow one arch in OSX_ARCHS to work
2007-10-12 10:58:59 -04:00
Alexander Neundorf
c3b42e90ed
ENH: add flag so a terminating slash for the link path can be specified (needed by the Digital Mars D compiler)
...
Alex
2007-08-28 16:19:01 -04:00
Alexander Neundorf
7ff741f14d
STYLE: more space in the cmake_install.cmake script (easier to read)
...
Alex
2007-08-21 16:22:55 -04:00
Brad King
ea874415d9
ENH: Moved GetTargetDirectory method up to cmLocalGenerator. This provides a common interface to something that was implemented in most local generators anyway.
2007-08-01 15:25:40 -04:00
David Cole
ee91e25499
BUG: Only pay attention to the FRAMEWORK target property for SHARED library targets
2007-08-01 13:04:45 -04:00
Alexander Neundorf
dddbad259c
PERF: micro optimization: the (*pos1) && (*pos1=='/') were redundant, and
...
hasDoubleSlash is false in most cases, so in most cases 3 comparisons were
done, now only one
Alex
2007-07-23 09:06:48 -04:00
Alexander Neundorf
a4429ad30a
STYLE: fix line lengths and add "remove -f" to the docs
...
Alex
2007-07-17 10:44:09 -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
e126db1f71
BUG: handle dependencies to imported targets better: don't create a
...
dependency if the target name was not listed in DEPENDS, if it was listed in
DEPENDS, create a dependency to the file
Seems to work, but have to check with Brad.
Alex
2007-06-21 13:08:22 -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
74750610cf
ENH: determine typesize by compiling a file and reading strings from the compiled output.
...
Tested with various gcc, XCode, MSVC7, sdcc
For OSX when doing TRY_COMPILE() CMAKE_OSX_ARCHITECTURES is used, if there are different results an error is generated. CMAKE_OSX_ARCHITECTURES can be overwritten for the TRY_COMPILES with CMAKE_TRY_COMPILE_OSX_ARCHITECTURES.
Alex
2007-06-04 17:08:46 -04:00
Brad King
3f2dd9bc54
ENH: Made cmTarget::GetSourceFiles method return reference to const so addition of cmSourceFile pointers must be done with an access method in cmTarget.
2007-05-28 10:25:03 -04:00
Alexander Neundorf
79756b0e67
BUG: don't use non-imported target when cross compiling as commands in custom commands
...
STYLE: remove now invalid comments, use this->
Alex
2007-05-24 08:43:31 -04:00
Brad King
5639c69d39
ENH: Removed unused code now that INSTALL_FILES and INSTALL_PROGRAMS are not targets.
2007-05-23 18:23:17 -04:00
Brad King
9d75da9eaf
ENH: Removed unused code now that INSTALL_FILES and INSTALL_PROGRAMS are not targets.
2007-05-23 18:22:52 -04:00
Brad King
ba7780a3c4
ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore.
2007-05-23 15:40:12 -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
Brad King
92c0f41251
ENH: Use CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES from platform files to block link directories.
2007-05-18 11:36:23 -04:00
Alexander Neundorf
891f2130cf
COMP: fix link rules with nmake, the linker command has to be converted to shortpath form for nmake
...
Alex
2007-05-18 10:32:22 -04:00
Brad King
c25d2bfdd2
ENH: Added testing for custom command line arguments containing all special characters on the US keyboard. Fixed curly brace arguments on borland and % arguments in mingw32-make.
2007-05-17 10:53:18 -04:00
Brad King
bd78952748
BUG: Do not emit /usr/lib32 or /usr/lib64 as linker paths. Submitted by David Faure.
2007-05-16 09:07:53 -04:00
Bill Hoffman
76dd86b410
BUG: fix -D escaped quotes for watcom
2007-05-10 14:43:55 -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
39ccc4fb11
ENH: fix it so that the FRAMEWORK property does not break the building of normal shared libs on non-mac platforms
2007-05-08 11:53:39 -04:00
Bill Hoffman
9323a27989
ENH: initial support for creation of frameworks on Mac
2007-05-08 10:32:54 -04:00
Brad King
47159b69be
BUG: Fix ComputeLinkInformation. When using a loader_flag link item the full per-configuration path should be used. The fullPathLibs returned should refer to the import library if it was used. Since the full paths are used for dependencies the executable used with loader_flag should be returned also.
2007-04-18 09:56:06 -04:00
Brad King
4241e699c7
BUG: Cannot escape link items because some need the spaces to separate arguments. Instead just escape the argument to the loader flag.
2007-04-18 00:04:56 -04:00
Brad King
07b9423e7d
BUG: Fix ComputeLinkInformation for non-linked targets. Why is it called for utility targets anyway?
2007-04-17 23:16:35 -04:00
Brad King
f9f5772557
ENH: Added use of platform variable CMAKE_SHARED_MODULE_LOADER_<lang>_FLAG to add a special flag when linking a plugin to an executable that loads it.
2007-04-17 16:11:00 -04:00
Brad King
a017333d9a
ENH: Added option CMAKE_INSTALL_SO_NO_EXE on linux to choose whether the default permissions for shared libraries include the executable bit. This is necessary to support the conflicting policies of Debian and Fedora. These changes address bug#4805.
2007-04-10 11:22:15 -04:00
Bill Hoffman
5ed2141d12
ENH: make sure default /System framework is not added with -F
2007-03-30 10:53:02 -04:00
Brad King
5a32aa5919
ENH: Added target property ENABLE_EXPORTS for executable targets. It enables the executables for linking by loadable modules that import symbols from the executable. This finishes the executable import library support mentioned in bug #4210 .
2007-03-22 09:45:25 -04:00
Brad King
1f639ee76c
ENH: Added computation of object file names that are almost always short enough to not exceed the filesystem path length limitation. This is useful when a source file from outside the tree is referenced with a long full path. The object file name previously would contain the entire path which when combined with the build output directory could exceed the filesystem limit. Now CMake recognizes this case and replaces enough of the beginning of the full path to the source file with an md5sum of the replaced portion to make the name fit on disk. This addresses bug#4520.
2007-03-16 10:34:25 -04:00
Brad King
9da6f96d98
BUG: Reverting previous changes related to using an empty string for a relative path to the current directory. Too many places want the . version. Instead we can just convert the . to an empty string in the one place that motiviated the original change.
2007-03-14 16:29:10 -04:00
Brad King
a724f0d425
BUG: During relative path conversion if the remote and target paths are the same return the empty string instead of ".".
2007-03-14 13:36:24 -04:00
Brad King
d720036e61
BUG: Fix check of EXCLUDE_FROM_ALL property to use boolean type. This is required for installation of subdirectories to work.
2007-03-13 11:58:12 -04:00
Ken Martin
b99129d2d8
ENH: some code cleanup
2007-03-12 10:26:59 -04:00
Brad King
1e25f2b3db
BUG: Use real path subdirectory check instead of substring comparison to identify when paths are below the relative path tops. Otherwise when the build tree is next to the source tree with the same name plus a suffix the relative path from the binary to source tree is allowed even though it goes outside cmake-managed directories.
2007-03-09 17:15:13 -05:00
Brad King
54923d6ad8
ENH: Implemented new policy to choose the directory part of the object file name. This should keep the names looking as nice and short as possible. This partially addresses bug#4520.
2007-03-09 10:30:07 -05:00
Brad King
528f60f4a6
ENH: Added implib option to cmTarget::GetDirectory to support a separate directory containing the import library. This is an incremental step for bug#4210.
2007-03-09 09:30:16 -05:00
Brad King
4089c76890
BUG: Some calls to Convert() were converting for MAKEFILE but then passing the output to the build shell. The calls have now been converted to call Convert() with SHELL.
2007-03-08 10:31:03 -05:00
Brad King
2f2b5b2503
ENH: SetupPathConversions is now called automatically on demand.
2007-03-08 08:38:40 -05:00
Brad King
b90e241a31
ENH: Modified GetObjectFileNameWithoutTarget to use relative paths for object file names with sources above the current directory so long as the relative path conversion works.
2007-03-07 17:39:16 -05:00
Brad King
4036627487
ENH: Improved computation of RelativePathTopSource and RelativePathTopBinary to use higher relative path tops when the source directories jump around in a tree below the original source top.
2007-03-07 17:32:35 -05:00
Brad King
ad4055f3e2
ENH: Set RelativePathTopSource and RelativePathTopBinary independently for each local generator. Relative path conversion is safe within a tree as long as it does not go above the highest parent directory still managed by CMake.
2007-03-07 16:35:53 -05:00
Brad King
c841258170
COMP: Add missing include for assert.
2007-03-07 15:30:30 -05: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
Bill Hoffman
1503caa14e
ENH: remove qnx special stuff that does not work
2007-02-28 17:26:20 -05:00
Bill Hoffman
ecbec236b1
ENH: one more pass at paths with spaces and parens
2007-02-28 14:29:26 -05:00
Bill Hoffman
90974ea1d6
ENH: go back to \ escapes for qnx
2007-02-26 11:56:13 -05:00
Bill Hoffman
4d5321f891
ENH: go back to EscapeForShell version
2007-02-26 11:41:41 -05:00
Bill Hoffman
512d5dd1e3
ENH: try and use \ for space and () escapes
2007-02-25 16:13:33 -05:00
Bill Hoffman
f0d5bdf86e
ENH: try another thing 3
2007-02-23 20:37:35 -05:00
Bill Hoffman
d7e57294fb
ENH: try another thing
2007-02-23 17:38:59 -05:00
Bill Hoffman
77ad2d62c2
ENH: add some debug stuff
2007-02-23 17:07:57 -05:00
Bill Hoffman
ae1d9e8b93
ENH: add some debug stuff
2007-02-23 16:44:13 -05:00
Andy Cedilnik
8ad3430931
ENH: Make EXCLUDE_FROM_ALL a target and directory properties. Also, make IsInAll use EXCLUDE_FROM_ALL. Also, enable the test that tests this
2007-02-23 09:46:27 -05:00
Bill Hoffman
48202ef623
ENH: hack put the hack back for qnx to try and fix spaces in the path
2007-02-22 17:34:14 -05:00
Bill Hoffman
0b350cbb97
ENH: undo hack and try to get dashboard back
2007-02-22 17:26:36 -05:00
Brad King
c1eae5b891
BUG: Hack to try working around a problem with spaces in an rpath on QNX.
2007-02-22 16:23:12 -05:00
Bill Hoffman
417b2073df
ENH: add new escape stuff
2007-02-22 15:33:49 -05:00
Bill Hoffman
5647e6e254
ENH: fix parens in the path with spaces in the path
2007-02-21 21:24:17 -05:00
Bill Hoffman
f7cd9f76ce
STYLE: fix line length issues
2007-02-17 08:46:25 -05:00
Bill Hoffman
66523061d0
ENH: remove warnings and debug statement
2007-02-17 08:38:41 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Bill Hoffman
8013ffd23b
ENH: do not use crazy long paths to object files for try compile
2007-01-31 16:49:25 -05:00
Bill Hoffman
37d979e0fc
ENH: this does not need to be safe as the value is checked
2007-01-23 14:28:40 -05:00
Bill Hoffman
0272c209a5
ENH: avoid crash, but do not make it an error if include flags is missing from a language
2007-01-23 13:08:40 -05:00
Bill Hoffman
91bd8099d8
ENH: make the include flag required for a language avoids seg fault
2007-01-23 11:39:22 -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
26b527ac0f
ENH: fix bug in full path to target depends stuff
2006-12-06 23:05:10 -05:00
Brad King
d045ae45f2
BUG: Do not print empty install configuration repeatedly.
2006-12-04 13:54:32 -05:00