Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-07 Thread Brad King
On 07/07/2015 09:39 AM, Konstantin Podsvirov wrote:
> By the way, nothing wrong that I build and put on public display
> code branch master using IFW installer?

That's fine with us!

Thanks,
-Brad

-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-07 Thread Konstantin Podsvirov
Hi, Brad!

07.07.2015, 16:21, "Brad King" :
> On 07/07/2015 02:43 AM, Konstantin Podsvirov wrote:
>> I used rebase. The last 8 commits in a branch on my server contain change of 
>> topic:
>>
>> I hope now will be able to apply the changes.
>
> Thanks! I've applied the changes with minor tweaks to the history...

Glad to hear :-) I Apologize for the macro CMAKE_OPTIONAL_COMPONENT...

With these changes IFW installer will become even more beautiful!

Once the code gets merged into the master, I will present an online update for
wanting to look, but not wanting to build.

By the way, nothing wrong that I build and put on public display
code branch master using IFW installer?

I don't see malicious intent. If someone doesn't like it, please let me know.

--
Regards,
Konstantin Podsvirov
-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-07 Thread Brad King
On 07/07/2015 02:43 AM, Konstantin Podsvirov wrote:
> I used rebase. The last 8 commits in a branch on my server contain change of 
> topic:
> 
> I hope now will be able to apply the changes.

Thanks!  I've applied the changes with minor tweaks to the history:

 CMake: Install COMPONENTs
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=938bbc43

 CMake: Install COMPONENTs (QtDialog)
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2531b909

 CMake: Install COMPONENTs (sphinx-man)
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7383e4d7

 CMake: New option CMake_INSTALL_COMPONENTS
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c823f04e

 CMake: Fix Web Site shortcut in IFW installer for Windows
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c14f20f7

 CMake: optional show LGPLv2.1 license when install cmake-gui component
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ecca2685

 CMake: Add cmakexbuild component as REQUIRED to Tools group for IFW installer
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d7725a17

Thanks,
-Brad

-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-06 Thread Konstantin Podsvirov
06.07.2015, 21:01, "Brad King" :
> On 07/03/2015 09:09 AM, Konstantin Podsvirov wrote:
>> About 6 months ago I started a topic cmake-install-components.
>> Today I am ready to share the results.
>
> Great, thanks! The changes look good except for comments below.
>
>> So as not to disturb those who do not need it I have added the
>> option CMAKE_INSTALL_COMPONENTS, which by default is set to OFF.
>
> Please rename this to "CMake_INSTALL_COMPONENTS". We've started
> a convention of using "CMake_" options for affecting the build
> of CMake itself and "CMAKE_" for general CMake-defined options
> that could be used by any project.

Done! It's just. When I was choosing a name for the option in SPHINX 
documentation I have not found
of such recommendations.
In QtDialog variable CMake_GUI_DISTRIBUTE_WITH_Qt_LGPl to install the license.
I have considered this option in the installer, but it is not declared as 
optional in the framework of the CMake project.

> In this hunk:
>
>> -install(TARGETS cmake cpack ctest DESTINATION bin)
>> +# Install tools
>> +
>> +set(_tools cmake cpack ctest)
>> +
>> if(APPLE)
>> - install(TARGETS cmakexbuild DESTINATION bin)
>> + list(APPEND _tools cmakexbuild)
>> endif()
>>
>> +foreach(_tool in ${_tools})
>> + install(TARGETS ${_tool} DESTINATION bin COMPONENT ${_tool})
>> +endforeach()
>
> The cmakexbuild tool is an implementation detail of cmake/ctest/cpack
> that must be installed along with them. Whatever that enforces those
> three components are required should cover cmakexbuild too.

Done! I added cmakexbuild component in the group of Tools like cmake, ctest, 
and cpack.
This should work for APPLE, but I have no way to check it out.
Maybe someone can collect IFW installer on the APPLE platform?

> Thanks,
> -Brad

