mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 21:59:54 -06:00
Merge topic 'cpack-ifw-updates'
ed9684a2CPackIFW: Added support for multiple repositoriesf9f74874CPackIFW: Search algorithm update
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
# and Mac OS X.
|
||||
#
|
||||
# To use CPack ``IFW`` generator you must also install QtIFW_.
|
||||
# If you are not using the default path for the installation, please set
|
||||
# the path to the variable ``QTIFWDIR``.
|
||||
#
|
||||
# Variables
|
||||
# ^^^^^^^^^
|
||||
@@ -83,6 +85,19 @@
|
||||
# The root package name, which will be used if configuration group is not
|
||||
# specified
|
||||
#
|
||||
# .. variable:: CPACK_IFW_REPOSITORIES_ALL
|
||||
#
|
||||
# The list of remote repositories.
|
||||
#
|
||||
# The default value of this variable is computed by CPack and contains
|
||||
# all repositories added with command :command:`cpack_ifw_add_repository`
|
||||
#
|
||||
# .. variable:: CPACK_IFW_DOWNLOAD_ALL
|
||||
#
|
||||
# If this is ``ON`` all components will be downloaded.
|
||||
# By default is ``OFF`` or used value
|
||||
# from :variable:`CPACK_DOWNLOAD_ALL` if set
|
||||
#
|
||||
# Components
|
||||
# """"""""""
|
||||
#
|
||||
@@ -95,7 +110,7 @@
|
||||
# Additional prepared packages dirs that will be used to resolve
|
||||
# dependent components.
|
||||
#
|
||||
# Advanced
|
||||
# Tools
|
||||
# """"""""
|
||||
#
|
||||
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
||||
@@ -104,20 +119,12 @@
|
||||
#
|
||||
# This variable is cached and can be configured user if need.
|
||||
#
|
||||
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE_FOUND
|
||||
#
|
||||
# True if the "binarycreator" command line client was found.
|
||||
#
|
||||
# .. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
|
||||
#
|
||||
# The path to "repogen" command line client.
|
||||
#
|
||||
# This variable is cached and can be configured user if need.
|
||||
#
|
||||
# .. variable:: CPACK_IFW_REPOGEN_EXECUTABLE_FOUND
|
||||
#
|
||||
# True if the "repogen" command line client was found.
|
||||
#
|
||||
# Commands
|
||||
# ^^^^^^^^^
|
||||
#
|
||||
@@ -191,6 +198,33 @@
|
||||
# ``LICENSES`` pair of <display_name> and <file_path> of license text for this
|
||||
# component group. You can specify more then one license.
|
||||
#
|
||||
# --------------------------------------------------------------------------
|
||||
#
|
||||
# .. command:: cpack_ifw_add_repository
|
||||
#
|
||||
# Add QtIFW_ specific remote repository.
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# cpack_ifw_add_repository(<reponame> [DISABLED]
|
||||
# URL <url>
|
||||
# [USERNAME <username>]
|
||||
# [PASSWORD <password>]
|
||||
# [DISPLAY_NAME <display_name>])
|
||||
#
|
||||
# This macro will also add the <reponame> repository
|
||||
# to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`
|
||||
#
|
||||
# ``DISABLED`` if set, then the repository will be disabled by default.
|
||||
#
|
||||
# ``URL`` is points to a list of available components.
|
||||
#
|
||||
# ``USERNAME`` is used as user on a protected repository.
|
||||
#
|
||||
# ``PASSWORD`` is password to use on a protected repository.
|
||||
#
|
||||
# ``DISPLAY_NAME`` is string to display instead of the URL.
|
||||
#
|
||||
# Example usage
|
||||
# ^^^^^^^^^^^^^
|
||||
#
|
||||
@@ -198,7 +232,7 @@
|
||||
#
|
||||
# set(CPACK_PACKAGE_NAME "MyPackage")
|
||||
# set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyPackage Installation Example")
|
||||
# set(CPACK_PACKAGE_VERSION "1.0.0")
|
||||
# set(CPACK_PACKAGE_VERSION "1.0.0") # Version of installer
|
||||
#
|
||||
# include(CPack)
|
||||
# include(CPackIFW)
|
||||
@@ -207,8 +241,15 @@
|
||||
# DISPLAY_NAME "MyApp"
|
||||
# DESCRIPTION "My Application")
|
||||
# cpack_ifw_configure_component(myapp
|
||||
# VERSION "1.2.3"
|
||||
# VERSION "1.2.3" # Version of component
|
||||
# SCRIPT "operations.qs")
|
||||
# cpack_add_component(mybigplugin
|
||||
# DISPLAY_NAME "MyBigPlugin"
|
||||
# DESCRIPTION "My Big Downloadable Plugin"
|
||||
# DOWNLOADED)
|
||||
# cpack_ifw_add_repository(myrepo
|
||||
# URL "http://example.com/ifw/repo/myapp"
|
||||
# DISPLAY_NAME "My Application Repository")
|
||||
#
|
||||
#
|
||||
# Online installer
|
||||
@@ -223,8 +264,11 @@
|
||||
# Then you would use the command :command:`cpack_configure_downloads`.
|
||||
# If you set ``ALL`` option all components will be downloaded.
|
||||
#
|
||||
# You also can use command :command:`cpack_ifw_add_repository` and
|
||||
# variable :variable:`CPACK_IFW_DOWNLOAD_ALL` for more specific configuration.
|
||||
#
|
||||
# CPack IFW generator create "repository" dir in current binary dir. You
|
||||
# would copy content of this dir to specified ``site``.
|
||||
# would copy content of this dir to specified ``site`` (``url``).
|
||||
#
|
||||
# See Also
|
||||
# ^^^^^^^^
|
||||
@@ -264,48 +308,41 @@
|
||||
|
||||
# Default path
|
||||
|
||||
set(_CPACK_IFW_PATHS
|
||||
"${QTIFWDIR}"
|
||||
"$ENV{QTIFWDIR}"
|
||||
"${QTDIR}"
|
||||
"$ENV{QTIFWDIR}")
|
||||
if(WIN32)
|
||||
set(_CPACK_IFW_PATHS
|
||||
"$ENV{HOMEDRIVE}/Qt"
|
||||
"C:/Qt"
|
||||
)
|
||||
list(APPEND _CPACK_IFW_PATHS
|
||||
"$ENV{HOMEDRIVE}/Qt"
|
||||
"C:/Qt")
|
||||
else()
|
||||
set(_CPACK_IFW_PATHS
|
||||
"$ENV{HOME}/Qt"
|
||||
"/opt/Qt"
|
||||
)
|
||||
list(APPEND _CPACK_IFW_PATHS
|
||||
"$ENV{HOME}/Qt"
|
||||
"/opt/Qt")
|
||||
endif()
|
||||
|
||||
set(_CPACK_IFW_SUFFIXES
|
||||
"QtIFW-1.7.0/bin"
|
||||
"QtIFW-1.6.0/bin"
|
||||
"QtIFW-1.5.0/bin"
|
||||
"QtIFW-1.4.0/bin"
|
||||
"QtIFW-1.3.0/bin"
|
||||
)
|
||||
"bin"
|
||||
"QtIFW-1.7.0/bin"
|
||||
"QtIFW-1.6.0/bin"
|
||||
"QtIFW-1.5.0/bin"
|
||||
"QtIFW-1.4.0/bin"
|
||||
"QtIFW-1.3.0/bin")
|
||||
|
||||
# Look for 'binarycreator'
|
||||
|
||||
if(NOT CPACK_IFW_BINARYCREATOR_EXECUTABLE_FOUND)
|
||||
|
||||
find_program(CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
||||
NAMES binarycreator
|
||||
PATHS ${_CPACK_IFW_PATHS}
|
||||
PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
|
||||
DOC "QtIFW binarycreator command line client"
|
||||
)
|
||||
DOC "QtIFW binarycreator command line client")
|
||||
|
||||
mark_as_advanced(CPACK_IFW_BINARYCREATOR_EXECUTABLE)
|
||||
|
||||
if(EXISTS ${CPACK_IFW_BINARYCREATOR_EXECUTABLE})
|
||||
set(CPACK_IFW_BINARYCREATOR_EXECUTABLE_FOUND 1)
|
||||
endif()
|
||||
|
||||
endif() # NOT CPACK_IFW_BINARYCREATOR_EXECUTABLE_FOUND
|
||||
|
||||
# Look for 'repogen'
|
||||
|
||||
if(NOT CPACK_IFW_REPOGEN_EXECUTABLE_FOUND)
|
||||
|
||||
find_program(CPACK_IFW_REPOGEN_EXECUTABLE
|
||||
NAMES repogen
|
||||
PATHS ${_CPACK_IFW_PATHS}
|
||||
@@ -314,12 +351,6 @@ find_program(CPACK_IFW_REPOGEN_EXECUTABLE
|
||||
)
|
||||
mark_as_advanced(CPACK_IFW_REPOGEN_EXECUTABLE)
|
||||
|
||||
if(EXISTS ${CPACK_IFW_REPOGEN_EXECUTABLE})
|
||||
set(CPACK_IFW_REPOGEN_EXECUTABLE_FOUND 1)
|
||||
endif()
|
||||
|
||||
endif() # NOT CPACK_IFW_REPOGEN_EXECUTABLE_FOUND
|
||||
|
||||
#
|
||||
## Next code is included only once
|
||||
#
|
||||
@@ -444,4 +475,43 @@ macro(cpack_ifw_configure_component_group grpname)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Macro for adding repository
|
||||
macro(cpack_ifw_add_repository reponame)
|
||||
|
||||
string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
|
||||
|
||||
set(_IFW_OPT DISABLED)
|
||||
set(_IFW_ARGS URL USERNAME PASSWORD DISPLAY_NAME)
|
||||
set(_IFW_MULTI_ARGS)
|
||||
cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||||
|
||||
set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\"\n")
|
||||
|
||||
foreach(_IFW_ARG_NAME ${_IFW_OPT})
|
||||
cpack_append_option_set_command(
|
||||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||||
_CPACK_IFWREPO_STR)
|
||||
endforeach()
|
||||
|
||||
foreach(_IFW_ARG_NAME ${_IFW_ARGS})
|
||||
cpack_append_string_variable_set_command(
|
||||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||||
_CPACK_IFWREPO_STR)
|
||||
endforeach()
|
||||
|
||||
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
|
||||
cpack_append_variable_set_command(
|
||||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||||
_CPACK_IFWREPO_STR)
|
||||
endforeach()
|
||||
|
||||
list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
|
||||
set(_CPACK_IFWREPO_STR "${_CPACK_IFWREPO_STR}list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
|
||||
|
||||
if(CPack_CMake_INCLUDED)
|
||||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
endif() # NOT CPackIFW_CMake_INCLUDED
|
||||
|
||||
Reference in New Issue
Block a user