소스 검색

BUG: INCLUDE_DIRECTORIES should interpret relative path arguments with respect to the current source directory.

Brad King 19 년 전
부모
커밋
21089bf93f
4개의 변경된 파일10개의 추가작업 그리고 3개의 파일을 삭제
  1. 7 0
      Source/cmIncludeDirectoryCommand.cxx
  2. 1 1
      Tests/Complex/CMakeLists.txt
  3. 1 1
      Tests/ComplexOneConfig/CMakeLists.txt
  4. 1 1
      Tests/ComplexRelativePaths/CMakeLists.txt

+ 7 - 0
Source/cmIncludeDirectoryCommand.cxx

@@ -49,6 +49,13 @@ bool cmIncludeDirectoryCommand
       }
       }
     std::string unixPath = *i;
     std::string unixPath = *i;
     cmSystemTools::ConvertToUnixSlashes(unixPath);
     cmSystemTools::ConvertToUnixSlashes(unixPath);
+    if(!cmSystemTools::FileIsFullPath(unixPath.c_str()))
+      {
+      std::string tmp = this->Makefile->GetStartDirectory();
+      tmp += "/";
+      tmp += unixPath;
+      unixPath = tmp;
+      }
     this->Makefile->AddIncludeDirectory(unixPath.c_str(), before);
     this->Makefile->AddIncludeDirectory(unixPath.c_str(), before);
     }
     }
   return true;
   return true;

+ 1 - 1
Tests/Complex/CMakeLists.txt

@@ -92,7 +92,7 @@ ENDIF(${fooCACHE_TEST_VAR2} MATCHES bar)
 # (BEFORE is for coverage)
 # (BEFORE is for coverage)
 #
 #
 INCLUDE_DIRECTORIES(
 INCLUDE_DIRECTORIES(
-  ${Complex_SOURCE_DIR}/Library
+  Library
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
 )
 )

+ 1 - 1
Tests/ComplexOneConfig/CMakeLists.txt

@@ -92,7 +92,7 @@ ENDIF(${fooCACHE_TEST_VAR2} MATCHES bar)
 # (BEFORE is for coverage)
 # (BEFORE is for coverage)
 #
 #
 INCLUDE_DIRECTORIES(
 INCLUDE_DIRECTORIES(
-  ${Complex_SOURCE_DIR}/Library
+  Library
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
 )
 )

+ 1 - 1
Tests/ComplexRelativePaths/CMakeLists.txt

@@ -92,7 +92,7 @@ ENDIF(${fooCACHE_TEST_VAR2} MATCHES bar)
 # (BEFORE is for coverage)
 # (BEFORE is for coverage)
 #
 #
 INCLUDE_DIRECTORIES(
 INCLUDE_DIRECTORIES(
-  ${Complex_SOURCE_DIR}/Library
+  Library
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_SOURCE_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
   ${Complex_BINARY_DIR}/../../Source
 )
 )