summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmWIXShortcut.cxx
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2015-02-21 16:30:31 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2015-02-21 16:30:31 (GMT)
commit279605f560312aab4dfeef4cce1c8c67d4083b4e (patch)
tree6f91cd08d36c85c5fafcdef3e70ba2207707c2c3 /Source/CPack/WiX/cmWIXShortcut.cxx
parent53d7dafface62d40ea795456394f7ab1d5ee6712 (diff)
downloadCMake-279605f560312aab4dfeef4cce1c8c67d4083b4e.zip
CMake-279605f560312aab4dfeef4cce1c8c67d4083b4e.tar.gz
CMake-279605f560312aab4dfeef4cce1c8c67d4083b4e.tar.bz2
CPackWIX: Add installed file properties for the creation of shortcuts.
Diffstat (limited to 'Source/CPack/WiX/cmWIXShortcut.cxx')
-rw-r--r--Source/CPack/WiX/cmWIXShortcut.cxx40
1 files changed, 36 insertions, 4 deletions
diff --git a/Source/CPack/WiX/cmWIXShortcut.cxx b/Source/CPack/WiX/cmWIXShortcut.cxx
index 1c755ec..aef2b08 100644
--- a/Source/CPack/WiX/cmWIXShortcut.cxx
+++ b/Source/CPack/WiX/cmWIXShortcut.cxx
@@ -62,11 +62,12 @@ bool cmWIXShortcuts::EmitShortcuts(
std::string const& id = j->first;
shortcut_list_t const& shortcutList = j->second;
- for(shortcut_list_t::const_iterator k = shortcutList.begin();
- k != shortcutList.end(); ++k)
+ for(size_t shortcutListIndex = 0;
+ shortcutListIndex < shortcutList.size(); ++shortcutListIndex)
{
- cmWIXShortcut const& shortcut = *k;
- fileDefinitions.EmitShortcut(id, shortcut, shortcutPrefix);
+ cmWIXShortcut const& shortcut = shortcutList[shortcutListIndex];
+ fileDefinitions.EmitShortcut(id, shortcut,
+ shortcutPrefix, shortcutListIndex);
}
}
@@ -84,3 +85,34 @@ void cmWIXShortcuts::AddShortcutTypes(std::set<Type>& types)
types.insert(i->first);
}
}
+
+void cmWIXShortcuts::CreateFromProperties(
+ std::string const& id,
+ std::string const& directoryId,
+ cmInstalledFile const& installedFile)
+{
+ CreateFromProperty("CPACK_START_MENU_SHORTCUTS",
+ START_MENU, id, directoryId, installedFile);
+
+ CreateFromProperty("CPACK_DESKTOP_SHORTCUTS",
+ DESKTOP, id, directoryId, installedFile);
+}
+
+void cmWIXShortcuts::CreateFromProperty(
+ std::string const& propertyName,
+ Type type,
+ std::string const& id,
+ std::string const& directoryId,
+ cmInstalledFile const& installedFile)
+{
+ std::vector<std::string> list;
+ installedFile.GetPropertyAsList(propertyName, list);
+
+ for(size_t i = 0; i < list.size(); ++i)
+ {
+ cmWIXShortcut shortcut;
+ shortcut.label = list[i];
+ shortcut.workingDirectoryId = directoryId;
+ insert(type, id, shortcut);
+ }
+}