Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于路径相等的CMake命令_C++_Cmake - Fatal编程技术网

C++ 用于路径相等的CMake命令

C++ 用于路径相等的CMake命令,c++,cmake,C++,Cmake,当且仅当两条路径指向同一位置时(即使路径不是逐字相等的字符串),是否有一个CMake命令返回true 差不多 set(x ../foo) set(y C:/cmaketest/foo) if (x PATHEQUAL y) { message(status "YAY") } 这基本上是可行的。它似乎没有考虑的一种情况是不区分大小写的文件系统(这包括OS X和Windows上的默认文件系统,但不包括Linux) 这将产生: [11:55am][wlynch@watermelon blah]

当且仅当两条路径指向同一位置时(即使路径不是逐字相等的字符串),是否有一个CMake命令返回true

差不多

set(x ../foo)
set(y C:/cmaketest/foo)
if (x PATHEQUAL y)
{
   message(status "YAY")
}

这基本上是可行的。它似乎没有考虑的一种情况是不区分大小写的文件系统(这包括OS X和Windows上的默认文件系统,但不包括Linux)

这将产生:

[11:55am][wlynch@watermelon blah] touch foo.txt
[11:55am][wlynch@watermelon blah] cmake . |& head -n 1
-- Strings are Equal

@sharth我假设你说使用这个方法将两个值转换为绝对路径,然后可能也将它们转换为cmake路径,然后将字符串作为相等值进行比较,这是可行的,但似乎比它应该做的要多…我想知道是否有内置命令。我已将该url扩展为完整答案。如果这不是您要找的,请告诉我。如果我想比较
CMAKE\u CURRENT\u SOURCE\u DIR
CMAKE\u CURRENT\u BINARY\u DIR
我无法以良好的级别取消引用,该怎么办。以太它会在源和二进制之间找到差异,或者在它们不同时找到相同的值。
[11:55am][wlynch@watermelon blah] touch foo.txt
[11:55am][wlynch@watermelon blah] cmake . |& head -n 1
-- Strings are Equal