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:
parent
9fca6a7837
commit
0fe0523810
|
@ -1048,9 +1048,8 @@ void cmMakefileTargetGenerator::WriteTargetDriverRule(const char* main_output,
|
||||||
bool relink)
|
bool relink)
|
||||||
{
|
{
|
||||||
// Compute the name of the driver target.
|
// Compute the name of the driver target.
|
||||||
std::string dir = this->Makefile->GetStartOutputDirectory();
|
std::string dir =
|
||||||
dir += "/";
|
this->LocalGenerator->GetRelativeTargetDirectory(*this->Target);
|
||||||
dir += this->LocalGenerator->GetTargetDirectory(*this->Target);
|
|
||||||
std::string buildTargetRuleName = dir;
|
std::string buildTargetRuleName = dir;
|
||||||
buildTargetRuleName += relink?"/preinstall":"/build";
|
buildTargetRuleName += relink?"/preinstall":"/build";
|
||||||
buildTargetRuleName = this->Convert(buildTargetRuleName.c_str(),
|
buildTargetRuleName = this->Convert(buildTargetRuleName.c_str(),
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
ADD_LIBRARY(outlib outlib.c)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
int outlib() { return 456; }
|
||||||
|
|
|
@ -4,7 +4,7 @@ IF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
|
||||||
SET(BUILD_SHARED_LIBS 1)
|
SET(BUILD_SHARED_LIBS 1)
|
||||||
ADD_LIBRARY(testlib testlib.cxx)
|
ADD_LIBRARY(testlib testlib.cxx)
|
||||||
ADD_EXECUTABLE (simple simple.cxx ../simple.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}")
|
ENDIF ("${PROJECT_SOURCE_DIR}" STREQUAL "${ANOTHER_PROJ_SOURCE_DIR}")
|
||||||
|
|
||||||
# test getting a definition from a subdir
|
# test getting a definition from a subdir
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "testdp.h"
|
#include "testdp.h"
|
||||||
|
|
||||||
extern int simple();
|
extern int simple();
|
||||||
|
extern "C" int outlib();
|
||||||
|
|
||||||
int main ()
|
int main ()
|
||||||
{
|
{
|
||||||
|
@ -21,5 +22,9 @@ int main ()
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if(outlib() != 456)
|
||||||
|
{
|
||||||
|
return -4;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
PROJECT(ANOTHER_PROJ)
|
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
|
# subdir to a sibling dir
|
||||||
ADD_SUBDIRECTORY(${OutOfSource_SOURCE_DIR}/${KEN}OutOfSourceSubdir OutOfSourceSubdir )
|
ADD_SUBDIRECTORY(${OutOfSource_SOURCE_DIR}/${KEN}OutOfSourceSubdir OutOfSourceSubdir )
|
||||||
|
|
Loading…
Reference in New Issue