[CMake] INSTALL has changed (Attn. CVS CMake Users!)
Brad King
brad.king at kitware.com
Fri Mar 24 16:11:40 EST 2006
Hello, all:
In preparation for additional features I've had to make a change to the
semantics of the recenlty added INSTALL command. THE CHANGE IS NOT
BACKWARDS COMPATIBLE. Since the command has never been included in an
official release I consider this acceptable. I apologize to users of
CVS CMake but you will have to change your code. I've changed
CMake_VERSION_PATCH from 4 to 5 during the same commit so you can
support both versions until all your users get a newer CVS CMake.
The change adds a third target type to the TARGETS form of the INSTALL
command. Static libraries and import libraries are now considered
"ARCHIVE" targets instead of "LIBRARY" targets. This additional level
of granularity is needed for upcoming features. Anyone using a command
such as
INSTALL(TARGETS ...
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
to install either a shared or static library should change the code to
INSTALL(TARGETS ...
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
to make sure the static library and the import library part of a DLL are
installed as they were previously. Until this change is made in your
code the following will occur. In the case of a static library an error
will be issued complaining that a static library target was specified
but no ARCHIVE DESTINATION was given. In the case of a DLL the import
library previously installed in the LIBRARY DESTINATION will SILENTLY
NOT BE INSTALLED. There is no way to diagnose this case because in the
new format the condition is viewed as the user specifying that the
import library should not be installed.
Read the updated documentation of the INSTALL command for details.
-Brad
More information about the CMake
mailing list