Brad King
bf4cef9d5c
ENH: Add policy CMP_0004 to require library names to have no leading or trailing whitespace. Replace previous check of CMAKE_BACKWARDS_COMPATIBILITY against version 2.4 with the policy.
2008-03-13 16:35:39 -04:00
Brad King
d46ff28ac9
ENH: Convert CMAKE_LINK_OLD_PATHS to policy CMP0003.
...
- Policy is WARN by default so projects will build
as they did in 2.4 without user intervention
- Remove CMAKE_LINK_OLD_PATHS variable since it was
never in a release and the policy supercedes it
- Report target creation backtrace in warning message
since policy should be set by that point
2008-03-13 16:23:18 -04:00
Brad King
f7f03347a6
ENH: Improve new error/warning message generation
...
- Add cmListFileBacktrace to record stack traces
- Move main IssueMessage method to the cmake class instance
(make the backtrace an explicit argument)
- Change cmMakefile::IssueMessage to construct a backtrace
and call the cmake instance version
- Record a backtrace at the point a target is created
(useful later for messages issued by generators)
2008-03-13 13:48:57 -04:00
Bill Hoffman
5ab6c0f0ed
ENH: remove abort calls and replace with an IssueMessage INTERANL_ERROR, better to not crash on the end user.
2008-03-12 21:06:32 -04:00
Brad King
96ee85d197
BUG: Fix memory leak when cmTarget instances are assigned. We really need to get rid of global targets and their associated assignments.
2008-03-04 13:51:27 -05:00
Brad King
652951b976
ENH: Allow users to work around problems with the builtin chrpath by setting CMAKE_NO_BUILTIN_CHRPATH.
2008-03-02 16:37:34 -05:00
Brad King
d732de4a8a
ENH: Cleanup builtin chrpath support
...
- 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
2008-03-02 14:35:23 -05:00
Brad King
59001281bb
BUG: Do not try to change the RPATH when installing a target if CMAKE_SKIP_RPATH is on or the path does not need to be changed.
2008-03-01 13:02:08 -05:00
Brad King
34c76d4304
ENH: Use builtin chrpath instead of relinking ELF targets
...
- Add cmSystemTools::ChangeRPath method
- Add undocumented file(CHRPATH) command
- When installing use file(CHRPATH) to change the rpath
instead of relinking
- Remove CMAKE_CHRPATH lookup from CMakeFindBinUtils
- Remove CMAKE_USE_CHRPATH option since this should
always work
2008-03-01 12:51:07 -05:00
Brad King
dab5ea859a
COMP: Fix Borland 5.5 build
...
- Its <iosfwd> header includes windows.h which
defines GetCurrentDirectory
- It defines 'interface' so we cannot use it as
a variable name.
2008-02-24 14:05:11 -05:00
Brad King
fd37a6ec3d
ENH: Better linker search path computation.
...
- Use linker search path -L.. -lfoo for lib w/out soname
when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME
- Rename cmOrderRuntimeDirectories to cmOrderDirectories
and generalize it for both soname constraints and link
library constraints
- Use cmOrderDirectories to order -L directories based
on all needed constraints
- Avoid processing implicit link directories
- For CMAKE_OLD_LINK_PATHS add constraints from libs
producing them to produce old ordering
2008-02-21 11:41:11 -05:00
Brad King
a3c2d32802
COMP: Fix HP warning about cmTargetInternalPointer::operator= checking for self-assignment.
2008-02-19 09:09:46 -05:00
Brad King
9ed4266306
ENH: Cleanup impl of PUBLIC_HEADER, PRIVATE_HEADER, and RESOURCE properties
2008-02-18 16:38:34 -05:00
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
ac0e58dcfb
ENH: Enforce global target name uniqueness.
...
- Error if imported target is involved in conflict
- Error for non-imported target conflict unless
CMAKE_BACKWARDS_COMPATIBILITY <= 2.4
- Include OUTPUT_NAME property in error message
- Update add_executable and add_library command documentation
2008-02-11 13:35:39 -05:00
Brad King
410d7b0f36
ENH: Avoid computing link information for static library targets. They do not link.
2008-02-07 16:49:11 -05:00
Brad King
afad124313
BUG: Make sure linking to a shared lib on windows uses import library and not the new realname.
2008-02-06 14:19:03 -05:00
Brad King
31a6670e43
BUG: Do not create versioned executable names on Xcode where they are not supported.
2008-02-06 14:06:50 -05:00
Brad King
07be6bb87b
ENH: When linking to versioned targets whose real file name is known pass the real name to the linker instead of the symlink name.
2008-02-06 13:34:44 -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
f28f1585f6
COMP: Fix shadowed local warning.
2008-02-01 08:55:41 -05:00
Brad King
2cff26fa52
ENH: Support linking to shared libs with dependent libs
...
- Split IMPORTED_LINK_LIBRARIES into two parts:
IMPORTED_LINK_INTERFACE_LIBRARIES
IMPORTED_LINK_DEPENDENT_LIBRARIES
- Add CMAKE_DEPENDENT_SHARED_LIBRARY_MODE to select behavior
- Set mode to LINK for Darwin (fixes universal binary problem)
- Update ExportImport test to account for changes
2008-01-31 15:45:31 -05:00
Brad King
afd7d4ca4c
ENH: Add target property LINK_SEARCH_END_STATIC to help people building static binaries on some platforms.
2008-01-31 08:05:34 -05:00
Brad King
7902bc06aa
ENH: Implemented link-interface specification feature.
...
- Shared libs and executables with exports may now have
explicit transitive link dependencies specified
- Created LINK_INTERFACE_LIBRARIES and related properties
- Exported targets get the interface libraries as their
IMPORTED_LINK_LIBRARIES property.
- The export() and install(EXPORT) commands now give
an error when a linked target is not included since
the user can change the interface libraries instead
of adding the target.
2008-01-30 17:25:52 -05:00
Brad King
6066e92ba2
BUG: cmTarget instances should not be copied. Removed pass-by-value arguments from cmLocalVisualStudio7Generator::WriteGroup and cmLocalVisualStudio6Generator::WriteGroup. Updated cmTarget to make this easier to find.
2008-01-29 17:30:34 -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
64b6c0b950
ENH: Document PRIVATE_HEADER, PUBLIC_HEADER, and RESOURCE target properties and corresponding arguments to INSTALL(TARGETS).
2008-01-28 15:12:12 -05:00
Brad King
e3b1bdb058
ENH: Support exporting/importing of AppBundle targets.
...
- Imported bundles have the MACOSX_BUNDLE property set
- Added cmTarget::IsAppBundleOnApple method to simplify checks
- Document BUNDLE keyword in INSTALL command
- Updated IMPORTED_LOCATION property documentation for bundles
- Updated ExportImport test to test bundles
2008-01-28 14:46:16 -05:00
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
99b97dece8
ENH: Created cmComputeLinkDepends to compute link dependencies.
...
- This will be useful for imported library dependencies
- Replaces old cmTarget analyze-lib-depends stuff for linking
- Formalizes graph construction and dump
- Explicitly represents dependency inferral sets
- Use BFS of initial dependencies to preserve order
2008-01-27 13:42:49 -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
Brad King
17dbc31ad4
BUG: Added missing documentation of LINK_FLAGS_<CONFIG> property.
2008-01-21 13:59:10 -05:00
Brad King
caca9b8065
ENH: Add AppendProperty methods for use by C++ code in CMake. Simplify implementation of SET_PROPERTY command by using them.
2008-01-17 18:13:55 -05:00
Brad King
80c2be45e0
ENH: Renamed <CONFIG>_COMPILE_DEFINITIONS to COMPILE_DEFINITIONS_<CONFIG> for better documentation clarity.
2008-01-15 21:02:00 -05:00
Brad King
da335fbd00
ENH: Add explicit documentation entry for configuration-specific <CONFIG>_COMPILE_DEFINITIONS.
2008-01-15 10:49:22 -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
Amitha Perera
4d9259c15b
STYLE: Spelling fixes on documentation
2008-01-09 22:09:19 -05:00
Alexander Neundorf
3da6fd9da4
ENH: only allow usage of chrpath if the executable file format is ELF
...
Alex
2008-01-02 16:53:10 -05:00
Brad King
b2e8c07af8
ENH: Implemented Fortran module output directory and search path flags.
2007-12-30 16:11:38 -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
Brad King
8506938407
ENH: Added SOURCES property to targets. This is based on patch from issues #6137 .
2007-12-17 10:12:22 -05:00
Brad King
91f68fc391
BUG: For imported target directory, do not return pointer to freed memory.
2007-11-21 08:59:43 -05:00
Ken Martin
9bd0d0f1ed
BUG: fix undefined property FRAMEWORK
2007-10-30 11:03:16 -04:00
David Cole
2458b07464
BUG: Fix the dashboards! Put it back the way it was so it always creates the target directory at configure time. Figure out how to avoid it for the framework case on the Mac/Xcode later...
2007-10-12 11:43:50 -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
Brad King
f2ac53bb10
ENH: Added XCODE_ATTRIBUTE_<an-attribute> property to allow direct setting of Xcode target attributes in generated projects. For example, one may set the prefix header property and the corresponding precompiled option to do precompiled headers.
2007-09-10 10:22:19 -04:00
Alexander Neundorf
112747e4e2
STYLE: fix typo
...
Alex
2007-08-09 08:49:49 -04:00
Brad King
bffcff4530
ENH: Added warning when an install rule is created from an EXCLUDE_FROM_ALL target. Added a foo/preinstall version of targets that need relinking so that exclude-from-all targets can be manually relinked for installation.
2007-08-03 16:31:08 -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
Brad King
9f2de08f90
ENH: Added cmTarget::GetLanguages method to centralize computation of the list of languages compiled in a target.
2007-08-02 13:38:39 -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
Brad King
e0fc8b2995
BUG: <CONFIG>_LOCATION property should use the config name in the directory and not $(OutDir). This addresses bug#5363.
2007-08-01 11:36:35 -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
Brad King
cac79e92b8
STYLE: Fixed line-too-long, fixed indentation, removed trailing whitespace, added function separator comment lines.
2007-07-02 13:32:41 -04:00
Alexander Neundorf
cfe9fda9fe
ENH: here we really want only non-imported targets, as discussed with Brad
...
Alex
2007-06-27 15:42:33 -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
Brad King
3d822e3a25
ENH: Moved link library related code from GenerateSourceFilesFromSourceLists to AnalyzeLibDependencies to make the former do no more than what its name says.
2007-05-28 12:05:28 -04:00
Brad King
09289aadb6
ENH: Removed "Used" mark from custom commands. It is no longer needed or checked by any generators.
2007-05-28 11:18:15 -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
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
Brad King
c288da754a
BUG: Target names in the COMMAND part of a custom command should not create a file-level dependency that forces the command to rerun when the executable target rebuilds, but the target-level dependency should still be created. Target names in a DEPENDS should do both a target-level and file-level dependency. Updated the BuildDepends test to check that this works.
2007-05-23 13:27:00 -04:00
Alexander Neundorf
526b72e12c
COMP: don't user string::clear(), fix warnings about unused variables
...
Alex
2007-05-23 08:24:29 -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
51fe906ab7
BUG: An empty configuration name is equivalent to no configuration.
2007-05-17 11:18:23 -04:00
Alexander Neundorf
4b33244ea5
BUG: fix segfault when trying to get the object file for a sourcefile in an
...
unknown language via GET_TARGET_PROPERTY(), as reported by Trevor Kellaway
Alex
2007-05-15 16:06:18 -04:00
Alexander Neundorf
e4b5de6377
STYLE: fix line lengths
...
Alex
2007-05-14 11:23:37 -04:00
Alexander Neundorf
362f81981e
STYLE: fix line length
...
Alex
2007-05-10 11:38:23 -04:00
Alexander Neundorf
e701ef77d8
STYLE: functions use upper case for the first letter
...
Alex
2007-05-09 09:35:59 -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
9323a27989
ENH: initial support for creation of frameworks on Mac
2007-05-08 10:32:54 -04:00
Ken Martin
8b0c61c322
ENH: added internal target property for the name of the project file
2007-04-10 09:54:01 -04:00
Brad King
af95f61d76
ENH: Created method cmTarget::GetExportMacro to centralize computation of the export symbol name. This removes duplicate code from all the generators. Also enabled the export definition for executable targets with the ENABLE_EXPORTS property set.
2007-03-27 23:13:25 -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
fc7c433463
ENH: Added support for import libraries created by executable and module targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly.
2007-03-19 10:00:36 -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
92ff60b6a6
ENH: Added target properties ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY. If set these override EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH for a specific target. They can be used to distribute target files in the build tree with the same granularity that the INSTALL command provides for the install tree. This addresses bug#2240 and bug#4210.
2007-03-09 15:14:27 -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
01dc699d82
ENH: Combined cmTarget::GetDirectory and cmTarget::GetOutputDir since they are nearly the same. This is another step for bug#2240.
2007-03-08 15:33:19 -05:00
Brad King
1a734f238a
COMP: Fixed enumeration-not-used warning in switch.
2007-03-08 15:10:20 -05:00
Brad King
33ee83714d
ENH: Replaced LibraryOutputPath and ExecutableOutputPath variables in Makefile and VS generators to instead ask each target for its output path. This significantly reduces total code size and centralizes previously duplicate code. It is also a step towards bug#2240.
2007-03-08 14:57:28 -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
Ken Martin
84315a7d57
BUG: fix accidental checkin
2007-02-19 14:32:36 -05:00
Ken Martin
09699018cc
ENH: turn on spaces in path test
2007-02-19 13:20:27 -05:00
Bill Hoffman
f7cd9f76ce
STYLE: fix line length issues
2007-02-17 08:46:25 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Brad King
4bc0fd0941
ENH: Added cmTarget::GetPDBName method to simplify computation of .pdb file name for a target.
2007-02-01 16:54:49 -05:00
Brad King
712345ffc4
BUG: The .pdb file generated for a library or executable should match the real file name used for the target. This addresses bug#3277.
2007-02-01 09:57:24 -05:00
Ken Martin
1dd5db0235
COMP: fix some warnings and style issues
2006-12-08 09:27:52 -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
Bill Hoffman
5ff037e894
BUG: better fix for .dll.lib problem
2006-11-30 17:32:46 -05:00
Ken Martin
2915f24274
COMP: fix compile issue on Sun hopefully
2006-11-29 17:10:29 -05:00
Ken Martin
d6219588c0
COMP: fix compile issue on Sun
2006-11-29 15:45:49 -05:00
Ken Martin
daa6d2bc04
ENH: updated handling of debug and optimized target link libraries
2006-11-29 11:00:17 -05:00
Bill Hoffman
0954696e3e
ENH: fix line length problem
2006-11-27 12:14:16 -05:00
Bill Hoffman
b3d5e0fa2d
ENH: fix crash in plplot build
2006-11-27 12:11:27 -05:00
Bill Hoffman
9baa760315
BUG: fix problem when a target name is the same as the output of a custom command
2006-11-25 10:59:26 -05:00
Ken Martin
786fdbc196
ENH: fix a bug with useing debuf optimized libs from other builds
2006-11-16 10:57:00 -05:00
Brad King
b155f3aa1c
ENH: Adding image version number (major.minor) property to windows binaries. Default is 0.0, but the VERSION target property may change the value. Windows now has first-class support for dll and exe versioning. This addresses bug#1219.
2006-10-16 18:17:14 -04:00
Brad King
e0a662a3dd
ENH: Adding version number to the name of a DLL built in cygwin but not the import library. This addresses bug#3571.
2006-10-05 16:30:47 -04:00
Brad King
fdcc888c56
ENH: Added support for getting a target's location on a per-configuration basis (ex. DEBUG_LOCATION). This does not fix but helps with bug#3250.
2006-09-29 16:42:58 -04:00
Brad King
441d208bb3
ENH: Added target property CLEAN_DIRECT_OUTPUT to not clean all forms of a library name so that static and shared libraries of the same name can coexist in a single build directory.
2006-08-03 09:42:48 -04:00
Brad King
ab61137eb1
COMP: Fix and/or disable warnings for Borland 5.6 build.
2006-08-01 11:38:42 -04:00
Brad King
b4542762a7
ENH: Added target property INSTALL_RPATH_USE_LINK_PATH to append the linker search path directories not inside the project to the INSTALL_RPATH automatically. The property is initialized by the variable CMAKE_INSTALL_RPATH_USE_LINK_PATH when the target is created.
2006-06-15 10:12:19 -04:00
Brad King
932e3524fc
ENH: Changing shared library versioned file names on OSX to conform to that platform's convention.
2006-06-05 13:45:43 -04:00
Bill Hoffman
0f2f074978
ENH: fix for vtk 4.4 and other projects that may try to link to a module
2006-05-19 13:02:12 -04:00
Ken Martin
cac30b5ff8
STYLE: fix line length
2006-05-12 14:12:13 -04:00
Brad King
323dc3a89a
ENH: Added information about target needing a source file when one cannot be found.
2006-05-05 11:46:20 -04:00
Brad King
392137b6d7
ENH: Added <config>_OUTPUT_NAME target property to allow the output name to be set on a per-configuration basis.
2006-04-18 10:56:28 -04:00
Andy Cedilnik
93f5712a7d
COMP: Remove warnings
2006-03-28 16:25:29 -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
5792dc8da8
ENH: Replaced UpdateLocation method with call to GetLocation. Added comment about problems with the LOCATION attribute.
2006-03-03 18:06:44 -05:00
Andy Cedilnik
bc4e5581ee
ENH: Add support for exporting graphviz of the project dependencies
2006-03-03 14:24:31 -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
Brad King
54732b0607
ENH: Finished CMAKE_<CONFIG>_POSTFIX feature and documented it. The value of this variable is used when a library target is created to initialize the <CONFIG>_POSTFIX target property. The value of this property is used (even for executables) to define a per-configuration postfix on the name of the target. Also enabled use of the OUTPUT_NAME property for non-executable targets.
2006-03-01 22:45:13 -05:00
Brad King
586a9427d3
ENH: Created target property INSTALL_NAME_DIR initalized by CMAKE_INSTALL_NAME_DIR specifying the directory portion of the OSX install_name field in shared libraries. This is the OSX equivalent of RPATH.
2006-02-24 13:13:14 -05:00
Andy Cedilnik
ea5564624c
ENH: Add a notion of a global target
2006-02-23 10:03:24 -05:00
Brad King
c21287552b
ENH: Switched order of slash and configuration name in cmGlobalGenerator::AppendDirectoryForConfig method to increase flexibility.
2006-02-19 19:28:53 -05:00
Brad King
8dd00d5b1e
BUG: Fixed relink with new install framework.
2006-02-19 17:27:47 -05:00
Brad King
81677b3130
ENH: Generate import libraries for DLLs on Cygwin and MinGW.
2006-02-18 15:37:23 -05:00
Brad King
537e2b4ed5
ENH: Implemented RPATH specification support. It is documented by the command SET_TARGET_PROPERTIES.
2006-02-16 15:19:00 -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
Bill Hoffman
a91947039a
ENH: for all custom commands that can not be given to a target, add them to all targets in the current makefile
2006-01-09 14:40:31 -05:00
Bill Hoffman
86ad253427
BUG: fix for bug 2322, use CMAKE_EXECUTABLE_SUFFIX variable for exe suffix
2006-01-02 13:37:53 -05:00
Andy Cedilnik
416bbaef53
COMP: Remove warnings
2005-12-30 12:58:00 -05:00
Bill Hoffman
452925649a
ENH: add better support for framework linking
2005-12-26 13:14:19 -05:00
Brad King
163e3ff56c
ENH: Removed cmMakefile arguments from cmTarget methods because cmTarget has the ivar m_Makefile now. Re-implemented cmLocalUnixMakefileGenerator3::AppendAnyDepend to use the new global knowledge and avoid the need to look at the cache for information about other targets. This should fix problems with custom commands and executables with the OUTPUT_NAME set. Also the <target>_LIBRARY_TYPE cache variable is no longer needed at all and has been removed.
2005-12-14 10:47:33 -05:00
Bill Hoffman
d0e801247f
ENH: executable prefix and post fix variables should not be the same as the executable extension
2005-11-23 10:27:05 -05:00
Brad King
102dd34bdc
BUG: Do not expand escape sequences when re-expanding variables in include directories, link directories, and link libraries.
2005-11-22 17:03:07 -05:00
Brad King
d392acb4e6
ENH: Added versioned executable support. This partially addresses bug#2143. Also made OUTPUT_NAME work when installing executables.
2005-08-17 16:11:18 -04:00
Bill Hoffman
35e36b5b76
ENH: make sure source file depends are used to determine if custom commands are used
2005-07-26 13:26:37 -04:00
Ken Martin
7f2e7443bf
ENH: added Alexander's target property TYPE
2005-07-01 10:57:39 -04:00
Ken Martin
3b66c0a574
ENH: some better checks
2005-06-22 09:12:05 -04:00
Ken Martin
369308ca76
ENH: make LOCATION an computed property of the target and get rid of a bunch of const junk
2005-06-22 09:06:46 -04:00
Ken Martin
ea0a77fd81
ENH: removed old 1.2 compatability
2005-06-09 11:33:55 -04:00
Ken Martin
78b5cca6e3
ENH: another step to the next generator still not optimized yet
2005-05-18 13:46:00 -04:00
Brad King
b1c5289787
ENH: Created cmTarget::GetLibraryNames to replace cmLocalUnixMakefileGenerator2::GetLibraryNames. Added cmTarget::GetLibraryCleanNames to be used by cmLocalUnixMakefileGenerator2. Now when a library is linked both the shared and static versions are removed from the build tree. In this way we avoid having both kinds of libraries present when the user switches BUILD_SHARED_LIBS on/off. This prevents problems with turning off shared libraries and then expecting the linker to use the static libraries only to find it is using the out-of-date shared versions.
2005-04-22 16:11:00 -04:00
Brad King
1b71f4477b
ENH: Added cmTarget::GetBaseName and cmTarget::GetFullName methods and removed cmLocalGenerator::GetFullTargetName and cmLocalUnixMakefileGenerator2::GetBaseTargetName. This functionality is more sensibly implemented in cmTarget. It is also needed for an upcoming feature in which both the shared and static versions of a library will be removed before one is linked.
2005-04-22 15:23:21 -04:00
Andy Cedilnik
030dd4b91e
ENH: Speedup by only getting the source once
2005-04-13 16:34:52 -04:00
Brad King
04b5d1613c
COMP: Using const_iterator instead of iterator to walk through custom command dependencies.
2005-02-18 16:12:33 -05:00
Bill Hoffman
43bc8a0d63
COMP: remove warnings
2004-10-22 16:58:59 -04:00
Bill Hoffman
ab817f2e81
COMP: fix warnings
2004-10-21 15:21:38 -04:00
Bill Hoffman
7cef36c628
ENH: add the ability to generate custom commands for a language that is not supported by an IDE
2004-10-21 14:34:02 -04:00
Bill Hoffman
5bf55d1590
ENH: shorten the symbols a bit and remove maps of std::string for map of cmStdString
2004-09-29 16:07:07 -04:00
Bill Hoffman
8cb20b7052
BUG: fix perfered linker language code
2004-09-22 17:50:36 -04: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
9655299f08
ENH: initial fortran support
2004-08-06 14:51:41 -04:00
Bill Hoffman
c8101e8e47
BUG: fix for bug 998, fix spelling errors
2004-07-26 16:59:55 -04:00
Bill Hoffman
86bf9f396e
ENH: add a property for HAS_CXX to a target that will force the use of a c++ compiler in the linking of an executable that contains only c code
2004-04-22 14:38:17 -04:00
Bill Hoffman
1616135d4e
ENH: remove warnings on sgi
2004-04-07 09:58:43 -04:00
Brad King
5c9fadee4f
BUG: _LINK_TYPE cache variable should never be switched from optimized to debug or vice versa.
2004-04-02 13:21:20 -05:00
Andy Cedilnik
c3840b5cc3
BUG: Fix Bug #445 - Same library in multiple projects can cause problems
2003-12-18 13:04:28 -05:00
Bill Hoffman
42b39099a7
ENH: add support for OBJECT_DEPENDS for visual studio
2003-07-31 15:32:53 -04:00
Andy Cedilnik
ef20a2a8a9
BUG: Fix copy/paste typo
2003-07-22 13:15:45 -04:00
Ken Martin
117f961a5a
moved function into cmTarget
2003-06-24 15:10:47 -04:00
Ken Martin
a5a067fa1c
removed some no longer required code
2003-06-23 11:16:20 -04:00
Ken Martin
703242071f
more crazt changes source files now must match with full path
2003-06-05 14:40:25 -04:00
Bill Hoffman
0876c19dc8
ENH: remove warnings from borland 6 compiler
2003-05-29 09:34:06 -04:00
Bill Hoffman
ca773a5d6d
ENH: add stdlib.h for portability to borland 6
2003-05-24 10:07:58 -04:00
Bill Hoffman
94c396184e
BUG: HasCXX did not use GetFileFormat and was broken
2003-03-15 10:04:37 -05:00
Bill Hoffman
3859417d1a
ENH: add target properties
2002-12-20 17:15:45 -05:00
Brad King
4888c088ae
ENH: Moved ExpandListVariables out of individual commands. Argument evaluation rules are now very consistent. Double quotes can always be used to create exactly one argument, regardless of contents inside.
2002-12-11 18:13:33 -05:00
Amitha Perera
939035ad91
BUG: the dependency analysis would incorrectly alphabetically re-order the
...
link lines, which affects external libraries pulled up from deep within
the dependency tree. Fixed by preserving order everywhere.
2002-11-19 18:01:05 -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
Andy Cedilnik
9ed93397fb
If you specify header file as source, it should still use C compiler and not CXX. Also fix COnly test so that it make sure that this still works...
2002-10-06 12:12:59 -04:00
Ken Martin
7ddb408621
removed some includes
2002-09-27 16:24:10 -04:00
Ken Martin
7b5a8762c6
modified how source files store properties
2002-08-16 11:20:18 -04:00
Ken Martin
44a7cd55ff
removed all source lists from the system and made them vectors. Also appended _CMAKE_PATH to the end of the automatic cache entries for executables and libraries. Odds of all these changes working are slim but cmake builds and passes all its tests. VTK40 starts building
2002-06-27 15:57:09 -04:00
Bill Hoffman
32353c55e5
BUG: try to tell the difference between variables with sources and other variables
2002-06-25 09:59:08 -04:00
Ken Martin
d1879a77e8
modified to handle src list vectors without proper dollar signs
2002-06-24 16:42:34 -04:00
Ken Martin
38145ad5a4
modified create test source to create a vector
2002-06-19 12:52:16 -04:00
Brad King
28895b0f9f
ERR: Fixed compiler warnings.
2002-06-18 17:20:27 -04:00
Bill Hoffman
e5668ea656
ENH: only add _LIB_DEPEND information for libraries and modules
2002-06-03 10:25:55 -04:00
Amitha Perera
c24c2cca18
BUG: never make a target depend on itself. This was causing unnecessary library duplication, resulting in link errors on some platforms.
2002-05-29 15:00:37 -04:00
Amitha Perera
1c9981eb1d
FIX: Remove assert since it was breaking IRIX builds.
2002-05-11 22:28:59 -04:00
Jim Miller
de44f1faac
FIX: Const reference to a set needs a const_iterator. (.NET build error)
2002-05-10 14:06:34 -04:00
Amitha Perera
0e6b39e52f
BUG: Correct some of the dependency analysis code.
...
- Make sure the original link line is untouched
- Avoid duplicating the link line when supporting version < 1.4
- Make sure the cyclic dependencies and such are output correctly in
complicated cases.
- Avoid outputing dependencies that are already satisfied on the original
link line when possible.
2002-05-10 13:35:42 -04:00
Bill Hoffman
6734d3bb88
ENH: change set<string> to set<cmStdString> to avoid long symbols that crash ar on solaris
2002-05-09 09:33:52 -04:00
Bill Hoffman
cdf550de13
ENH: rework library depend stuff
2002-05-03 16:34:05 -04:00
Amitha Perera
4bff970413
- bug fix where paths weren't being output when LIB_OUT_PATH *isn't* used
...
- test case for above mentioned bug
- more comments. Comments are good.
2002-05-03 00:27:34 -04:00
Bill Hoffman
0838265fdc
check for optimized or debug library adds
2002-05-02 19:09:12 -04:00
Bill Hoffman
46e9d970e9
remove canonical conversion for lib names
2002-05-02 16:13:18 -04:00
Bill Hoffman
a80153b5cb
make it backwards compatible with old cmake
2002-05-02 15:56:13 -04:00
Bill Hoffman
2242006ca1
Debug optimized cache fixes
2002-05-02 15:10:19 -04:00
Amitha Perera
4fe8947bcc
BUG: The library paths should stay with the libraries during dependency analysis.
2002-05-02 13:41:40 -04:00
Bill Hoffman
27fe57b716
ENH: change LINK_LIBRARY to add to targets
2002-05-02 13:17:10 -04:00
Amitha Perera
3d4230033a
BUG: if a_LIBS_DEPENDS exists but is empty, there are no explicit dependencies.
2002-05-02 02:27:26 -04:00
Amitha Perera
099436db26
ENH: Make the LinkLibraries command contribute dependencies towards AddLibraries.
2002-05-01 16:33:27 -04:00
Amitha Perera
1f8df8585e
ENH: Add library dependency analysis.
2002-05-01 14:00:21 -04:00
Bill Hoffman
4ea0f6b949
ENH: add enable language support for PROJECT command, this means that a C only project can be built with cmake, even without a cxx compiler
2002-04-02 15:43:23 -05:00
Bill Hoffman
8b3b49a010
ENH: major change, the cmMakefile now contains a master list of cmSourceFile objects, the source lists reference the list via pointers, also you can now set properties on a file, like compile flags, abstract, etc.
2002-03-29 10:06:30 -05:00
Will Schroeder
a6a43d5320
ENH:Updated copyright
2002-01-21 15:30:43 -05:00
Brad King
cfa25e9e1a
ENH: Added INSTALL_PROGRAMS command and corresponding support. This involved splitting cmTarget::INSTALL into INSTALL_FILES and INSTALL_PROGRAMS enum values. INSTALL_FILES no longer adds execute permission. The INSTALL_PROGRAMS commnad takes either a list of explicit names, or a regex. It will not expand source lists like the INSTALL_FILES command will.
2001-07-31 11:29:21 -04:00
Amitha Perera
e169953e92
ENH: Source and header file extensions are in variables in cmMakefile.
...
AUX_SOURCE_DIRECTORY will only add files that have a "source" extension.
2001-07-16 18:40:42 -04:00
Ken Martin
012603c746
duh
2001-06-13 13:53:11 -04:00
Ken Martin
521e301116
minor cvs web changeCMakeLists.txt
2001-06-13 13:49:24 -04:00
Ken Martin
dbebd0a276
added install rules
2001-05-23 11:31:43 -04:00
Bill Hoffman
e606732b94
ENH: allow duplicate libraries
2001-05-23 09:35:14 -04:00
Ken Martin
a15ae83e95
fix for expaning libraries prior to generating dsp
2001-05-10 15:32:49 -04:00
Ken Martin
2da0c57d46
added TARGET_LINK_LIBRARY command and support for debug and release libraries to link against
2001-04-30 10:44:00 -04:00
Will Schroeder
54cfe84f3f
ENH:New copyright
2001-04-27 08:01:17 -04:00
Ken Martin
73f04d1409
many fixes and cleanup and features
2001-04-24 16:49:12 -04:00