The project has many minor installation instructions. They are all now 
accounted for and installed as Unspecified component that hide from the user's 
eyes. It is not excluded that eventually they will find the name of the 
component and the location of the installation tree.

I used rebase. The last 8 commits in a branch on my server contain change of 
topic:

http://git.podsvirov.pro/?p=kitware/cmake.git;a=shortlog;h=refs/heads/cmake-install-components

I hope now will be able to apply the changes.

--
Regards,
Konstantin Podsvirov
-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers


Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-06 Thread Brad King
On 07/03/2015 09:09 AM, Konstantin Podsvirov wrote:
> About 6 months ago I started a topic cmake-install-components.
> Today I am ready to share the results.

Great, thanks!  The changes look good except for comments below.

> So as not to disturb those who do not need it I have added the
> option CMAKE_INSTALL_COMPONENTS, which by default is set to OFF.

Please rename this to "CMake_INSTALL_COMPONENTS".  We've started
a convention of using "CMake_" for options affecting the build
of CMake itself and "CMAKE_" for general CMake-defined options
that could be used by any project.

In this hunk:

> -install(TARGETS cmake ctest cpack DESTINATION bin)
> +# Install tools
> +
> +set(_tools cmake ctest cpack)
> +
>  if(APPLE)
> -  install(TARGETS cmakexbuild DESTINATION bin)
> +  list(APPEND _tools cmakexbuild)
>  endif()
>  
> +foreach(_tool ${_tools})
> +  install(TARGETS ${_tool} DESTINATION bin COMPONENT ${_tool})
> +endforeach()

The cmakexbuild tool is an implementation detail of cmake/ctest/cpack
that must be installed along with them.  Whatever enforces that those
three components are required should cover cmakexbuild too.

Thanks,
-Brad

-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers


[cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer

2015-07-03 Thread Konstantin Podsvirov
Hi, Brad!

A long time ago...
About 6 months ago I started a topic cmake-install-components.
Today I am ready to share the results.

The basic idea is to use the COMPONENT option in the install command inside the 
CMake.

So as not to disturb those who do not need it I have added the option 
CMAKE_INSTALL_COMPONENTS,
which by default is set to OFF.

CMake IFW installer recognizes this option.

In the attachment to the letter patch file and screenshots of what I did.

Also these changes are reflected in the branch on my server:
http://git.podsvirov.pro/?p=kitware/cmake.git;a=shortlog;h=refs/heads/cmake-install-components

I have tested in Windows and Debian for QtIFW 2.0.

Please consider my code and apply it.

Changes quite a lot and I'm ready for the discussion.

Have a nice weekend, and I'm waiting for an answer.

--
Regards,
Konstantin Podsvirovdiff --git a/CMakeCPack.cmake b/CMakeCPack.cmake
index 22ca8cf..de84bd6 100644
--- a/CMakeCPack.cmake
+++ b/CMakeCPack.cmake
@@ -65,6 +65,58 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
 endif()
   endif()
 
+  # Components
+  if(CMAKE_INSTALL_COMPONENTS)
+set(_CPACK_IFW_COMPONENTS_ALL cmake ctest cpack)
+if(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
+  set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME
+${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
+else()
+  set(_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME Unspecified)
+endif()
+list(APPEND _CPACK_IFW_COMPONENTS_ALL ${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME})
+string(TOUPPER "${_CPACK_IFW_COMPONENT_UNSPECIFIED_NAME}"
+  _CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME)
+if(BUILD_CursesDialog)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL ccmake)
+endif()
+if(BUILD_QtDialog)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL cmake-gui)
+  set(_CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES "set(CPACK_IFW_COMPONENT_CMAKE-GUI_LICENSES
+\"LGPLv2.1\" \"${CMake_SOURCE_DIR}/Licenses/LGPLv2.1.txt\")")
+endif()
+if(SPHINX_MAN)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-man)
+endif()
+if(SPHINX_HTML)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-html)
+endif()
+if(SPHINX_SINGLEHTML)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-singlehtml)
+endif()
+if(SPHINX_QTHELP)
+  list(APPEND _CPACK_IFW_COMPONENTS_ALL sphinx-qthelp)
+endif()
+set(_CPACK_IFW_COMPONENTS_CONFIGURATION "
+  # Components
+  set(CPACK_COMPONENTS_ALL \"${_CPACK_IFW_COMPONENTS_ALL}\")
+  set(CPACK_COMPONENTS_GROUPING IGNORE)
+")
+  else()
+if(BUILD_QtDialog AND CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL)
+  set(_CPACK_IFW_ADDITIONAL_LICENSES
+"\"LGPLv2.1\" \"${CMake_SOURCE_DIR}/Licenses/LGPLv2.1.txt\"")
+endif()
+  endif()
+
+  # Components scripts configuration
+  foreach(_script
+CMake
+CMake.Documentation.SphinxHTML)
+configure_file("${CMake_SOURCE_DIR}/Source/QtIFW/${_script}.qs.in"
+  "${CMake_BINARY_DIR}/${_script}.qs" @ONLY)
+  endforeach()
+
   if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
 set(_CPACK_IFW_PACKAGE_ICON
 "set(CPACK_IFW_PACKAGE_ICON \"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeSetup.ico\")")
@@ -78,9 +130,13 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
   "${CMake_BINARY_DIR}/installscript.qs" @ONLY
 )
 install(FILES "${CMake_SOURCE_DIR}/Source/QtIFW/cmake.org.html"
-  DESTINATION "."
+  DESTINATION "${CMAKE_DOC_DIR}"
 )
-set(_CPACK_IFW_PACKAGE_SCRIPT "set(CPACK_IFW_COMPONENT_GROUP_CMAKE_SCRIPT \"${CMake_BINARY_DIR}/installscript.qs\")")
+if(CMAKE_INSTALL_COMPONENTS)
+  set(_CPACK_IFW_PACKAGE_SCRIPT "${CMake_BINARY_DIR}/CMake.qs")
+else()
+  set(_CPACK_IFW_PACKAGE_SCRIPT "${CMake_BINARY_DIR}/installscript.qs")
+endif()
   endif()
 
   if(${CMAKE_SYSTEM_NAME} MATCHES Linux)
diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in
index 6003565..7beda8c 100644
--- a/CMakeCPackOptions.cmake.in
+++ b/CMakeCPackOptions.cmake.in
@@ -32,6 +32,7 @@ endif()
 include("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
 
 if(CPACK_GENERATOR MATCHES "IFW")
+
   # Installer configuration
   set(CPACK_IFW_PACKAGE_TITLE "CMake Build Tool")
   set(CPACK_IFW_PRODUCT_URL "http://www.cmake.org";)
@@ -40,21 +41,123 @@ if(CPACK_GENERATOR MATCHES "IFW")
 "@CMake_SOURCE_DIR@/Source/QtDialog/CMakeSetup128.png")
   set(CPACK_IFW_PACKAGE_CONTROL_SCRIPT
 "@CMake_SOURCE_DIR@/Source/QtIFW/controlscript.qs")
+
   # Uninstaller configuration
   set(CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME "cmake-maintenance")
+  @_CPACK_IFW_COMPONENTS_CONFIGURATION@
+  # Unspecified
+  set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNSPECIFIED_UNAME@_VERSION
+"@_CPACK_IFW_PACKAGE_VERSION@")
+
   # Package configuration group
   set(CPACK_IFW_PACKAGE_GROUP CMake)
+
   # Group configuration
+
+  # CMake
   set(CPACK_COMPONENT_GROUP_CMAKE_DISPLAY_NAME
 "@CPACK_PACKAGE_NAME@")
   set(CPACK_COMPONENT_GROUP_CMAKE_DESCRIPTION
 "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
-  # IFW group configuration
   set(