Commit 58f67032 authored by Bill Hoffman's avatar Bill Hoffman
Browse files

ENH: move to RC 3 and add a fix for -L/path in link commands that was broken by the .dll.lib fix

parent 3dca9a68
...@@ -7,7 +7,7 @@ SET(CMake_VERSION_MAJOR 2) ...@@ -7,7 +7,7 @@ SET(CMake_VERSION_MAJOR 2)
SET(CMake_VERSION_MINOR 4) SET(CMake_VERSION_MINOR 4)
SET(CMake_VERSION_PATCH 5) SET(CMake_VERSION_PATCH 5)
# for an actual release this should not be defined # for an actual release this should not be defined
SET(CMake_VERSION_RC 2) SET(CMake_VERSION_RC 3)
SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}") SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
......
Changes in CMake 2.4.5 Changes in CMake 2.4.5
* Fix fix for foo.dll.lib that does not brea -L/usr/lib in link names
* Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib * Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib
instead of foo.lib instead of foo.lib
* Do not depend on optimized libraries for a debug build and visa versa. * Do not depend on optimized libraries for a debug build and visa versa.
......
...@@ -463,17 +463,16 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder() ...@@ -463,17 +463,16 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder()
#ifdef CM_ORDER_LINK_DIRECTORIES_DEBUG #ifdef CM_ORDER_LINK_DIRECTORIES_DEBUG
fprintf(stderr, "Raw link item [%s]\n", this->RawLinkItems[i].c_str()); fprintf(stderr, "Raw link item [%s]\n", this->RawLinkItems[i].c_str());
#endif #endif
// check to see if the file is a full path or just contains // if it is a full path to an item then separate it from the path
// a / in it and is a path to something // this only works with files and paths
cmStdString& item = this->RawLinkItems[i]; cmStdString& item = this->RawLinkItems[i];
if(cmSystemTools::FileIsFullPath(item.c_str()) if(cmSystemTools::FileIsFullPath(item.c_str()))
|| item.find("/") != item.npos)
{ {
if(cmSystemTools::FileIsDirectory(this->RawLinkItems[i].c_str())) if(cmSystemTools::FileIsDirectory(item.c_str()))
{ {
if(cmSystemTools::IsPathToFramework(this->RawLinkItems[i].c_str())) if(cmSystemTools::IsPathToFramework(item.c_str()))
{ {
this->SplitFramework.find(this->RawLinkItems[i]); this->SplitFramework.find(item.c_str());
cmStdString path = this->SplitFramework.match(1); cmStdString path = this->SplitFramework.match(1);
// Add the -F path if we have not yet done so // Add the -F path if we have not yet done so
if(this->EmittedFrameworkPaths.insert(path).second) if(this->EmittedFrameworkPaths.insert(path).second)
......
...@@ -894,7 +894,14 @@ const char* cmTarget::GetDirectory(const char* config) ...@@ -894,7 +894,14 @@ const char* cmTarget::GetDirectory(const char* config)
{ {
this->Directory = this->Makefile->GetStartOutputDirectory(); this->Directory = this->Makefile->GetStartOutputDirectory();
} }
// if LIBRARY_OUTPUT_PATH or EXECUTABLE_OUTPUT_PATH was relative
// then make them full paths because this directory MUST
// be a full path or things will not work!!!
if(!cmSystemTools::FileIsFullPath(this->Directory.c_str()))
{
this->Directory = this->Makefile->GetCurrentOutputDirectory() +
std::string("/") + this->Directory;
}
if(config) if(config)
{ {
// Add the configuration's subdirectory. // Add the configuration's subdirectory.
......
project(LibName) project(LibName)
# this is a test to make sure that relative path
# LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH work
set(LIBRARY_OUTPUT_PATH lib) set(LIBRARY_OUTPUT_PATH lib)
set(EXECUTABLE_OUTPUT_PATH lib) set(EXECUTABLE_OUTPUT_PATH lib)
add_library(bar SHARED bar.c) add_library(bar SHARED bar.c)
...@@ -6,3 +8,6 @@ add_library(foo SHARED foo.c) ...@@ -6,3 +8,6 @@ add_library(foo SHARED foo.c)
target_link_libraries(foo bar) target_link_libraries(foo bar)
add_executable(foobar foobar.c) add_executable(foobar foobar.c)
target_link_libraries(foobar foo) target_link_libraries(foobar foo)
IF(UNIX)
target_link_libraries(foobar -L/usr/local/lib)
ENDIF(UNIX)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment