Re: [cmake-developers] [PATCH] Option CMAKE_INSTALL_COMPONENTS and IFW installer
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
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
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
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
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
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(