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
|
||||
// a / in it and is a path to something
|
||||
cmStdString& item = this->RawLinkItems[i];
|
||||
if(cmSystemTools::FileIsFullPath(item.c_str())
|
||||
|| item.find("/") != item.npos)
|
||||
// if it is a full path to an item then separate it from the path
|
||||
// this only works with files and paths
|
||||
if(cmSystemTools::FileIsFullPath(item.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();
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
// Add the configuration's subdirectory.
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
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)
|
||||
add_library(bar SHARED bar.c)
|
||||
add_library(foo SHARED foo.c)
|
||||
target_link_libraries(foo bar)
|
||||
add_executable(foobar foobar.c)
|
||||
target_link_libraries(foobar foo)
|
||||
IF(UNIX)
|
||||
target_link_libraries(foobar -L/usr/local/lib)
|
||||
ENDIF(UNIX)
|
||||
|
|
Loading…
Reference in New Issue