Gonzalo Garramuño wrote:
Andreas Pakulat wrote:
On 04.03.08 10:51:10, Gonzalo Garramuño wrote:
Alexander Neundorf wrote:
Brad just documented this a few days ago:
http://www.cmake.org/pipermail/cmake-commits/2008-February/00.html
This is a pretty horrible and drastic change with no heads up. Why
was the variable name change even needed? I have tons of code
already coded that depends on those variables.
So? There's nowhere stated that those variables go away, they are just
deprecated and you shouldn't use them.
Well... That's what deprecated is. It means the variables may go away
or not work properly anymore in either a current or future cmake
version. It also means they are no longer supported (bugs, etc).
The term deprecated does not appear in the documentation. They will
probably never go away and their meaning will not change.
Apart from that that only applies
to CMake 2.6, everythings fine if your projects require CMake 2.4.
Well, I'm using cmake 2.5 from SVN. I'm trying to understand what does
the name change even accomplish? If the renaming had been to make the
variables prefixed with CMAKE_*, I would understand it as a
consolidation with other cmake variables. But as is, I don't get the
need for the change at all.
There are two problems with the old variables:
- They are scoped per-directory instead of per-target
- On Windows the .dll and .lib both go to LIBRARY_OUTPUT_PATH
but the .dll should go to EXECUTABLE_OUTPUT_PATH
Neither of these can ever be changed for compatibility reasons. Instead
we inroduced the ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, and
RUNTIME_OUTPUT_DIRECTORY target properties. These are scoped per-target
and have the correct meaning for .dll/.lib separation on Windows. The
CMAKE_*_OUTPUT_DIRECTORY variables are used to initialize the properties
to make it easy for users to set them globally if desired.
Also, from an API perspective, I find this hilarious:
ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_PATH, and RUNTIME_OUTPUT_DIRECTORY
Either name them all DIRECTORY or PATH to be consistent.
It is LIBRARY_OUTPUT_DIRECTORY. That was a typo in the documentation of
the old LIBRARY_OUTPUT_PATH variable which I've now fixed.
-Brad
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake