Index: Installer/Installer.vcxproj |
— | — | @@ -0,0 +1,80 @@ |
| 2 | +<?xml version="1.0" encoding="utf-8"?>
|
| 3 | +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
| 4 | + <ItemGroup Label="ProjectConfigurations">
|
| 5 | + <ProjectConfiguration Include="Debug|Win32">
|
| 6 | + <Configuration>Debug</Configuration>
|
| 7 | + <Platform>Win32</Platform>
|
| 8 | + </ProjectConfiguration>
|
| 9 | + <ProjectConfiguration Include="Release|Win32">
|
| 10 | + <Configuration>Release</Configuration>
|
| 11 | + <Platform>Win32</Platform>
|
| 12 | + </ProjectConfiguration>
|
| 13 | + </ItemGroup>
|
| 14 | + <PropertyGroup Label="Globals">
|
| 15 | + <ProjectGuid>{4DC98095-5F42-4A44-962C-346ABEE2C9B6}</ProjectGuid>
|
| 16 | + <RootNamespace>Installer</RootNamespace>
|
| 17 | + </PropertyGroup>
|
| 18 | + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
| 19 | + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
| 20 | + <ConfigurationType>Application</ConfigurationType>
|
| 21 | + <UseDebugLibraries>true</UseDebugLibraries>
|
| 22 | + <CharacterSet>MultiByte</CharacterSet>
|
| 23 | + </PropertyGroup>
|
| 24 | + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
| 25 | + <ConfigurationType>Application</ConfigurationType>
|
| 26 | + <UseDebugLibraries>false</UseDebugLibraries>
|
| 27 | + <WholeProgramOptimization>true</WholeProgramOptimization>
|
| 28 | + <CharacterSet>MultiByte</CharacterSet>
|
| 29 | + </PropertyGroup>
|
| 30 | + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
| 31 | + <ImportGroup Label="ExtensionSettings">
|
| 32 | + </ImportGroup>
|
| 33 | + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
| 34 | + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
| 35 | + </ImportGroup>
|
| 36 | + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
| 37 | + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
| 38 | + </ImportGroup>
|
| 39 | + <PropertyGroup Label="UserMacros" />
|
| 40 | + <PropertyGroup />
|
| 41 | + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
| 42 | + <ClCompile>
|
| 43 | + <WarningLevel>Level3</WarningLevel>
|
| 44 | + <Optimization>Disabled</Optimization>
|
| 45 | + </ClCompile>
|
| 46 | + <Link>
|
| 47 | + <GenerateDebugInformation>true</GenerateDebugInformation>
|
| 48 | + </Link>
|
| 49 | + <PostBuildEvent>
|
| 50 | + <Command>$(OutDir)buildtool.exe makeinstaller $(ProjectDir)dxgl.nsi</Command>
|
| 51 | + </PostBuildEvent>
|
| 52 | + <PostBuildEvent>
|
| 53 | + <Message>Building installer...</Message>
|
| 54 | + </PostBuildEvent>
|
| 55 | + </ItemDefinitionGroup>
|
| 56 | + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
| 57 | + <ClCompile>
|
| 58 | + <WarningLevel>Level3</WarningLevel>
|
| 59 | + <Optimization>MaxSpeed</Optimization>
|
| 60 | + <FunctionLevelLinking>true</FunctionLevelLinking>
|
| 61 | + <IntrinsicFunctions>true</IntrinsicFunctions>
|
| 62 | + </ClCompile>
|
| 63 | + <Link>
|
| 64 | + <GenerateDebugInformation>true</GenerateDebugInformation>
|
| 65 | + <EnableCOMDATFolding>true</EnableCOMDATFolding>
|
| 66 | + <OptimizeReferences>true</OptimizeReferences>
|
| 67 | + </Link>
|
| 68 | + <PostBuildEvent>
|
| 69 | + <Command>$(OutDir)buildtool.exe makeinstaller $(ProjectDir)dxgl.nsi</Command>
|
| 70 | + </PostBuildEvent>
|
| 71 | + <PostBuildEvent>
|
| 72 | + <Message>Building installer...</Message>
|
| 73 | + </PostBuildEvent>
|
| 74 | + </ItemDefinitionGroup>
|
| 75 | + <ItemGroup>
|
| 76 | + <None Include="dxgl.nsi" />
|
| 77 | + </ItemGroup>
|
| 78 | + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
| 79 | + <ImportGroup Label="ExtensionTargets">
|
| 80 | + </ImportGroup>
|
| 81 | +</Project> |
\ No newline at end of file |
Index: Installer/Installer.vcxproj.filters |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?xml version="1.0" encoding="utf-8"?>
|
| 3 | +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
| 4 | + <ItemGroup>
|
| 5 | + <None Include="dxgl.nsi" />
|
| 6 | + </ItemGroup>
|
| 7 | +</Project> |
\ No newline at end of file |
Index: Installer/dxgl.nsi |
— | — | @@ -70,7 +70,11 @@ |
71 | 71 | !else
|
72 | 72 | Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
73 | 73 | !endif
|
| 74 | +!ifdef _DEBUG
|
| 75 | +OutFile "DXGL-${PRODUCT_VERSION}-win32-Debug.exe"
|
| 76 | +!else
|
74 | 77 | OutFile "DXGL-${PRODUCT_VERSION}-win32.exe"
|
| 78 | +!endif
|
75 | 79 | InstallDir "$PROGRAMFILES\DXGL"
|
76 | 80 | InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
|
77 | 81 | ShowInstDetails show
|
Index: Installer |
Property changes on: Installer |
___________________________________________________________________ |
Modified: svn:ignore |
## -1 +1,4 ## |
78 | 82 | *.exe |
| 83 | +Debug |
| 84 | +Release |
| 85 | +Installer.vcxproj.user |
Index: ReadMe.txt |
— | — | @@ -1,4 +1,4 @@ |
2 | | -DXGL 0.2.3
|
| 2 | +DXGL 0.3.0
|
3 | 3 | http://www.williamfeely.info/wiki/DXGL
|
4 | 4 |
|
5 | 5 | == Introduction ==
|
Index: buildtool/buildtool.cpp |
— | — | @@ -221,7 +221,39 @@ |
222 | 222 |
|
223 | 223 | int MakeInstaller(char *path)
|
224 | 224 | {
|
225 | | - // Registry path: HKEY_LOCAL_MACHINE\SOFTWARE\NSIS\(Default)
|
| 225 | + HKEY hKey;
|
| 226 | + bool foundnsis = false;
|
| 227 | + char nsispath[(MAX_PATH+1)*2];
|
| 228 | + DWORD buffersize = MAX_PATH+1;
|
| 229 | + if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,"Software\\NSIS",0,KEY_READ,&hKey) == ERROR_SUCCESS)
|
| 230 | + {
|
| 231 | + if(RegQueryValueExA(hKey,"",NULL,NULL,(LPBYTE)nsispath,&buffersize) == ERROR_SUCCESS)
|
| 232 | + {
|
| 233 | + strcat(nsispath,"\\makensis.exe");
|
| 234 | + PROCESS_INFORMATION process;
|
| 235 | + STARTUPINFOA startinfo;
|
| 236 | + ZeroMemory(&startinfo,sizeof(STARTUPINFOA));
|
| 237 | + startinfo.cb = sizeof(STARTUPINFOA);
|
| 238 | + strcat(nsispath," ");
|
| 239 | + strcat(nsispath,path);
|
| 240 | + if(CreateProcessA(NULL,nsispath,NULL,NULL,FALSE,0,NULL,NULL,&startinfo,&process))
|
| 241 | + {
|
| 242 | + foundnsis = true;
|
| 243 | + WaitForSingleObject(process.hProcess,INFINITE);
|
| 244 | + CloseHandle(process.hProcess);
|
| 245 | + CloseHandle(process.hThread);
|
| 246 | + }
|
| 247 | + }
|
| 248 | + RegCloseKey(hKey);
|
| 249 | + }
|
| 250 | + if(!foundnsis)
|
| 251 | + {
|
| 252 | + int result = MessageBoxA(NULL,"Could not find NSIS, would you like to download it?","NSIS not found",
|
| 253 | + MB_YESNO|MB_ICONERROR);
|
| 254 | + if(result == IDYES) ShellExecuteA(NULL,"open","http://nsis.sourceforge.net/Main_Page",NULL,NULL,SW_SHOWNORMAL);
|
| 255 | + cout << "ERROR: NSIS not found." << endl;
|
| 256 | + return -1;
|
| 257 | + }
|
226 | 258 | return 0;
|
227 | 259 | }
|
228 | 260 |
|
Index: dxgl.sln |
— | — | @@ -32,6 +32,15 @@ |
33 | 33 | EndProject
|
34 | 34 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildtool", "buildtool\buildtool.vcxproj", "{34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0}"
|
35 | 35 | EndProject
|
| 36 | +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Installer", "Installer\Installer.vcxproj", "{4DC98095-5F42-4A44-962C-346ABEE2C9B6}"
|
| 37 | + ProjectSection(ProjectDependencies) = postProject
|
| 38 | + {8041FD11-3A2E-4EE9-A3FF-A9755803B7FB} = {8041FD11-3A2E-4EE9-A3FF-A9755803B7FB}
|
| 39 | + {9F051466-EA2C-4195-80B1-1B7C5B3F4AC2} = {9F051466-EA2C-4195-80B1-1B7C5B3F4AC2}
|
| 40 | + {3A14A469-504B-4E32-8F23-063F8A2A8B5D} = {3A14A469-504B-4E32-8F23-063F8A2A8B5D}
|
| 41 | + {34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0} = {34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0}
|
| 42 | + {DF380DA1-90DE-4174-9A1F-EEC16C5B5879} = {DF380DA1-90DE-4174-9A1F-EEC16C5B5879}
|
| 43 | + EndProjectSection
|
| 44 | +EndProject
|
36 | 45 | Global
|
37 | 46 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
38 | 47 | Debug no DXGL|Win32 = Debug no DXGL|Win32
|
— | — | @@ -96,6 +105,14 @@ |
97 | 106 | {34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0}.Release no DXGL|Win32.Build.0 = Release|Win32
|
98 | 107 | {34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0}.Release|Win32.ActiveCfg = Release|Win32
|
99 | 108 | {34883A93-DFE4-42EF-9DAE-BEE4D3FC87D0}.Release|Win32.Build.0 = Release|Win32
|
| 109 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Debug no DXGL|Win32.ActiveCfg = Debug|Win32
|
| 110 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Debug no DXGL|Win32.Build.0 = Debug|Win32
|
| 111 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Debug|Win32.ActiveCfg = Debug|Win32
|
| 112 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Debug|Win32.Build.0 = Debug|Win32
|
| 113 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Release no DXGL|Win32.ActiveCfg = Release|Win32
|
| 114 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Release no DXGL|Win32.Build.0 = Release|Win32
|
| 115 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Release|Win32.ActiveCfg = Release|Win32
|
| 116 | + {4DC98095-5F42-4A44-962C-346ABEE2C9B6}.Release|Win32.Build.0 = Release|Win32
|
100 | 117 | EndGlobalSection
|
101 | 118 | GlobalSection(SolutionProperties) = preSolution
|
102 | 119 | HideSolutionNode = FALSE
|