カレントディレクトリとしてビルドディレクトリを、絶対パスへの相対パスを変換し、あなたがCMakeの:CMakeのでは
get_filename_component(ABSOLUTE_PATH ${RELATIVE_PATH} ABSOLUTE)
を使用して、絶対パスに相対パスに変換することができますただし、このような../../other_program/
としてパスがソースディレクトリに基づいています(すなわち、CMakeLists.txt
ファイルがあるディレクトリ)であり、ビルドディレクトリ(すなわち、cmake
が呼び出されるディレクトリ)ではありません。これは、コマンドラインオプションとして相対パスを指定すると混乱を招く可能性があります。
get_filename_component
に、現在のソースディレクトリの代わりに現在のバイナリディレクトリの相対パスを設定する必要があることを伝える方法はありますか?
はい、この解決策はCMakeのバージョン3.4と高いために理想的です。古いバージョンのCMake(バージョン2.6まで)では、mike.didの解決策がこれを処理する最良の方法です。 –