Cmake FILE()命令预先设置提供文件路径的其他路径

时间:2017-01-04 17:53:32

标签: cmake msys2

我遇到了cmake Findxxx脚本的问题。

我在win10内的msys2 shell上尝试这个,我的源代码位于/home/adrian/dev/libosmscout 在里面我有一个build目录,我可以从中调用cmake ..

在有问题的FindCairo.cmake文件中,我有(除其他外)

IF (CAIRO_INCLUDE_DIRS)
    IF (EXISTS "${CAIRO_INCLUDE_DIRS}/cairo-version.h")
        MESSAGE(STATUS "${CAIRO_INCLUDE_DIRS}/cairo-version.h")
        FILE(READ "${CAIRO_INCLUDE_DIRS}/cairo-version.h" CAIRO_VERSION_CONTENT)        
    ENDIF ()
ENDIF ()

结果是:

-- D:/Dev/Compiler/msys64/mingw32/include/cairo/cairo-version.h

CMake Error at cmake/FindCairo.cmake:39 (FILE):
  file failed to open for reading (No such file or directory):
/home/adrian/dev/libosmscout/D:/Dev/Compiler/msys64/mingw32/include/cairo/cairo-version.h

正如您在MESSAGE命令中看到的那样,CAIRO_INCLUDE_DIRS变量被正确填充,但是对FILE(READ)的调用以某种方式预先设置了我的源目录。

我做错了什么?他为什么要提前?

谢谢!

0 个答案:

没有答案