BUG: better fix for .dll.lib problem
This commit is contained in:
parent
464e3c137e
commit
5ff037e894
|
@ -466,8 +466,9 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder()
|
||||||
// check to see if the file is a full path or just contains
|
// check to see if the file is a full path or just contains
|
||||||
// a / in it and is a path to something
|
// a / in it and is a path to something
|
||||||
cmStdString& item = this->RawLinkItems[i];
|
cmStdString& item = this->RawLinkItems[i];
|
||||||
if(cmSystemTools::FileIsFullPath(item.c_str())
|
// if it is a full path to an item then separate it from the path
|
||||||
|| item.find("/") != item.npos)
|
// this only works with files and paths
|
||||||
|
if(cmSystemTools::FileIsFullPath(item.c_str()))
|
||||||
{
|
{
|
||||||
if(cmSystemTools::FileIsDirectory(this->RawLinkItems[i].c_str()))
|
if(cmSystemTools::FileIsDirectory(this->RawLinkItems[i].c_str()))
|
||||||
{
|
{
|
||||||
|
|
|
@ -864,7 +864,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.
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
project(LibName)
|
project(LibName)
|
||||||
set(LIBRARY_OUTPUT_PATH lib)
|
# this is a test to make sure that relative path
|
||||||
|
# LIBRARY_OUTPUT_PATH and EXECUTABLE_OUTPUT_PATH work
|
||||||
|
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)
|
||||||
add_library(foo SHARED foo.c)
|
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)
|
||||||
|
|
Loading…
Reference in New Issue