summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmWIXShortcut.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-02-23 16:06:07 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-02-23 16:06:07 (GMT)
commitcb16c7844dce627ab40f404c6ac49db3cde7b0c0 (patch)
tree7c7d02394c21403d1ef2cf41a34551ed2da0d30c /Source/CPack/WiX/cmWIXShortcut.h
parent7cebc5acacc14e0d4c9416735c86c5870671f173 (diff)
parent6cc01c140245749bb6a6d5096b4a38f3f16fb776 (diff)
downloadCMake-cb16c7844dce627ab40f404c6ac49db3cde7b0c0.zip
CMake-cb16c7844dce627ab40f404c6ac49db3cde7b0c0.tar.gz
CMake-cb16c7844dce627ab40f404c6ac49db3cde7b0c0.tar.bz2
Merge topic 'wix-shortcut-properties'
6cc01c14 CPackWIX: Add release notes for the wix-shortcut-properties topic. 135febf0 CPackWIX: Enhance CMake CPack WIX generated installer. e6731f48 CPackWIX: Add new CPACK_STARTUP_SHORTCUTS property. 279605f5 CPackWIX: Add installed file properties for the creation of shortcuts. 53d7daff CPackWIX: Refactor start menu and desktop shortcut creation. dc0f3fb4 CPackWIX: Explicitly list CPack WIX headers for IDE convenience.
Diffstat (limited to 'Source/CPack/WiX/cmWIXShortcut.h')
-rw-r--r--Source/CPack/WiX/cmWIXShortcut.h62
1 files changed, 53 insertions, 9 deletions
diff --git a/Source/CPack/WiX/cmWIXShortcut.h b/Source/CPack/WiX/cmWIXShortcut.h
index 93095e0..5945e43 100644
--- a/Source/CPack/WiX/cmWIXShortcut.h
+++ b/Source/CPack/WiX/cmWIXShortcut.h
@@ -1,6 +1,6 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
- Copyright 2014 Kitware, Inc.
+ Copyright 2014-2015 Kitware, Inc.
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
@@ -10,20 +10,64 @@
See the License for more information.
============================================================================*/
-#ifndef cmWIXFilesShortcut_h
-#define cmWIXFilesShortcut_h
+#ifndef cmWIXShortcut_h
+#define cmWIXShortcut_h
#include <string>
+#include <map>
+#include <set>
+#include <vector>
+
+#include <cmInstalledFile.h>
+
+class cmWIXFilesSourceWriter;
struct cmWIXShortcut
{
- cmWIXShortcut()
- :desktop(false)
- {}
-
- std::string textLabel;
+ std::string label;
std::string workingDirectoryId;
- bool desktop;
+};
+
+class cmWIXShortcuts
+{
+public:
+ enum Type
+ {
+ START_MENU,
+ DESKTOP,
+ STARTUP
+ };
+
+ typedef std::vector<cmWIXShortcut> shortcut_list_t;
+ typedef std::map<std::string, shortcut_list_t> shortcut_id_map_t;
+
+ void insert(Type type, std::string const& id, cmWIXShortcut const& shortcut);
+
+ bool empty(Type type) const;
+
+ bool EmitShortcuts(
+ Type type,
+ std::string const& registryKey,
+ std::string const& cpackComponentName,
+ cmWIXFilesSourceWriter& fileDefinitions) const;
+
+ void AddShortcutTypes(std::set<Type>& types);
+
+ void CreateFromProperties(std::string const& id,
+ std::string const& directoryId, cmInstalledFile const& installedFile);
+
+private:
+ typedef std::map<Type, shortcut_id_map_t> shortcut_type_map_t;
+
+ void CreateFromProperty(
+ std::string const& propertyName,
+ Type type,
+ std::string const& id,
+ std::string const& directoryId,
+ cmInstalledFile const& installedFile);
+
+ shortcut_type_map_t Shortcuts;
+ shortcut_id_map_t EmptyIdMap;
};
#endif