[CMake] Packaging issues
Volker Enderlein
volker.enderlein at ifm-chemnitz.de
Mon Apr 3 11:50:09 EDT 2017
Am 03/04/2017 um 12:30 schrieb Volker Enderlein:
> Hi,
>
>
> I'm facing problems using the packaging with CPACK.
>
> I try to build three different packages, a MSI (via WIX), an IFW, and
> a ZIP package.
>
> According to the documentation I set the following variables in my
> CMakeLists.txt (and a few more which are required):
>
> set(CPACK_WIX_ROOT "C:/Temp/WiX-3.10/binaries")
>
> set(QTIFWDIR "${GLOBAL}/Qt/Tools/QtInstallerFramework/2.0/bin")
>
> set(CPACK_GENERATOR "WIX;IFW;ZIP")
>
> After creating the build dir and running from there
>
> cmake -G "Visual Studio 14 2015 Win64" ..\TestProject
>
> the files CMakeCache.txt, CPackConfig.cmake, CPackSourceConfig.cmake,
> and CPackProperties.cmake are generated.
>
> When running `cpack -C Release` to build all three installers at once,
> the first one (WIX) is built, but the second one (QtIFW) fails with
> the messages
>
> CPack Error: Cannot find QtIFW compiler "binarycreator": likely it is
> not installed, or not in your PATH
> CPack Error: Cannot initialize the generator IFW
>
> I inspected the CMakeCache.txt file but found the following entries
> properly defined:
>
> //QtIFW binarycreator command line client
> CPACK_IFW_BINARYCREATOR_EXECUTABLE:FILEPATH=N:/Global/Qt/Tools/QtInstallerFramework/2.0/bin/binarycreator.exe
>
>
> //QtIFW devtool command line client
> CPACK_IFW_DEVTOOL_EXECUTABLE:FILEPATH=N:/Global/Qt/Tools/QtInstallerFramework/2.0/bin/devtool.exe
>
>
> //QtIFW installer executable base
> CPACK_IFW_INSTALLERBASE_EXECUTABLE:FILEPATH=N:/Global/Qt/Tools/QtInstallerFramework/2.0/bin/installerbase.exe
>
>
> //QtIFW repogen command line client
> CPACK_IFW_REPOGEN_EXECUTABLE:FILEPATH=N:/Global/Qt/Tools/QtInstallerFramework/2.0/bin/repogen.exe
>
>
> //Enable to build 7-Zip source packages
> CPACK_SOURCE_7Z:BOOL=ON
>
> //Enable to build ZIP source packages
> CPACK_SOURCE_ZIP:BOOL=ON
>
> //Path to a program.
> CPACK_WIX_CANDLE_EXECUTABLE:FILEPATH=C:/Temp/WiX-3.10/binaries/candle.exe
>
> //Path to a program.
> CPACK_WIX_LIGHT_EXECUTABLE:FILEPATH=C:/Temp/WiX-3.10/binaries/light.exe
>
> But when I checked the CPack*Config.cmake files none of the entries
> above are referenced. After running the `cmake -G "Visual Studio 14
> 2015 Win64" ..\TestProject` a second time everything is fine; the
> entries are referenced in CPack*Config.cmake files and all three
> installers can be built.
>
> So I really get stuck at this point.
>
>
> Any ideas what could be the issue and how to avoid it?
>
>
> Cheers Volker
>
A close follow up.
I finally figured out what didn't work.
The setting of the QTIFWDIR variable is not saved to the
CPack*Config.cmake files. But the CMAKE_WIX_ROOT variable is. Those
variables seem to be evaluated at runtime by CPack. Therefore the WIX
build run successfully but the IFW build complained about a the path.
Adding the variable with its current setting made everything run as
expected.
Cheers Volker
More information about the CMake
mailing list