1:<CPackWiXPatch>
2: <CPackWiXFragment Id="#PRODUCT">
3: <CustomAction Id="ActionAfterDeinstallation" ExeCommand="Nach der Deinstallation" FileKey ="CM_FP_bin.tm.exe"/>
4: <CustomAction Id="ActionAfterInstallation" ExeCommand="Nach der Installation" FileKey="CM_FP_bin.tm.exe"/>
5: <InstallExecuteSequence>
6: <!-- Ausführung bei Deinstallation -->
7: <Custom Action="ActionAfterDeinstallation" After="InstallFiles">Installed</Custom>
8: <!-- Ausführung wenn die Installation beendet ist -->
9: <Custom Action="ActionAfterInstallation" After="InstallFinalize">NOT Installed</Custom>
10: </InstallExecuteSequence>
11: </CPackWiXFragmen>
12:</CPackWiXPatch>
Der Aufbau der Patch-Datei ist im Prinzip ganz einfach. In den Zeilen 3 und 4 wird festgelegt was überhaupt passieren soll. Zeile 3 sagt das, dass Programm tm mit dem Parameter "Nach der Deinstallation" aufgerufen werden soll und Zeile 4 sagt das selbe nur das hier der Parameter "Nach der Installation" heißt. Wie den WIX-Namen des Programms ermittelt, wird hier gezeigt.
1: CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
2: IF (POLICY CMP0048)
3: CMAKE_POLICY(SET CMP0048 NEW) # Wg. VERSION im project Befehl
4: ENDIF (POLICY CMP0048)
5:
6: PROJECT(CustomAction VERSION 1.2.3)
7:
8: ADD_EXECUTABLE(tm tm.cc)
9: INSTALL(TARGETS tm DESTINATION bin)
10:
11: # Standard --------------------------------------------------------
12: # GUID mit MSVC erstellen
13: SET(CPACK_WIX_UPGRADE_GUID "BFDE99AE-2FAD-4BD7-84B0-3BD11EEDCA21")
14: # Sprache
15: SET(CPACK_WIX_CULTURES "de-DE")
16: # WIX Generator
17: SET(CPACK_GENERATOR WIX)
18: # Standard Ende ---------------------------------------------------
19:
20: # Über ExeCommand im patch-File können Parameter an das Programm
21: # übergeben werden.
22: set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml")
23:
24: INCLUDE(CPack)
Der Aufbau der CMakeLists-Datei ist genauso wie PatchEnv-Beispiel