CMakeのパスを正規化する堅牢な方法はありますか?CMake:パスを正規化する方法は?
例:この例では
# 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
は、パスコンポーネントとしてそれを使用する前に(すなわち、スラッシュとバックスラッシュを置き換えることである)MY_ROOT_DIR
を正規化するために必要とされるであろう。あなたはCMakeでこれをどうやってやりますか?
CMake(またはツールチェーンのさらに下にあるツール)は、区切り記号(/
または\
)が混在しているパスを処理することも、できないこともあります。 CMakeは標準セパレータとして/
を使用します。間違ったパス区切り\
でパスをCMakeのによって生成された典型的な警告は次のようになります:
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.
感謝をこの上の任意のヒントを!
私は同意します。答えは確かです:) – normanius
...私は私の問題の解決策を探すときにその他の投稿を見つけることができませんでした。 – normanius