我遇到了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)的调用以某种方式预先设置了我的源目录。
我做错了什么?他为什么要提前?
谢谢!