diff --git a/.appveyor.yml b/.appveyor.yml
index a7716f343..b9d9cc985 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -77,6 +77,8 @@ artifacts:
name: projectM-sdl-%CONFIGURATION%-%PLATFORM%
- path: libprojectM-%CONFIGURATION%-%PLATFORM%-%APPVEYOR_REPO_COMMIT%.zip
name: libprojectM-%CONFIGURATION%-%PLATFORM%
+ - path: msvc\Setup\%CONFIGURATION%\%PLATFORM%\*
+ name: projectM-Setup-%CONFIGURATION%-%PLATFORM%
#---------------------------------#
diff --git a/msvc/Setup.iss b/msvc/Setup.iss
new file mode 100644
index 000000000..6490be936
--- /dev/null
+++ b/msvc/Setup.iss
@@ -0,0 +1,81 @@
+; This script requires Inno Setup Compiler 5.5.9 or later to compile
+; The Inno Setup Compiler (and IDE) can be found at http://www.jrsoftware.org/isinfo.php
+
+; General documentation on how to use InnoSetup scripts: http://www.jrsoftware.org/ishelp/index.php
+
+#ifndef Platform
+ #error Platform undefined. Pass /DPlatform
+#endif
+
+#ifndef Configuration
+ #error Configuration undefined. Pass /DConfiguration
+#endif
+
+#define MyAppName "projectM"
+#define MyAppInstallerVersion GetFileVersion("projectM.exe")
+#define MyAppPublisher "projectM Team"
+#define MyAppPublisherURL "https://github.com/mancoast/projectm"
+#define MyAppURL "https://github.com/projectM-visualizer/projectm"
+#define MyAppExeName "projectM.exe"
+#define MyAppIcoName "projectm_qDj_icon.ico"
+
+[Setup]
+AppId={{82DAD0F1-77DF-47FE-9FEE-123FFC5695B4}
+AppName={#MyAppName}
+AppVersion={#MyAppInstallerVersion}
+VersionInfoVersion={#MyAppInstallerVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppPublisherURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+AppCopyright=Copyright (C) 2019 {#MyAppPublisher}
+BackColor=clWhite
+BackSolid=yes
+DefaultDirName={pf}\{#MyAppName}
+DefaultGroupName={#MyAppName}
+OutputBaseFilename=projectM-v{#MyAppInstallerVersion}-Setup
+OutputDir=..\..\Setup\{#Configuration}\{#Platform}
+Compression=lzma2
+InternalCompressLevel=ultra64
+SolidCompression=yes
+DisableDirPage=yes
+DisableReadyPage=yes
+SetupIconFile={#MyAppIcoName}
+WizardImageStretch=no
+WindowResizable=no
+CloseApplications=yes
+ChangesEnvironment=yes
+ArchitecturesInstallIn64BitMode=x64
+LicenseFile=LICENSE.txt
+WizardImageFile=setup_inno.bmp
+WizardSmallImageFile=setup_inno_small.bmp
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; \
+ GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Icons]
+Name: "{group}\projectM"; Filename: "{app}\projectM.exe"; WorkingDir: "{app}"
+Name: "{group}\Uninstall projectM"; Filename: "{uninstallexe}"
+Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; \
+ IconFilename: "{app}\{#MyAppIcoName}"; Tasks: desktopicon
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl";
+
+[Types]
+Name: "full"; Description: "Full installation"
+
+[Components]
+
+[Files]
+DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Source:"*"
+
+[UninstallDelete]
+; Deletes the entire installation directory, including files and subdirectories
+Type: filesandordirs; Name: "{app}";
+
+[Run]
+Filename: "{app}\projectM.exe"; Description: "Launch projectM application"; \
+ Flags: postinstall nowait skipifsilent unchecked
+
diff --git a/msvc/projectM.aps b/msvc/projectM.aps
new file mode 100644
index 000000000..50766a463
Binary files /dev/null and b/msvc/projectM.aps differ
diff --git a/msvc/projectM.rc b/msvc/projectM.rc
index b6cefea5f..c83537b6e 100644
--- a/msvc/projectM.rc
+++ b/msvc/projectM.rc
@@ -61,8 +61,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,1,0,0
- PRODUCTVERSION 3,1,0,0
+ FILEVERSION 3,1,1,0
+ PRODUCTVERSION 3,1,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -84,7 +84,7 @@ BEGIN
VALUE "LegalCopyright", "Copyright (C) 2019 projectM Team"
VALUE "OriginalFilename", "projectM.exe"
VALUE "ProductName", "projectM"
- VALUE "ProductVersion", "3.1"
+ VALUE "ProductVersion", "3.1.1.0"
END
END
BLOCK "VarFileInfo"
diff --git a/msvc/projectMSDL.vcxproj b/msvc/projectMSDL.vcxproj
index 252ea8d52..493d64acf 100644
--- a/msvc/projectMSDL.vcxproj
+++ b/msvc/projectMSDL.vcxproj
@@ -40,13 +40,13 @@
<_ProjectFileVersion>10.0.20506.1
projectM-sdl\Debug\
projectMSDL.dir\Debug\
- projectMSDL
+ projectM
.exe
true
true
projectM-sdl\Release\
projectMSDL.dir\Release\
- projectMSDL
+ projectM
.exe
false
true
@@ -175,6 +175,14 @@
+
+
+ true
+
+
+
+
+
@@ -189,4 +197,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/projectMSDL.vcxproj.filters b/msvc/projectMSDL.vcxproj.filters
index 38f6b8ad7..665452a5d 100644
--- a/msvc/projectMSDL.vcxproj.filters
+++ b/msvc/projectMSDL.vcxproj.filters
@@ -15,4 +15,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/resource.h b/msvc/resource.h
new file mode 100644
index 000000000..79a6e7ad4
--- /dev/null
+++ b/msvc/resource.h
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by projectM.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/msvc/setup_inno.bmp b/msvc/setup_inno.bmp
new file mode 100644
index 000000000..47f97b351
Binary files /dev/null and b/msvc/setup_inno.bmp differ
diff --git a/msvc/setup_inno_small.bmp b/msvc/setup_inno_small.bmp
new file mode 100644
index 000000000..ee686f868
Binary files /dev/null and b/msvc/setup_inno_small.bmp differ