BUG: Fixed out-of-source subdirectories to work when they are also out-of-binary. Updated the OutOfSource test to test this feature.

This commit is contained in:
Brad King 2006-10-09 21:25:58 -04:00
parent 9fca6a7837
commit 0fe0523810
6 changed files with 17 additions and 4 deletions

View File

@ -1048,9 +1048,8 @@ void cmMakefileTargetGenerator::WriteTargetDriverRule(const char* main_output,
bool relink)
{
// Compute the name of the driver target.
std::string dir = this->Makefile->GetStartOutputDirectory();
dir += "/";
dir += this->LocalGenerator->GetTargetDirectory(*this->Target);
std::string dir =
this->LocalGenerator->GetRelativeTargetDirectory(*this->Target);
std::string buildTargetRuleName = dir;
buildTargetRuleName += relink?"/preinstall":"/build";
buildTargetRuleName = this->Convert(buildTargetRuleName.c_str(),

View File

@ -0,0 +1,2 @@
ADD_LIBRARY(outlib outlib.c)

View File

@ -0,0 +1,2 @@
int outlib() { return 456; }

View File

@ -4,7 +4,7 @@ IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
SET(BUILD_SHARED_LIBS 1)
ADD_LIBRARY(testlib testlib.cxx)
ADD_EXECUTABLE (simple simple.cxx ../simple.cxx)
TARGET_LINK_LIBRARIES(simple testlib)
TARGET_LINK_LIBRARIES(simple testlib outlib)
ENDIF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
# test getting a definition from a subdir

View File

@ -5,6 +5,7 @@
#include "testdp.h"
extern int simple();
extern "C" int outlib();
int main ()
{
@ -21,5 +22,9 @@ int main ()
{
return -1;
}
if(outlib() != 456)
{
return -4;
}
return 0;
}

View File

@ -1,3 +1,8 @@
PROJECT(ANOTHER_PROJ)
# subdir to an out of source and out of binary directory
ADD_SUBDIRECTORY(${OutOfSource_SOURCE_DIR}/../OutOfBinary
${OutOfSource_BINARY_DIR}/../OutOfBinary)
# subdir to a sibling dir
ADD_SUBDIRECTORY(${OutOfSource_SOURCE_DIR}/${KEN}OutOfSourceSubdir OutOfSourceSubdir )