Re: [CMake] CPack-NSIS component-based installer lacking components page...might I be forgetting something?

2012-01-16 Thread Patrick Ryan
Hi Eric,

Thanks for the response. I should clarify that the application we're
building is ParaView.

On Fri, Jan 13, 2012 at 5:13 PM, Eric Noulard eric.noul...@gmail.com wrote:
 2012/1/13 Patrick Ryan pr...@objectivity.ca:
 Hi,

 I'm using CMake 2.8.6 to generate an NSIS installer. We have two
 separate projects; an application and a set of plugins to be used by
 the application. The plugins are composed of four separate components
 that can be selected during the installation (Filters, NonBSDPlugins,
 Readers, Writers). When built on its own, the plugins installer
 includes the 'Select Components' page as expected. When building the
 application, which also includes the plugins project, no components
 page appears.

 How does the application includes the plugins project?

We have the following line including our Plugins directory:

ADD_SUBDIRECTORY(PVGPlugins)

 My CPackConfig.cmake file has the following:

 SET(CPACK_COMPONENTS_ALL
 BrandedRuntime;Development;Filters;NonBSDPlugins;Readers;Writers;Runtime;RuntimeLibraries;Unspecified)

 SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN TRUE)

 SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED TRUE)

 Am I missing anything blatantly obvious? I'm quite stuck and haven't
 been able to find anyone who's had a similar problem.

 CPack does not work that well for
 multiple project in one package installer.

 see discussion here
 http://public.kitware.com/Bug/view.php?id=11808

 I can provide more details if necessary...apologies if I haven't
 included enough.

 Was your CPackConfig.cmake written by hand or generated
 with include(CPack) ?

It was generated.

 Did you include(CPack) twice?


 Like one time in the application project and one time in the plugins project?
 If yes tries to include it only once.

We include it in the Plugins project CMakeList but it is only called
if we are building the Plugins project. That said, we haven't been
able to find the 'other' include(CPack) in any of ParaView's
cmakelists.

 see related bugs with multiple CPack inclusion:
 http://public.kitware.com/Bug/view.php?id=10751

 --
 Erk
 Membre de l'April - « promouvoir et défendre le logiciel libre » -
 http://www.april.org

Our Plugins project's CMakeList has a conditional to look for
ParaView's source directory. If it's found (building the entire
application) this is all that's being called:

ADD_SUBDIRECTORY(Filters)
ADD_SUBDIRECTORY(Readers)
ADD_SUBDIRECTORY(Writers)
ADD_SUBDIRECTORY(NonBSDPlugins)
set(CPACK_COMPONENTS_ALL PVGFilters PVGReaders PVGWriters PVGNonBSDPlugins)

This is what's not working for us. Below is what is called when we
aren't building the entire application. This is working as we expect.

PROJECT(PVGPlugins)
FIND_PACKAGE(ParaView REQUIRED)
INCLUDE(${PARAVIEW_USE_FILE})

SET (PVGPlugins_VERSION_MAJOR 1)
SET (PVGPlugins_VERSION_MINOR 0)
SET (PVGPlugins_VERSION_PATCH 0)

SET(PVGPlugins_VERSION
${PVGPlugins_VERSION_MAJOR}.${PVGPlugins_VERSION_MINOR})
SET(PVGPlugins_VERSION_FULL ${PVGPlugins_VERSION}.${PVGPlugins_VERSION_PATCH})

SET(PVGPlugins_INSTALL_BIN_DIR bin)

SET(QT_USE_QTUITOOLS TRUE)
SET(QT_USE_QTXML TRUE)  # uitools depends on xml
SET(QT_USE_QTSQL TRUE) # we need sql drivers
INCLUDE(${QT_USE_FILE})

INCLUDE_DIRECTORIES(${QT_QTSQL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${QT_QTXML_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${QT_QTUITOOLS_INCLUDE_DIR})

OPTION(ParaViewGeo_Filters Build ParaViewGeo Filters ON)
OPTION(ParaViewGeo_Readers Build ParaViewGeo Readers ON)
OPTION(ParaViewGeo_Writers Build ParaViewGeo Writers ON)
OPTION(ParaViewGeo_NonBSDPlugins Build ParaViewGeo Non-BSD Licensed
Plugins OFF)

IF (ParaViewGeo_Filters)
ADD_SUBDIRECTORY(Filters)
ENDIF(ParaViewGeo_Filters)

IF (ParaViewGeo_Readers)
ADD_SUBDIRECTORY(Readers)
ENDIF(ParaViewGeo_Readers)

IF(ParaViewGeo_Writers)
ADD_SUBDIRECTORY(Writers)
ENDIF(ParaViewGeo_Writers)

IF(ParaViewGeo_NonBSDPlugins)
ADD_SUBDIRECTORY(NonBSDPlugins)
ENDIF(ParaViewGeo_NonBSDPlugins)

set(CPACK_COMPONENTS_ALL PVGFilters PVGReaders PVGWriters PVGNonBSDPlugins)
set(CPACK_PACKAGE_NAME ParaViewGeo Plugins)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ParaViewGeo Plugins)
set(CPACK_PACKAGE_VERSION ${PVGPlugins_VERSION_FULL})
SET(CPACK_RESOURCE_FILE_LICENSE
${PVGPlugins_SOURCE_DIR}/PVG_PLUGINS_LICENSE.txt)
include (CPack)

Thanks,

-- 
Patrick Ryan
--

Powered by www.kitware.com

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

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

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


[CMake] CPack-NSIS component-based installer lacking components page...might I be forgetting something?

2012-01-13 Thread Patrick Ryan
Hi,

I'm using CMake 2.8.6 to generate an NSIS installer. We have two
separate projects; an application and a set of plugins to be used by
the application. The plugins are composed of four separate components
that can be selected during the installation (Filters, NonBSDPlugins,
Readers, Writers). When built on its own, the plugins installer
includes the 'Select Components' page as expected. When building the
application, which also includes the plugins project, no components
page appears.

My CPackConfig.cmake file has the following:

SET(CPACK_COMPONENTS_ALL
BrandedRuntime;Development;Filters;NonBSDPlugins;Readers;Writers;Runtime;RuntimeLibraries;Unspecified)

SET(CPACK_COMPONENT_UNSPECIFIED_HIDDEN TRUE)

SET(CPACK_COMPONENT_UNSPECIFIED_REQUIRED TRUE)

Am I missing anything blatantly obvious? I'm quite stuck and haven't
been able to find anyone who's had a similar problem.

I can provide more details if necessary...apologies if I haven't
included enough.

--
Patrick
--

Powered by www.kitware.com

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

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

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