CPack WiXジェネレータを使用してmsi-packageを生成しようとしています。CMAKE_INSTALL_PATHとCPack WiXジェネレータの両方を使用する
私のCMakeLists.txt
にはCMAKE_INSTALL_PREFIX
が"C:/Program Files/My Project"
に設定されています。プロジェクトのソースコードの重要な部分がこのパスに依存しているため、完全なパスが必要です。また、プロジェクトをいくつかのコンポーネントに分割しました。そのコンポーネントの1つはcore
です。
私はcmake-guiを使用してVisual Studioソリューションを生成することに成功しました。しかし、私はプロジェクトPACKAGE
を構築しようとすると、私は次のエラーを取得する:私は空のCMAKE_INSTALL_PREFIX
を離れるとき
53>EXEC : CPack error : Problem creating temporary directory: D:/Projects/build-Project-MSVC2015/_CPack_Packages/win64/WIX/project-2.3.0-20.AMD64/coreC:/Program Files/My Project
同じエラーが発生します。その場合、この変数は"C:/Program Files/Project_Name"
にデフォルトで初期化され、rrorがあるさ:
53>EXEC : CPack error : Problem creating temporary directory: D:/Projects/build-Project-MSVC2015/_CPack_Packages/win64/WIX/project-2.3.0-20.AMD64/coreC:/Program Files/Project_Name
私はちょうどMy Project
(不在先頭追加C:/
または/
)にCMAKE_INSTALL_PREFIX
を設定した場合にのみ、すべてがうまく動作します。ディレクトリはD:/Projects/build-Project-MSVC2015/_CPack_Packages/win64/WIX/project-2.3.0-20.AMD64/coreMy Project
として作成され、msi-packageが作成されます。
CPackが中間ステップとしてインストールmake DESTDIR="D:/Projects/build-Project-MSVC2015/_CPack_Packages/win64/WIX/project-2.3.0-20.AMD64/core"
しようとしていること、見えますが、cmake's documentationで述べたように:
WARNING: DESTDIR may not be used on Windows because installation prefix usually contains a drive letter like in “C:/Program Files” which cannot be prepended with some other prefix.
は私がCPack WiXのジェネレーターでCMAKE_INSTALL_PREFIX
の使用状況を誤解していますか?これはVisual Studio固有のものですか?または、DESTDIR
を空にするなど、この問題の回避策があります(はい、危険です)。