5

概要:

CMake/CPack で Wix インストーラーを生成するには?

詳細:

Wix を使用するプロジェクトからインストーラーを生成しようとしていますが、明らかに、cmake/cpack は nsis を使用することを主張しています。たとえば、 レポhttps://github.com/ngladitz/cmake-wix-testsuite CMakeLists.txt の次の内容を含む最初の例の「basic」フォルダー

add_executable(hw hw.cpp)
install(TARGETS hw DESTINATION bin)

install(FILES hw.cpp DESTINATION src)

set(CPACK_WIX_UPGRADE_GUID "F9AAAAE2-D6AF-4EA4-BF46-B3E265400CC7")

include(CPack)

cmake を生成した後:

cd <basic-root-folder>
mkdir MY_BUILD
cd MY_BUILD
cmake ..

で生成されたpackage.vcxprojを実行しようとしました

msbuild package.vcxproj

エラーが発生しました

"C:\src\Samples\CPack\cmake-wix-testsuite-master\basic\MY_BUILD\PACKAGE.vcxproj " (デフォルト ターゲット) (1) -> (PostBuildEvent ターゲット) -> EXEC: CPack エラー: NSIS コンパイラが見つかりませんmakensis: インストールされていないか、PATH にない可能性があります [C:\src\Samples\CPack\cmake-wix-testsuite-master\ba sic\MY_BUILD\PACKAGE.vcxproj]

そのため、NSIS ジェネレーターの使用を主張しているようです。

4

3 に答える 3

4

これを行うこともできます:

cmake ..
cpack -G WIX

デフォルトでは、CPack は Windows で NSIS ジェネレーターを使用します。

于 2015-07-13T12:35:31.467 に答える
3

わかりました、私は方法を見つけました

のように CPack ジェネレーターを指定することにより、

cmake -DCPACK_GENERATOR=WIX ..

その後、実行中

msbuild package.vcxproj 

.wixobjログ(および一連のファイル)から抽出したこのような wix を呼び出します

PostBuildEvent:
  setlocal
  cd C:\src\Samples\CPack\cmake-wix-testsuite-master\basic\MY_BUILD.wix
  if %errorlevel% neq 0 goto :cmEnd
  C:
  if %errorlevel% neq 0 goto :cmEnd
  "C:\Program Files (x86)\CMake 3.1.3\bin\cpack.exe" -C Debug --config ./CPackC
  onfig.cmake
  if %errorlevel% neq 0 goto :cmEnd
  :cmEnd
  endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
  :cmErrorLevel
  exit /b %1
  :cmDone
  if %errorlevel% neq 0 goto :VCEnd
  :VCEnd
  CPack: Create package using WIX
  CPack: Install projects
  CPack: - Install project: Project
  CPack: Create package
  CPack: - package: C:/src/Samples/CPack/cmake-wix-testsuite-master/basic/MY_BU
  ILD.wix/Project-0.1.1-win32.msi generated.
FinalizeBuildStatus:
  Deleting file "Win32\Debug\PACKAGE\PACKAGE.tlog\unsuccessfulbuild".
  Touching "Win32\Debug\PACKAGE\PACKAGE.tlog\PACKAGE.lastbuildstate".
Done Building Project "C:\src\Samples\CPack\cmake-wix-testsuite-master\basic\MY
_BUILD.wix\PACKAGE.vcxproj" (default targets).


Build succeeded.
    0 Warning(s)
    0 Error(s)

また、.wix ソース ファイルは次の場所で生成されます。C:\src\Samples\CPack\cmake-wix-testsuite-master\basic\MY_BUILD.wix\\_CPack_Packages\win32\WIX

この arg( ) については、元の cmake によって生成されたCPACK_GENERATOR検査によってわかりました。CPackConfig.cmake

于 2015-04-20T20:20:40.547 に答える