Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
CMake
CMake
Commits
e7511b7f
Commit
e7511b7f
authored
Jul 29, 2014
by
Konstantin Podsvirov
Committed by
Brad King
Jul 29, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CPackIFW: Add package configuration variables
parent
b2340001
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
109 additions
and
11 deletions
+109
-11
CMakeCPack.cmake
CMakeCPack.cmake
+1
-0
CMakeCPackOptions.cmake.in
CMakeCPackOptions.cmake.in
+7
-2
Modules/CPackIFW.cmake
Modules/CPackIFW.cmake
+36
-4
Source/CPack/cmCPackIFWGenerator.cxx
Source/CPack/cmCPackIFWGenerator.cxx
+65
-5
No files found.
CMakeCPack.cmake
View file @
e7511b7f
...
...
@@ -74,6 +74,7 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
string
(
TOUPPER
${
_CPACK_IFW_COMPONENT_NAME
}
_CPACK_IFW_COMPONENT_UNAME
)
if
(
${
CMAKE_SYSTEM_NAME
}
MATCHES Windows
)
set
(
_CPACK_IFW_PACKAGE_ICON
"set(CPACK_IFW_PACKAGE_ICON
\"
${
CMake_SOURCE_DIR
}
/Source/QtDialog/CMakeSetup.ico
\"
)"
)
if
(
BUILD_QtDialog
)
set
(
_CPACK_IFW_SHORTCUT_OPTIONAL
"
${
_CPACK_IFW_SHORTCUT_OPTIONAL
}
component.addOperation(
\"
CreateShortcut
\"
,
\"
@TargetDir@/bin/cmake-gui.exe
\"
,
\"
@StartMenuDir@/CMake (cmake-gui).lnk
\"
);
\n
"
)
endif
()
...
...
CMakeCPackOptions.cmake.in
View file @
e7511b7f
...
...
@@ -34,12 +34,17 @@ include("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
if(CPACK_GENERATOR MATCHES "IFW")
# Version with QtIFW limitations
set(CPACK_PACKAGE_VERSION "@_CPACK_IFW_PACKAGE_VERSION@")
# Installer configuration
set(CPACK_IFW_PACKAGE_TITLE "CMake Build Tool")
set(CPACK_IFW_PRODUCT_URL "http://www.cmake.org")
@_CPACK_IFW_PACKAGE_ICON@
set(CPACK_IFW_PACKAGE_WINDOW_ICON "@CMake_SOURCE_DIR@/Source/QtDialog/CMakeSetup128.png")
# Enable install default component
set(CPACK_COMPONENTS_ALL "@_CPACK_IFW_COMPONENT_NAME@")
# Configuration
# Co
mponent co
nfiguration
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DISPLAY_NAME "@CPACK_PACKAGE_NAME@")
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DESCRIPTION "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
# IFW
C
onfiguration
# IFW
component
onfiguration
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_NAME "@CPACK_PACKAGE_NAME@")
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_LICENSES "@CPACK_PACKAGE_NAME@ Copyright" "@CPACK_RESOURCE_FILE_LICENSE@")
@_CPACK_IFW_COMPONENT_SCRIPT@
...
...
Modules/CPackIFW.cmake
View file @
e7511b7f
...
...
@@ -29,8 +29,37 @@
# Variables
# ^^^^^^^^^
#
# Variables that Change Behavior
# """"""""""""""""""""""""""""""
# You can use the following variables to change behavior of CPack ``IFW`` generator.
#
# Package
# """""""
#
# .. variable:: CPACK_IFW_PACKAGE_TITLE
#
# Name of the installer as displayed on the title bar.
# By default used :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
#
# .. variable:: CPACK_IFW_PACKAGE_PUBLISHER
#
# Publisher of the software (as shown in the Windows Control Panel).
# By default used :variable:`CPACK_PACKAGE_VENDOR`
#
# .. variable:: CPACK_IFW_PRODUCT_URL
#
# URL to a page that contains product information on your web site.
#
# .. variable:: CPACK_IFW_PACKAGE_ICON
#
# Filename for a custom installer icon. The actual file is '.icns' (Mac OS X),
# '.ico' (Windows). No functionality on Unix.
#
# .. variable:: CPACK_IFW_PACKAGE_WINDOW_ICON
#
# Filename for a custom window icon in PNG format for the Installer application.
#
# .. variable:: CPACK_IFW_PACKAGE_LOGO
#
# Filename for a logo used as QWizard::LogoPixmap.
#
# .. variable:: CPACK_IFW_TARGET_DIRECTORY
#
...
...
@@ -45,6 +74,9 @@
#
# You can use predefined variables.
#
# Components
# """"""""""
#
# .. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
#
# Resolve duplicate names when installing components with groups.
...
...
@@ -54,8 +86,8 @@
# Additional prepared packages dirs that will be used to resolve
# dependent components.
#
# Advanced
Variables
# """"""""
""""""""""
# Advanced
# """"""""
#
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
#
...
...
Source/CPack/cmCPackIFWGenerator.cxx
View file @
e7511b7f
...
...
@@ -680,14 +680,19 @@ int cmCPackIFWGenerator::IfwCreateConfigFile()
ifwPkgName
=
"Your package"
;
}
std
::
string
ifwPkgDescription
;
if
(
const
char
*
nam
e
=
this
->
GetOption
(
"CPACK_PACKAGE_
DESCRIPTION_SUMMARY
"
))
std
::
string
pkgTitle
;
if
(
const
char
*
titl
e
=
this
->
GetOption
(
"CPACK_
IFW_
PACKAGE_
TITLE
"
))
{
ifwPkgDescription
=
name
;
pkgTitle
=
title
;
}
else
if
(
const
char
*
description
=
this
->
GetOption
(
"CPACK_PACKAGE_DESCRIPTION_SUMMARY"
))
{
pkgTitle
=
description
;
}
else
{
ifwPkgDescription
=
"Your package description"
;
pkgTitle
=
"Your package description"
;
}
std
::
string
ifwPkgVersion
;
...
...
@@ -711,9 +716,64 @@ int cmCPackIFWGenerator::IfwCreateConfigFile()
cfg
<<
"<Installer>"
<<
std
::
endl
;
cfg
<<
" <Name>"
<<
cmXMLSafe
(
ifwPkgName
).
str
()
<<
"</Name>"
<<
std
::
endl
;
cfg
<<
" <Version>"
<<
ifwPkgVersion
<<
"</Version>"
<<
std
::
endl
;
cfg
<<
" <Title>"
<<
cmXMLSafe
(
ifwPkgDescription
).
str
()
<<
"</Title>"
cfg
<<
" <Title>"
<<
cmXMLSafe
(
pkgTitle
).
str
()
<<
"</Title>"
<<
std
::
endl
;
// Publisher
std
::
string
ifwPublisher
;
if
(
const
char
*
publisher
=
GetOption
(
"CPACK_IFW_PACKAGE_PUBLISHER"
))
{
ifwPublisher
=
publisher
;
}
else
if
(
const
char
*
vendor
=
GetOption
(
"CPACK_PACKAGE_VENDOR"
))
{
ifwPublisher
=
vendor
;
}
if
(
!
ifwPublisher
.
empty
())
{
cfg
<<
" <Publisher>"
<<
cmXMLSafe
(
ifwPublisher
).
str
()
<<
"</Publisher>"
<<
std
::
endl
;
}
// ProductUrl
if
(
const
char
*
url
=
GetOption
(
"CPACK_IFW_PRODUCT_URL"
))
{
cfg
<<
" <ProductUrl>"
<<
url
<<
"</ProductUrl>"
<<
std
::
endl
;
}
// ApplicationIcon
const
char
*
pkgApplicationIcon
=
GetOption
(
"CPACK_IFW_PACKAGE_ICON"
);
if
(
pkgApplicationIcon
&&
cmSystemTools
::
FileExists
(
pkgApplicationIcon
))
{
std
::
string
name
=
cmSystemTools
::
GetFilenameName
(
pkgApplicationIcon
);
std
::
string
path
=
this
->
toplevel
+
"/config/"
+
name
;
name
=
cmSystemTools
::
GetFilenameWithoutExtension
(
name
);
cmsys
::
SystemTools
::
CopyFileIfDifferent
(
pkgApplicationIcon
,
path
.
data
());
cfg
<<
" <InstallerApplicationIcon>"
<<
name
<<
"</InstallerApplicationIcon>"
<<
std
::
endl
;
}
// WindowIcon
const
char
*
pkgWindowIcon
=
GetOption
(
"CPACK_IFW_PACKAGE_WINDOW_ICON"
);
if
(
pkgWindowIcon
&&
cmSystemTools
::
FileExists
(
pkgWindowIcon
))
{
std
::
string
name
=
cmSystemTools
::
GetFilenameName
(
pkgWindowIcon
);
std
::
string
path
=
this
->
toplevel
+
"/config/"
+
name
;
cmsys
::
SystemTools
::
CopyFileIfDifferent
(
pkgWindowIcon
,
path
.
data
());
cfg
<<
" <InstallerWindowIcon>"
<<
name
<<
"</InstallerWindowIcon>"
<<
std
::
endl
;
}
// Logo
const
char
*
pkgLogo
=
GetOption
(
"CPACK_IFW_PACKAGE_LOGO"
);
if
(
pkgLogo
&&
cmSystemTools
::
FileExists
(
pkgLogo
))
{
std
::
string
name
=
cmSystemTools
::
GetFilenameName
(
pkgLogo
);
std
::
string
path
=
this
->
toplevel
+
"/config/"
+
name
;
cmsys
::
SystemTools
::
CopyFileIfDifferent
(
pkgLogo
,
path
.
data
());
cfg
<<
" <Logo>"
<<
name
<<
"</Logo>"
<<
std
::
endl
;
}
// Default target directory for installation
if
(
ifwTargetDir
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment