私は常にビルドツリーで実行可能ファイルを実行します(cmakeの「インストール」から実行しません)。ライブラリー、のはそれfruit
を呼びましょう、フレームワークとして構築されています:ビルドツリーにrpath項目を追加した実行可能ファイル
add_library(fruit SHARED ${FRUIT_SOURCES})
set_target_properties(fruit PROPERTIES FRAMEWORK TRUE)
set_target_properties(fruit PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE
INSTALL_NAME_DIR "@rpath/Frameworks" )
は、今私はcmakeのと(executable
と呼ばれる)は、メインアプリケーションのカスタムRPATHを設定します。 (私はいつもcmakeのビルドフォルダに自分のアプリケーションを実行して覚えている)私は、生成されたプログラムのための私のrpathsを定義するためにexecutable
のINSTALL_RPATH
targetプロパティを使用することができると思ったが、これはのみインストール、実行のために働くようだ:
# this rpath is not shown in the generated executable (otool -l -v executable):
set_target_properties(executable PROPERTIES INSTALL_RPATH "@executable_path/lib/")
ビルドツリーで生成されたプログラムにrpath項目を定義/追加する方法は?
PS。このライブラリfruit
は私の実際の問題の単なる例です。ライブラリは、ライブラリにBUILD_WITH_INSTALL_RPATH
プロパティを追加するサブcmakeプロジェクト(gitサブモジュール)で作成されます。しかし、私はこのプロジェクトのコードを変更する可能性があります。私の実行可能ファイルをビルドツリーで動作させる良い方法はありますか?