View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002691CMakeCMakepublic2006-01-06 09:312015-06-01 08:38
ReporterBrad King 
Assigned ToBrad King 
PrioritylowSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002691: New install specification framework or command
DescriptionMany users have had problems getting specific install behavior. This feature request can be used to list desired install features. So far we have:

- Specify absolute install location, not relative to CMAKE_INSTALL_PREFIX.
- Change the name of a file as it is installed.
- Bug 0001201
- Bug 0001481
- Bug 0001694
- Bug 0001695
- Bug 0002513
- Bug 0002527

Currently the INSTALL_* commands just record information which the generators put in cmake_install.cmake files that are then executed for the real installation. This design may need adjustment to fully accommodate all these features.
TagsNo tags attached.
Attached Files

 Relationships
related to 0003602closedBrad King Add possibility to change file owner into install macro 

  Notes
(0003760)
Brad King (manager)
2006-02-19 15:28

I've created a new cmInstallGenerator class hierarchy to generate install rules. Instances are created by the INSTALL command. The following changes introduce the framework and close bug#1481 and bug#1695:

/cvsroot/CMake/CMake/bootstrap,v <-- bootstrap
new revision: 1.76; previous revision: 1.75
/cvsroot/CMake/CMake/Source/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.270; previous revision: 1.269
/cvsroot/CMake/CMake/Source/cmInstallCommand.cxx,v <-- cmInstallCommand.cxx
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallCommand.h,v <-- cmInstallCommand.h
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallGenerator.cxx,v <-- cmInstallGenerator.cxx
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallGenerator.h,v <-- cmInstallGenerator.h
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallScriptGenerator.cxx,v <-- cmInstallScriptGenerator.cxx
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallScriptGenerator.h,v <-- cmInstallScriptGenerator.h
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.cxx,v <-- cmInstallTargetGenerator.cxx
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.h,v <-- cmInstallTargetGenerator.h
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallTargetsCommand.h,v <-- cmInstallTargetsCommand.h
new revision: 1.11; previous revision: 1.10
/cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v <-- cmLocalGenerator.cxx
new revision: 1.104; previous revision: 1.103
/cvsroot/CMake/CMake/Source/cmLocalGenerator.h,v <-- cmLocalGenerator.h
new revision: 1.44; previous revision: 1.43
/cvsroot/CMake/CMake/Source/cmMakefile.cxx,v <-- cmMakefile.cxx
new revision: 1.322; previous revision: 1.321
/cvsroot/CMake/CMake/Source/cmMakefile.h,v <-- cmMakefile.h
new revision: 1.175; previous revision: 1.174
/cvsroot/CMake/CMake/Source/cmSetTargetPropertiesCommand.h,v <-- cmSetTargetPropertiesCommand.h
new revision: 1.16; previous revision: 1.15
/cvsroot/CMake/CMake/Tests/SimpleInstall/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.34; previous revision: 1.33
(0003761)
Brad King (manager)
2006-02-19 15:47

Having introduced the framework and done some rpath fixes the new set of open issues is:

- Specify absolute install location for FILES and PROGRAMS (TARGETS is fixed).
- Change the name of FILES (and PROGRAMS?) as they are installed (this may not make sense for TARGETS due to things like soname, and may not be as useful).
- Bug#1201 (set ownership/permissions, may also allow installation of PROGRAMS using the same interface as FILES).
- Bug#1694 (install an entire directory).
- Bug#2513 (set install_name on Mac OSX).
(0003762)
Brad King (manager)
2006-02-19 18:48

The following changes add support in the new framework for installing FILES and PROGRAMS. This addresses the request for absolute path install destinations.

/cvsroot/CMake/CMake/bootstrap,v <-- bootstrap
new revision: 1.77; previous revision: 1.76
/cvsroot/CMake/CMake/Source/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.271; previous revision: 1.270
/cvsroot/CMake/CMake/Source/cmInstallCommand.cxx,v <-- cmInstallCommand.cxx
new revision: 1.4; previous revision: 1.3
/cvsroot/CMake/CMake/Source/cmInstallCommand.h,v <-- cmInstallCommand.h
new revision: 1.3; previous revision: 1.2
/cvsroot/CMake/CMake/Source/cmInstallFilesCommand.h,v <-- cmInstallFilesCommand.h
new revision: 1.15; previous revision: 1.14
/cvsroot/CMake/CMake/Source/cmInstallFilesGenerator.cxx,v <-- cmInstallFilesGenerator.cxx
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallFilesGenerator.h,v <-- cmInstallFilesGenerator.h
initial revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallProgramsCommand.h,v <-- cmInstallProgramsCommand.h
new revision: 1.12; previous revision: 1.11
/cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v <-- cmLocalGenerator.cxx
new revision: 1.105; previous revision: 1.104
/cvsroot/CMake/CMake/Tests/SimpleInstall/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.36; previous revision: 1.35
(0003833)
Brad King (manager)
2006-03-03 18:48

The following changes add RENAME and PERMISSIONS options to the INSTALL command's FILES and PROGRAMS mode.

