Gibt es eine robuste Möglichkeit, Pfade in CMake zu normalisieren?CMake: Wie normalisiert man Pfade?
Beispiel:
# Let's assume that an environment variable MY_ROOT_DIR is set
# that points to some directory.
set(MYFILE "$ENV{MY_ROOT_DIR}/somefile.txt")
message(${MYFILE})
# This will result for example in
# Win: C:\path\to\my\root\dir/somefile.txt
# Unix based: /path/to/my/root/dir/somefile.txt
In diesem Beispiel würde es MY_ROOT_DIR
zu normalisieren erforderlich (dh umgekehrte Schrägstriche mit Schrägstrichen ersetzen) vor der Verwendung als Pfadkomponente. Wie würdest du das in CMake machen?
CMake (oder die Werkzeuge weiter unten in der Toolchain) können Pfade mit gemischten Separatoren (/
oder \
) verarbeiten oder nicht. CMake verwendet /
als Standardtrennzeichen. Eine typische Warnung von CMake für Wege mit dem falschen Weg Separator erzeugte \
kann wie folgt aussehen:
CMake Warning (dev) at cmake_install.cmake:5 (set):
Syntax error in cmake code at
C:/path/to/my/root/build/cmake_install.cmake:5
when parsing string
C:\path\to\my\root/somefile.txt
Invalid escape sequence \p
Policy CMP0010 is not set: Bad variable reference syntax is an error. Run
"cmake --help-policy CMP0010" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Vielen Dank für alle Hinweise zu diesem!
Ich bin damit einverstanden. Die Antwort ist sicherlich :) – normanius
... obwohl ich nicht in der Lage war, diesen anderen Beitrag zu finden, wenn ich nach einer Lösung für mein Problem suche. – normanius