## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+## along with this program; if not, see <http://www.gnu.org/licenses/>.
##
#
# Include the "Modern UI" header, which gives us the usual Windows look-n-feel.
!include "MUI2.nsh"
+# Include the file association header so that we can register file extensions.
+!include "FileAssociation.nsh"
+
# --- Global stuff ------------------------------------------------------------
!define CROSS "@CMAKE_INSTALL_PREFIX@"
+# --- Functions ---------------------------------------------------------------
+
+Function register_sr_files
+${registerExtension} "$INSTDIR\pulseview.exe" ".sr" "sigrok session file"
+FunctionEnd
+
+
# --- MUI pages ---------------------------------------------------------------
# Show a nice "Welcome to the ... Setup Wizard" page.
# Perform the actual installation, i.e. install the files.
!insertmacro MUI_PAGE_INSTFILES
+# Insert the "Show Readme" button in the finish dialog. We repurpose it for
+# registering the .sr file extension. This way, we don't need to add in-depth
+# modifications to the finish page.
+!define MUI_FINISHPAGE_SHOWREADME ""
+!define MUI_FINISHPAGE_SHOWREADME_CHECKED
+!define MUI_FINISHPAGE_SHOWREADME_TEXT "Register .sr files with PulseView"
+!define MUI_FINISHPAGE_SHOWREADME_FUNCTION register_sr_files
+
# Show a final "We're done, click Finish to close this wizard" message.
!insertmacro MUI_PAGE_FINISH
File "${CROSS}/zadig_xp.exe"
# Python
- File "${CROSS}/python32.dll"
- File "${CROSS}/python32.zip"
+ File "${CROSS}/python34.dll"
+ File "${CROSS}/python34.zip"
+
+ SetOutPath "$INSTDIR\share"
# Protocol decoders.
- SetOutPath "$INSTDIR\decoders"
- File /r /x "__pycache__" "${CROSS}/share/libsigrokdecode/decoders/*"
+ File /r /x "__pycache__" /x "*.pyc" "${CROSS}/share/libsigrokdecode"
# Firmware files.
- SetOutPath "$INSTDIR\firmware"
- File /r "${CROSS}/share/sigrok-firmware/*"
+ File /r "${CROSS}/share/sigrok-firmware"
# Example *.sr files.
SetOutPath "$INSTDIR\examples"
Delete "$INSTDIR\pulseview.exe"
Delete "$INSTDIR\zadig.exe"
Delete "$INSTDIR\zadig_xp.exe"
- Delete "$INSTDIR\python32.dll"
- Delete "$INSTDIR\python32.zip"
+ Delete "$INSTDIR\python34.dll"
+ Delete "$INSTDIR\python34.zip"
- # Delete all decoders and everything else in decoders/.
+ # Delete all decoders and everything else in libsigrokdecode/.
# There could be *.pyc files or __pycache__ subdirs and so on.
- RMDir /r "$INSTDIR\decoders\*"
+ RMDir /r "$INSTDIR\share\libsigrokdecode"
# Delete the firmware files.
- RMDir /r "$INSTDIR\firmware\*"
+ RMDir /r "$INSTDIR\share\sigrok-firmware"
# Delete the example *.sr files.
RMDir /r "$INSTDIR\examples\*"
# Delete the install directory and its sub-directories.
- RMDir "$INSTDIR\decoders"
- RMDir "$INSTDIR\firmware"
+ RMDir "$INSTDIR\share"
RMDir "$INSTDIR\examples"
RMDir "$INSTDIR"
# Delete the registry key(s).
DeleteRegKey HKLM "${REGSTR}"
+ # Unregister any previously registered file extension(s).
+ ${unregisterExtension} ".sr" "sigrok session file"
+
SectionEnd