/cvsroot/CMake/CMake/Source/cmFileCommand.cxx,v <-- cmFileCommand.cxx
new revision: 1.40; previous revision: 1.39
/cvsroot/CMake/CMake/Source/cmInstallCommand.cxx,v <-- cmInstallCommand.cxx
new revision: 1.5; previous revision: 1.4
/cvsroot/CMake/CMake/Source/cmInstallCommand.h,v <-- cmInstallCommand.h
new revision: 1.4; previous revision: 1.3
/cvsroot/CMake/CMake/Source/cmInstallFilesGenerator.cxx,v <-- cmInstallFilesGenerator.cxx
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallFilesGenerator.h,v <-- cmInstallFilesGenerator.h
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/cmInstallGenerator.cxx,v <-- cmInstallGenerator.cxx
new revision: 1.4; previous revision: 1.3
/cvsroot/CMake/CMake/Source/cmInstallGenerator.h,v <-- cmInstallGenerator.h
new revision: 1.3; previous revision: 1.2
/cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v <-- cmLocalGenerator.cxx
new revision: 1.110; previous revision: 1.109
/cvsroot/CMake/CMake/Tests/SimpleInstall/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.41; previous revision: 1.40
/cvsroot/CMake/CMake/Tests/SimpleInstall/inst.cxx,v <-- inst.cxx
new revision: 1.5; previous revision: 1.4
/cvsroot/CMake/CMake/Tests/SimpleInstall/inst2.cxx,v <-- inst2.cxx
initial revision: 1.1
(0003834)
Brad King (manager)
2006-03-03 18:50

Having implemented some features the new set of open issues is:

- Bug 0001201 (set permissions using umask).
- Bug 0001694 (install an entire directory).

We should probably also allow setting of the install destination directory's permissions.
(0003835)
Brad King (manager)
2006-03-03 19:30

The following changes add the PERMISSIONS option to the TARGETS mode of the INSTALL command.

/cvsroot/CMake/CMake/Source/cmInstallCommand.cxx,v <-- cmInstallCommand.cxx
new revision: 1.6; previous revision: 1.5
/cvsroot/CMake/CMake/Source/cmInstallCommand.h,v <-- cmInstallCommand.h
new revision: 1.5; previous revision: 1.4
/cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.cxx,v <-- cmInstallTargetGenerator.cxx
new revision: 1.8; previous revision: 1.7
/cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.h,v <-- cmInstallTargetGenerator.h
new revision: 1.4; previous revision: 1.3
/cvsroot/CMake/CMake/Tests/SimpleInstall/CMakeLists.txt,v <-- CMakeLists.txt
new revision: 1.42; previous revision: 1.41
(0003857)
Brad King (manager)
2006-03-08 00:27

More feature requests:

- Set owner and group for installed files/dirs
- Remove files/dirs during installation.
(0003999)
Brad King (manager)
2006-04-18 10:31

These changes create more sensible default permissions:

/cvsroot/CMake/CMake/Source/cmFileCommand.cxx,v <-- cmFileCommand.cxx
new revision: 1.56; previous revision: 1.55
/cvsroot/CMake/CMake/Source/cmInstallCommand.h,v <-- cmInstallCommand.h
new revision: 1.9; previous revision: 1.8
(0004711)
Brad King (manager)
2006-08-21 16:56

Bug 0001694 has been closed by implementing an INSTALL(DIRECTORY) command.
(0004742)
Brad King (manager)
2006-08-25 09:36

Installation after the first time can be greatly improved in speed:

http://bugs.kde.org/show_bug.cgi?id=132074 [^]

For 132074 we could store two md5 sums for each installed file. One is
associated with the file in the build tree that was copied. The other
is associated with the file in the install tree. When the md5 sum
timestamp for either one is out of date during installation it is
recomputed. When the file is installed the installed file's md5sum is
updated by copying the sum from the build tree version. This will allow
very fast diffs with minimal re-reads of the files when installing only
unchanged files.

This could be generalized into a file comparison/copy object that
maintains the md5sums in memory for an arbitrary set of files. It could
then support save/load state.

MD5 sum links:

RFC1321-based (RSA-free) MD5 library
http://sourceforge.net/projects/libmd5-rfc [^]

In GDCM (CMakeLists.txt):
http://svn.sourceforge.net/viewvc/gdcm/Utilities/md5/ [^]

(0004748)
Brad King (manager)
2006-08-25 10:06

Bug 0003602 requests owner/group setting.
(0004800)
Brad King (manager)
2006-08-29 15:10

Bug 0003572 requests empty directory installation and has now been closed.
(0004805)
Brad King (manager)
2006-08-29 15:30

Bug 0003349 requests faster re-installation of unchanged files.
(0030517)
Brad King (manager)
2012-08-13 10:36

Sending issues I'm not actively working on to the backlog to await someone with time for them.

If an issue you care about is sent to the backlog when you feel it should have been addressed in a different manner, please bring it up on the CMake mailing list for discussion. Sign up for the mailing list here, if you're not already on it:

 http://www.cmake.org/mailman/listinfo/cmake [^]

It's easy to re-activate a bug here if you can find a CMake developer or contributor who has the bandwidth to take it on.
(0037704)
Brad King (manager)
2015-01-15 14:50

Resolving this issue because the install() command has been stable for years.

Any remaining issues can be dealt with individually.
(0038838)
Robert Maynard (manager)
2015-06-01 08:38

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2012-08-13 10:36 Brad King Status assigned => backlog
2012-08-13 10:36 Brad King Note Added: 0030517
2015-01-15 14:50 Brad King Note Added: 0037704
2015-01-15 14:50 Brad King Status backlog => resolved
2015-01-15 14:50 Brad King Resolution open => fixed
2015-01-15 14:51 Brad King Relationship added related to 0003602
2015-06-01 08:38 Robert Maynard Note Added: 0038838
2015-06-01 08:38 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team