CPack and WIX: Preselected components

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

CPack and WIX: Preselected components

Micha Renner
With the NSIS generator I can create a dialog with a drop_down list
with two elements default and developer. Default is selected by default
when the dialog starts, so the default parts of the package are
installed. Selecting developer the devlop parts are installed and the
default files not.

How can I do the same with the WiX generator?

With code below the WiX generator installs the complete package.
What I want is that the user can selected the develop part if he wants
it.


_______________________________________________________________
Example as it works with NSIS. There is nothing specific for NSIS.

ADD_LIBRARY(mylib mylib.c)

ADD_EXECUTABLE(myapp myapp.c mylib.h)
TARGET_LINK_LIBRARIES(myapp mylib)

INSTALL(TARGETS mylib ARCHIVE DESTINATION lib COMPONENT libraries)
INSTALL(TARGETS myapp RUNTIME DESTINATION bin COMPONENT applications)
INSTALL(FILES mylib.h DESTINATION include COMPONENT headers)
INSTALL(FILES free.txt DESTINATION doc COMPONENT dokumentation)

# WIX specific
SET(CPACK_WIX_UPGRADE_GUID 939B61C9-8E66-4876-A425-F7CDD7E6A6B2)
SET(CPACK_GENERATOR WIX)

INCLUDE(CPackComponent)

cpack_add_install_type(Default DISPLAY_NAME Default)
cpack_add_install_type(Developer)

cpack_add_component(applications DISPLAY_NAME "App" DESCRIPTION
"Application only"
    GROUP "Runtime" INSTALL_TYPES Default)

cpack_add_component(dokumentation DISPLAY_NAME "Doc" DESCRIPTION "Doc
for the app"
    GROUP "Runtime" INSTALL_TYPES Default)
       
cpack_add_component(libraries DISPLAY_NAME "lib" DESCRIPTION "For
devloper only"
        GROUP "Development" INSTALL_TYPES Developer)

cpack_add_component(headers DISPLAY_NAME "C++ Headers" DESCRIPTION
"C/C++ header files for use with MyLib"
    DEPENDS libraries INSTALL_TYPES Developer GROUP "Development")

cpack_add_component_group(Runtime)
cpack_add_component_group(Development DESCRIPTION "All you need for
development")

SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_PARENT_GROUP "Runtime")

INCLUDE(CPack)

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: CPack and WIX: Preselected components

CMake mailing list
Micha,

Unfortunately, the WiX generator does not currently support component
installation, which is what's needed to make the INSTALL_TYPES argument
work.

We would welcome a merge request which adds this support.

Kyle

On Thu, 2019-01-17 at 19:28 +0100, Micha Renner wrote:

> With the NSIS generator I can create a dialog with a drop_down list
> with two elements default and developer. Default is selected by
> default
> when the dialog starts, so the default parts of the package are
> installed. Selecting developer the devlop parts are installed and the
> default files not. 
>
> How can I do the same with the WiX generator?
>
> With code below the WiX generator installs the complete package. 
> What I want is that the user can selected the develop part if he
> wants
> it.
>
>
> _______________________________________________________________
> Example as it works with NSIS. There is nothing specific for NSIS.
>
> ADD_LIBRARY(mylib mylib.c)
>
> ADD_EXECUTABLE(myapp myapp.c mylib.h)
> TARGET_LINK_LIBRARIES(myapp mylib)
>
> INSTALL(TARGETS mylib ARCHIVE DESTINATION lib COMPONENT libraries)
> INSTALL(TARGETS myapp RUNTIME DESTINATION bin COMPONENT applications)
> INSTALL(FILES mylib.h DESTINATION include COMPONENT headers)
> INSTALL(FILES free.txt DESTINATION doc COMPONENT dokumentation)
>
> # WIX specific
> SET(CPACK_WIX_UPGRADE_GUID 939B61C9-8E66-4876-A425-F7CDD7E6A6B2)
> SET(CPACK_GENERATOR WIX)
>
> INCLUDE(CPackComponent)
>
> cpack_add_install_type(Default DISPLAY_NAME Default)
> cpack_add_install_type(Developer)
>
> cpack_add_component(applications DISPLAY_NAME "App" DESCRIPTION
> "Application only"
>     GROUP "Runtime" INSTALL_TYPES Default)
>
> cpack_add_component(dokumentation DISPLAY_NAME "Doc" DESCRIPTION "Doc
> for the app"
>     GROUP "Runtime" INSTALL_TYPES Default)
>
> cpack_add_component(libraries DISPLAY_NAME "lib" DESCRIPTION "For
> devloper only"
> GROUP "Development" INSTALL_TYPES Developer)
>
> cpack_add_component(headers DISPLAY_NAME "C++ Headers" DESCRIPTION
> "C/C++ header files for use with MyLib"
>     DEPENDS libraries INSTALL_TYPES Developer GROUP "Development")
>
> cpack_add_component_group(Runtime)
> cpack_add_component_group(Development DESCRIPTION "All you need for
> development")
>
> SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_PARENT_GROUP "Runtime")
>
> INCLUDE(CPack)
>
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake