Build: Use deps DLLs on Windows
This commit is contained in:
parent
68ff16e187
commit
b143d96476
|
@ -9,11 +9,11 @@ if(NOT WIN32 AND NOT ANDROID)
|
|||
set(CMAKE_FIND_FRAMEWORK NEVER)
|
||||
endif()
|
||||
|
||||
find_package(Zstd REQUIRED)
|
||||
find_package(WebP REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(JPEG REQUIRED)
|
||||
find_package(Zstd 1.5.5 REQUIRED)
|
||||
find_package(WebP REQUIRED) # v1.3.2, spews an error on Linux because no pkg-config.
|
||||
find_package(ZLIB 1.3 REQUIRED)
|
||||
find_package(PNG 1.6.40 REQUIRED)
|
||||
find_package(JPEG REQUIRED) # No version because flatpak uses libjpeg-turbo.
|
||||
find_package(CURL REQUIRED)
|
||||
if(APPLE)
|
||||
set(CMAKE_FIND_FRAMEWORK ${FIND_FRAMEWORK_BACKUP})
|
||||
|
|
|
@ -5,12 +5,6 @@
|
|||
<ProjectReference Include="..\lzma\lzma.vcxproj">
|
||||
<Project>{dd944834-7899-4c1c-a4c1-064b5009d239}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\zlib\zlib.vcxproj">
|
||||
<Project>{7ff9fdb9-d504-47db-a16a-b08071999620}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\zstd\zstd.vcxproj">
|
||||
<Project>{73ee0c55-6ffe-44e7-9c12-baa52434a797}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\libchdr_bitstream.c" />
|
||||
|
@ -36,7 +30,7 @@
|
|||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\lzma\include;$(SolutionDir)dep\zstd\lib;$(ProjectDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)include;%(AdditionalIncludeDirectories);$(SolutionDir)dep\lzma\include</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\msvc\vsprops\Targets.props" />
|
||||
|
|
|
@ -16,11 +16,6 @@
|
|||
<ClInclude Include="include\zip.h" />
|
||||
<ClInclude Include="src\crypt.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\zlib\zlib.vcxproj">
|
||||
<Project>{7ff9fdb9-d504-47db-a16a-b08071999620}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{8BDA439C-6358-45FB-9994-2FF083BABE06}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Dependencies -->
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<DepsRootDir Condition="'$(Platform)'=='x64'">$(SolutionDir)dep\msvc\deps-x64\</DepsRootDir>
|
||||
<DepsRootDir Condition="'$(Platform)'=='ARM64'">$(SolutionDir)dep\msvc\deps-arm64\</DepsRootDir>
|
||||
<DepsBinDir>$(DepsRootDir)bin\</DepsBinDir>
|
||||
<DepsLibDir>$(DepsRootDir)lib\</DepsLibDir>
|
||||
<DepsIncludeDir>$(DepsRootDir)include\</DepsIncludeDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="$(Configuration.Contains(Debug))">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
|
@ -19,6 +28,7 @@
|
|||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PreprocessorDefinitions>_HAS_EXCEPTIONS=0;_CRT_INTERNAL_NONSTDC_NAMES;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DepsIncludeDir)</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions Condition="!$(Configuration.Contains(Clang))">/Zc:__cplusplus /Zo /utf-8 %(AdditionalOptions)</AdditionalOptions>
|
||||
<!-- Force ThinLTO for Release builds, MSVC doesn't seem to do it otherwise. -->
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))"> -flto=thin %(AdditionalOptions)</AdditionalOptions>
|
||||
|
@ -26,6 +36,7 @@
|
|||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(DepsLibDir)</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<IntDir>$(SolutionDir)build\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)bin\$(Platform)\</OutDir>
|
||||
<GenerateProjectSpecificOutputFolder>false</GenerateProjectSpecificOutputFolder>
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<SDL2BinaryOutputDir>$(SolutionDir)bin\$(Platform)\</SDL2BinaryOutputDir>
|
||||
<SDL2Dir>$(SolutionDir)dep\msvc\sdl2\</SDL2Dir>
|
||||
<SDL2Dir Condition="'$(Platform)'=='x64'">$(SolutionDir)dep\msvc\deps-x64\</SDL2Dir>
|
||||
<SDL2Dir Condition="'$(Platform)'=='ARM64'">$(SolutionDir)dep\msvc\deps-arm64\</SDL2Dir>
|
||||
<SDL2LibSuffix></SDL2LibSuffix>
|
||||
<SDL2LibSuffix Condition="$(Configuration.Contains(Debug))">d</SDL2LibSuffix>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SDL2Dir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(SDL2Dir)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>SDL2$(SDL2LibSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>$(SDL2Dir)lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>SDL2$(SDL2LibSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<!--Copy the needed dlls-->
|
||||
<ItemGroup>
|
||||
<SDL2Dlls Include="$(SDL2Dir)bin\SDL2$(SDL2LibSuffix).dll" />
|
||||
</ItemGroup>
|
||||
<Target Name="SDL2CopyBinaries"
|
||||
AfterTargets="Build"
|
||||
Inputs="@(SDL2Dlls)"
|
||||
Outputs="@(SDL2Dlls -> '$(SDL2BinaryOutputDir)%(RecursiveDir)%(Filename)%(Extension)')">
|
||||
<Message Text="Copying SDL2 .dlls" Importance="High" />
|
||||
<Copy
|
||||
SourceFiles="@(SDL2Dlls)"
|
||||
DestinationFolder="$(SDL2BinaryOutputDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
/>
|
||||
</Target>
|
||||
</Project>
|
141
duckstation.sln
141
duckstation.sln
|
@ -21,11 +21,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cubeb", "dep\cubeb\cubeb.vc
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "dep\minizip\minizip.vcxproj", "{8BDA439C-6358-45FB-9994-2FF083BABE06}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "dep\zlib\zlib.vcxproj", "{7FF9FDB9-D504-47DB-A16A-B08071999620}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchdr", "dep\libchdr\libchdr.vcxproj", "{425D6C99-D1C8-43C2-B8AC-4D7B1D941017}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620} = {7FF9FDB9-D504-47DB-A16A-B08071999620}
|
||||
{DD944834-7899-4C1C-A4C1-064B5009D239} = {DD944834-7899-4C1C-A4C1-064B5009D239}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
@ -61,8 +58,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "util", "src\util\util.vcxpr
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "soundtouch", "dep\soundtouch\soundtouch.vcxproj", "{751D9F62-881C-454E-BCE8-CB9CF5F1D22F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstd", "dep\zstd\zstd.vcxproj", "{73EE0C55-6FFE-44E7-9C12-BAA52434A797}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuinfo", "dep\cpuinfo\cpuinfo.vcxproj", "{EE55AA65-EA6B-4861-810B-78354B53A807}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zydis", "dep\zydis\zydis.vcxproj", "{C51A346A-86B2-46DF-9BB3-D0AA7E5D8699}"
|
||||
|
@ -73,10 +68,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reshadefx", "dep\reshadefx\
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rapidyaml", "dep\rapidyaml\rapidyaml.vcxproj", "{1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "dep\libpng\libpng.vcxproj", "{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "dep\libjpeg\libjpeg.vcxproj", "{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
|
@ -349,38 +340,6 @@ Global
|
|||
{8BDA439C-6358-45FB-9994-2FF083BABE06}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{8BDA439C-6358-45FB-9994-2FF083BABE06}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{8BDA439C-6358-45FB-9994-2FF083BABE06}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug|x64.Build.0 = Debug|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Debug-Clang|x64.Build.0 = Debug-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast|ARM64.ActiveCfg = DebugFast|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast|ARM64.Build.0 = DebugFast|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release|x64.ActiveCfg = Release|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release|x64.Build.0 = Release|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release-Clang|x64.ActiveCfg = Release-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.Release-Clang|x64.Build.0 = Release-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG|ARM64.Build.0 = ReleaseLTCG|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{425D6C99-D1C8-43C2-B8AC-4D7B1D941017}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -855,38 +814,6 @@ Global
|
|||
{751D9F62-881C-454E-BCE8-CB9CF5F1D22F}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{751D9F62-881C-454E-BCE8-CB9CF5F1D22F}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{751D9F62-881C-454E-BCE8-CB9CF5F1D22F}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug|x64.Build.0 = Debug|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Debug-Clang|x64.Build.0 = Debug-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast|ARM64.ActiveCfg = DebugFast|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast|ARM64.Build.0 = DebugFast|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release|x64.ActiveCfg = Release|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release|x64.Build.0 = Release|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release-Clang|x64.ActiveCfg = Release-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.Release-Clang|x64.Build.0 = Release-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG|ARM64.Build.0 = ReleaseLTCG|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{EE55AA65-EA6B-4861-810B-78354B53A807}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{EE55AA65-EA6B-4861-810B-78354B53A807}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{EE55AA65-EA6B-4861-810B-78354B53A807}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -1035,70 +962,6 @@ Global
|
|||
{1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{1AD23A8A-4C20-434C-AE6B-0E07759EEB1E}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug|x64.Build.0 = Debug|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Debug-Clang|x64.Build.0 = Debug-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast|ARM64.ActiveCfg = DebugFast|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast|ARM64.Build.0 = DebugFast|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release|x64.ActiveCfg = Release|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release|x64.Build.0 = Release|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release-Clang|x64.ActiveCfg = Release-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.Release-Clang|x64.Build.0 = Release-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG|ARM64.Build.0 = ReleaseLTCG|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug|x64.Build.0 = Debug|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug-Clang|ARM64.ActiveCfg = Debug-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug-Clang|ARM64.Build.0 = Debug-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug-Clang|x64.ActiveCfg = Debug-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Debug-Clang|x64.Build.0 = Debug-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast|ARM64.ActiveCfg = DebugFast|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast|ARM64.Build.0 = DebugFast|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast-Clang|ARM64.ActiveCfg = DebugFast-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast-Clang|ARM64.Build.0 = DebugFast-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast-Clang|x64.ActiveCfg = DebugFast-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.DebugFast-Clang|x64.Build.0 = DebugFast-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release|x64.ActiveCfg = Release|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release|x64.Build.0 = Release|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release-Clang|ARM64.ActiveCfg = Release-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release-Clang|ARM64.Build.0 = Release-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release-Clang|x64.ActiveCfg = Release-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.Release-Clang|x64.Build.0 = Release-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG|ARM64.ActiveCfg = ReleaseLTCG|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG|ARM64.Build.0 = ReleaseLTCG|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG-Clang|ARM64.ActiveCfg = ReleaseLTCG-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG-Clang|ARM64.Build.0 = ReleaseLTCG-Clang|ARM64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG-Clang|x64.ActiveCfg = ReleaseLTCG-Clang|x64
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2}.ReleaseLTCG-Clang|x64.Build.0 = ReleaseLTCG-Clang|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1109,7 +972,6 @@ Global
|
|||
{3773F4CC-614E-4028-8595-22E08CA649E3} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{72F9423C-91EE-4487-AAC6-555ED6F61AA1} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{8BDA439C-6358-45FB-9994-2FF083BABE06} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{7FF9FDB9-D504-47DB-A16A-B08071999620} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{425D6C99-D1C8-43C2-B8AC-4D7B1D941017} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{DD944834-7899-4C1C-A4C1-064B5009D239} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{09553C96-9F39-49BF-8AE6-7ACBD07C410C} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
|
@ -1121,14 +983,11 @@ Global
|
|||
{E4357877-D459-45C7-B8F6-DCBB587BB528} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{8BE398E6-B882-4248-9065-FECC8728E038} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{751D9F62-881C-454E-BCE8-CB9CF5F1D22F} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{73EE0C55-6FFE-44E7-9C12-BAA52434A797} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{EE55AA65-EA6B-4861-810B-78354B53A807} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{C51A346A-86B2-46DF-9BB3-D0AA7E5D8699} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{F351C4D8-594A-4850-B77B-3C1249812CCE} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{27B8D4BB-4F01-4432-BC14-9BF6CA458EEE} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{1AD23A8A-4C20-434C-AE6B-0E07759EEB1E} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{9FD2ABCD-2DCD-4302-BE5C-DF0BA8431FA5} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
{EC3B6685-0B6E-4767-84AB-39B75EEAD2E2} = {BA490C0E-497D-4634-A21E-E65012006385}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {26E40B32-7C1D-48D0-95F4-1A500E054028}
|
||||
|
|
|
@ -26,31 +26,47 @@ if [ "$#" -ne 1 ]; then
|
|||
fi
|
||||
|
||||
export MACOSX_DEPLOYMENT_TARGET=11.0
|
||||
|
||||
INSTALLDIR="$1"
|
||||
NPROCS="$(getconf _NPROCESSORS_ONLN)"
|
||||
SDL=SDL2-2.30.1
|
||||
QT=6.6.2
|
||||
MOLTENVK=1.2.6
|
||||
ZLIB=1.3.1
|
||||
ZSTD=1.5.5
|
||||
PNG=1.6.43
|
||||
JPEG=9f
|
||||
WEBP=1.3.2
|
||||
LIBPNG=1.6.43
|
||||
LIBJPEG=9f
|
||||
LIBWEBP=1.3.2
|
||||
MOLTENVK=1.2.8
|
||||
QT=6.6.2
|
||||
|
||||
if [ "${INSTALLDIR:0:1}" != "/" ]; then
|
||||
INSTALLDIR="$PWD/$INSTALLDIR"
|
||||
fi
|
||||
|
||||
mkdir -p deps-build
|
||||
cd deps-build
|
||||
|
||||
export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
export LDFLAGS="-L$INSTALLDIR/lib -dead_strip $LDFLAGS"
|
||||
export CFLAGS="-I$INSTALLDIR/include -Os $CFLAGS"
|
||||
export CXXFLAGS="-I$INSTALLDIR/include -Os $CXXFLAGS"
|
||||
export LDFLAGS="-L$INSTALLDIR/lib $LDFLAGS"
|
||||
export CFLAGS="-I$INSTALLDIR/include $CFLAGS"
|
||||
export CXXFLAGS="-I$INSTALLDIR/include $CXXFLAGS"
|
||||
CMAKE_COMMON=(
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_PREFIX_PATH="$INSTALLDIR"
|
||||
-DCMAKE_INSTALL_PREFIX="$INSTALLDIR"
|
||||
-DCMAKE_INSTALL_NAME_DIR='$<INSTALL_PREFIX>/lib'
|
||||
)
|
||||
CMAKE_ARCH_X64=-DCMAKE_OSX_ARCHITECTURES="x86_64"
|
||||
CMAKE_ARCH_ARM64=-DCMAKE_OSX_ARCHITECTURES="arm64"
|
||||
CMAKE_ARCH_UNIVERSAL=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
|
||||
|
||||
cat > SHASUMS <<EOF
|
||||
01215ffbc8cfc4ad165ba7573750f15ddda1f971d5a66e9dcaffd37c587f473a $SDL.tar.gz
|
||||
b6a3d179aa9c41275ed0e35e502e5e3fd347dbe5117a0435a26868b231cd6246 v$MOLTENVK.tar.gz
|
||||
9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 zlib-$ZLIB.tar.gz
|
||||
9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4 zstd-$ZSTD.tar.gz
|
||||
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c libpng-$PNG.tar.xz
|
||||
04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b jpegsrc.v$JPEG.tar.gz
|
||||
2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4 libwebp-$WEBP.tar.gz
|
||||
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c libpng-$LIBPNG.tar.xz
|
||||
2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4 libwebp-$LIBWEBP.tar.gz
|
||||
04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b jpegsrc.v$LIBJPEG.tar.gz
|
||||
85beaf8abfcc54d9da0ff0257ae311abd9e7aa96e53da37e1c37d6bc04ac83cd v$MOLTENVK.tar.gz
|
||||
b89b426b9852a17d3e96230ab0871346574d635c7914480a2a27f98ff942677b qtbase-everywhere-src-$QT.tar.xz
|
||||
71584c9136d4983ad19fa2d017abbae57b055eb90c62a36bf3f45d6d21a87cb3 qtimageformats-everywhere-src-$QT.tar.xz
|
||||
5a231d59ef1b42bfbaa5174d4ff39f8e1b4ba070ef984a70b069b4b2576d8181 qtsvg-everywhere-src-$QT.tar.xz
|
||||
|
@ -59,43 +75,111 @@ ca3ac090ef3aa12566c26b482c106f1f986c5a3444e7003f379726a550530c77 qttranslations
|
|||
EOF
|
||||
|
||||
curl -L \
|
||||
-O "https://libsdl.org/release/$SDL.tar.gz" \
|
||||
-O "https://github.com/KhronosGroup/MoltenVK/archive/refs/tags/v$MOLTENVK.tar.gz" \
|
||||
-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \
|
||||
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$WEBP.tar.gz" \
|
||||
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$PNG/libpng-$PNG.tar.xz" \
|
||||
-O "https://ijg.org/files/jpegsrc.v$JPEG.tar.gz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz"
|
||||
-O "https://libsdl.org/release/$SDL.tar.gz" \
|
||||
-O "http://zlib.net/zlib-$ZLIB.tar.gz" \
|
||||
-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \
|
||||
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \
|
||||
-O "https://ijg.org/files/jpegsrc.v$LIBJPEG.tar.gz" \
|
||||
-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \
|
||||
-O "https://github.com/KhronosGroup/MoltenVK/archive/refs/tags/v$MOLTENVK.tar.gz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz"
|
||||
|
||||
shasum -a 256 --check SHASUMS
|
||||
|
||||
echo "Installing SDL..."
|
||||
rm -fr "$SDL"
|
||||
tar xf "$SDL.tar.gz"
|
||||
cd "$SDL"
|
||||
|
||||
# SDL seems fine with dual architectures.
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DSDL_X11=OFF -DBUILD_SHARED_LIBS=ON
|
||||
cmake -B build "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSDL_X11=OFF -DBUILD_SHARED_LIBS=ON
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing Zlib..."
|
||||
rm -fr "zlib-$ZLIB"
|
||||
tar xf "zlib-$ZLIB.tar.gz"
|
||||
cd "zlib-$ZLIB"
|
||||
cmake -B build "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DZLIB_BUILD_EXAMPLES=OFF
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing Zstd..."
|
||||
rm -fr "zstd-$ZSTD"
|
||||
tar xf "zstd-$ZSTD.tar.gz"
|
||||
cd "zstd-$ZSTD"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir build/cmake
|
||||
make -C build-dir "-j$NPROCS"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir-arm64 build/cmake
|
||||
make -C build-dir-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build-dir) $(realpath build-dir-arm64)
|
||||
make -C build-dir install
|
||||
cd ..
|
||||
|
||||
echo "Installing libpng..."
|
||||
rm -fr "libpng-$LIBPNG"
|
||||
tar xf "libpng-$LIBPNG.tar.xz"
|
||||
cd "libpng-$LIBPNG"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -B build
|
||||
make -C build "-j$NPROCS"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_ARM_NEON=on -B build-arm64
|
||||
make -C build-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Building libjpeg..."
|
||||
rm -fr "jpeg-$LIBJPEG"
|
||||
tar xf "jpegsrc.v$LIBJPEG.tar.gz"
|
||||
cd "jpeg-$LIBJPEG"
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --prefix="$INSTALLDIR" --disable-static --enable-shared --host="x86_64-apple-darwin" CFLAGS="-arch x86_64"
|
||||
make "-j$NPROCS"
|
||||
cd ..
|
||||
mkdir build-arm64
|
||||
cd build-arm64
|
||||
../configure --prefix="$INSTALLDIR" --disable-static --enable-shared --host="aarch64-apple-darwin" CFLAGS="-arch arm64"
|
||||
make "-j$NPROCS"
|
||||
cd ..
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing WebP..."
|
||||
rm -fr "libwebp-$LIBWEBP"
|
||||
tar xf "libwebp-$LIBWEBP.tar.gz"
|
||||
cd "libwebp-$LIBWEBP"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -B build \
|
||||
-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \
|
||||
-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON
|
||||
make -C build "-j$NPROCS"
|
||||
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -B build-arm64 \
|
||||
-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \
|
||||
-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON
|
||||
make -C build-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
# MoltenVK already builds universal binaries, nothing special to do here.
|
||||
echo "Installing MoltenVK..."
|
||||
rm -fr "MoltenVK-${MOLTENVK}"
|
||||
tar xf "v$MOLTENVK.tar.gz"
|
||||
cd "MoltenVK-${MOLTENVK}"
|
||||
./fetchDependencies --macos
|
||||
make macos
|
||||
cp Package/Latest/MoltenVK/dylib/macOS/libMoltenVK.dylib "$INSTALLDIR/lib/"
|
||||
cp Package/Latest/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib "$INSTALLDIR/lib/"
|
||||
cd ..
|
||||
|
||||
echo "Installing Qt Base..."
|
||||
rm -fr "qtbase-everywhere-src-$QT"
|
||||
tar xf "qtbase-everywhere-src-$QT.tar.xz"
|
||||
cd "qtbase-everywhere-src-$QT"
|
||||
|
||||
# since we don't have a direct reference to QtSvg, it doesn't deployed directly from the main binary
|
||||
# (only indirectly from iconengines), and the libqsvg.dylib imageformat plugin does not get deployed.
|
||||
# We could run macdeployqt twice, but that's even more janky than patching it.
|
||||
|
@ -120,25 +204,35 @@ patch -u src/tools/macdeployqt/shared/shared.cpp <<EOF
|
|||
|
||||
// Platforminputcontext plugins if QtGui is in use
|
||||
EOF
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_optimize_size=ON -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF ..
|
||||
cmake --build . --parallel
|
||||
ninja install
|
||||
cd ../../
|
||||
cmake -B build "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing Qt SVG..."
|
||||
rm -fr "qtsvg-everywhere-src-$QT"
|
||||
tar xf "qtsvg-everywhere-src-$QT.tar.xz"
|
||||
cd "qtsvg-everywhere-src-$QT"
|
||||
mkdir build
|
||||
cd build
|
||||
"$INSTALLDIR/bin/qt-configure-module" ..
|
||||
cmake --build . --parallel
|
||||
ninja install
|
||||
cd ../../
|
||||
"$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL"
|
||||
make "-j$NPROCS"
|
||||
make install
|
||||
cd ../..
|
||||
|
||||
echo "Installing Qt Image Formats..."
|
||||
rm -fr "qtimageformats-everywhere-src-$QT"
|
||||
tar xf "qtimageformats-everywhere-src-$QT.tar.xz"
|
||||
cd "qtimageformats-everywhere-src-$QT"
|
||||
mkdir build
|
||||
cd build
|
||||
"$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_system_webp=ON
|
||||
make "-j$NPROCS"
|
||||
make install
|
||||
cd ../..
|
||||
|
||||
echo "Installing Qt Tools..."
|
||||
rm -fr "qttools-everywhere-src-$QT"
|
||||
tar xf "qttools-everywhere-src-$QT.tar.xz"
|
||||
cd "qttools-everywhere-src-$QT"
|
||||
# Linguist relies on a library in the Designer target, which takes 5-7 minutes to build on the CI
|
||||
|
@ -157,88 +251,22 @@ patch -u src/linguist/CMakeLists.txt <<EOF
|
|||
EOF
|
||||
mkdir build
|
||||
cd build
|
||||
"$INSTALLDIR/bin/qt-configure-module" .. -- -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF ..
|
||||
cmake --build . --parallel
|
||||
ninja install
|
||||
cd ../../
|
||||
|
||||
echo "Installing Qt Image Formats..."
|
||||
tar xf "qtimageformats-everywhere-src-$QT.tar.xz"
|
||||
cd "qtimageformats-everywhere-src-$QT"
|
||||
mkdir build
|
||||
cd build
|
||||
"$INSTALLDIR/bin/qt-configure-module" ..
|
||||
cmake --build . --parallel
|
||||
ninja install
|
||||
cd ../../
|
||||
"$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF
|
||||
make "-j$NPROCS"
|
||||
make install
|
||||
cd ../..
|
||||
|
||||
echo "Installing Qt Translations..."
|
||||
rm -fr "qttranslations-everywhere-src-$QT"
|
||||
tar xf "qttranslations-everywhere-src-$QT.tar.xz"
|
||||
cd "qttranslations-everywhere-src-$QT"
|
||||
mkdir build
|
||||
cd build
|
||||
"$INSTALLDIR/bin/qt-configure-module" ..
|
||||
cmake --build . --parallel
|
||||
ninja install
|
||||
cd ../../
|
||||
|
||||
# Bit lame, but a custom install path breaks Qt's rcc :/
|
||||
echo "Installing Zstd..."
|
||||
tar xf "zstd-$ZSTD.tar.gz"
|
||||
cd "zstd-$ZSTD"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir build/cmake
|
||||
make -C build-dir "-j$NPROCS"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="arm64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir-arm64 build/cmake
|
||||
make -C build-dir-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build-dir) $(realpath build-dir-arm64)
|
||||
make -C build-dir install
|
||||
cd ..
|
||||
|
||||
echo "Installing libpng..."
|
||||
rm -fr "libpng-$PNG"
|
||||
tar xf "libpng-$PNG.tar.xz"
|
||||
cd "libpng-$PNG"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -B build
|
||||
make -C build "-j$NPROCS"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="arm64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -DPNG_ARM_NEON=on -B build-arm64
|
||||
make -C build-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing libjpeg..."
|
||||
rm -fr "jpeg-$JPEG"
|
||||
tar xf "jpegsrc.v$JPEG.tar.gz"
|
||||
cd "jpeg-$JPEG"
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --prefix="$INSTALLDIR" --disable-static --enable-shared --host="x86_64-apple-darwin" CFLAGS="-arch x86_64"
|
||||
"$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL"
|
||||
make "-j$NPROCS"
|
||||
cd ..
|
||||
mkdir build-arm64
|
||||
cd build-arm64
|
||||
../configure --prefix="$INSTALLDIR" --disable-static --enable-shared --host="aarch64-apple-darwin" CFLAGS="-arch arm64"
|
||||
make "-j$NPROCS"
|
||||
cd ..
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Installing WebP..."
|
||||
tar xf "libwebp-$WEBP.tar.gz"
|
||||
cd "libwebp-$WEBP"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="x86_64" -B build \
|
||||
-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \
|
||||
-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON
|
||||
make -C build "-j$NPROCS"
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_OSX_ARCHITECTURES="arm64" -B build-arm64 \
|
||||
-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \
|
||||
-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON
|
||||
make -C build-arm64 "-j$NPROCS"
|
||||
merge_binaries $(realpath build) $(realpath build-arm64)
|
||||
make -C build install
|
||||
cd ..
|
||||
make install
|
||||
cd ../..
|
||||
|
||||
echo "Cleaning up..."
|
||||
cd ..
|
||||
rm -fr deps-build
|
||||
rm -rf deps-build
|
||||
|
|
|
@ -33,7 +33,6 @@ add_library(common
|
|||
md5_digest.h
|
||||
memory_settings_interface.cpp
|
||||
memory_settings_interface.h
|
||||
minizip_helpers.cpp
|
||||
minizip_helpers.h
|
||||
path.h
|
||||
perf_scope.cpp
|
||||
|
@ -61,7 +60,7 @@ add_library(common
|
|||
target_include_directories(common PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
target_include_directories(common PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
target_link_libraries(common PUBLIC fmt Threads::Threads fast_float)
|
||||
target_link_libraries(common PRIVATE ZLIB::ZLIB minizip "${CMAKE_DL_LIBS}")
|
||||
target_link_libraries(common PRIVATE "${CMAKE_DL_LIBS}")
|
||||
|
||||
if(WIN32)
|
||||
target_sources(common PRIVATE
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)src;%(AdditionalIncludeDirectories);$(SolutionDir)dep\fast_float\include;$(SolutionDir)dep\fmt\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\minizip\include;$(SolutionDir)dep\stb\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)src;%(AdditionalIncludeDirectories);$(SolutionDir)dep\fast_float\include;$(SolutionDir)dep\fmt\include</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions);FMT_EXCEPTIONS=0</PreprocessorDefinitions>
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
</ClCompile>
|
||||
|
|
|
@ -56,7 +56,6 @@
|
|||
<ClCompile Include="memmap.cpp" />
|
||||
<ClCompile Include="memory_settings_interface.cpp" />
|
||||
<ClCompile Include="md5_digest.cpp" />
|
||||
<ClCompile Include="minizip_helpers.cpp" />
|
||||
<ClCompile Include="perf_scope.cpp" />
|
||||
<ClCompile Include="progress_callback.cpp" />
|
||||
<ClCompile Include="sha1_digest.cpp" />
|
||||
|
@ -87,15 +86,6 @@
|
|||
<ProjectReference Include="..\..\dep\fmt\fmt.vcxproj">
|
||||
<Project>{8be398e6-b882-4248-9065-fecc8728e038}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\minizip\minizip.vcxproj">
|
||||
<Project>{8bda439c-6358-45fb-9994-2ff083babe06}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zlib\zlib.vcxproj">
|
||||
<Project>{7ff9fdb9-d504-47db-a16a-b08071999620}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zstd\zstd.vcxproj">
|
||||
<Project>{73ee0c55-6ffe-44e7-9c12-baa52434a797}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\marmasm.targets" />
|
||||
|
@ -113,7 +103,6 @@
|
|||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)dep\zstd\lib</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\..\dep\msvc\vsprops\Targets.props" />
|
||||
|
|
|
@ -56,7 +56,6 @@
|
|||
<ClCompile Include="string_util.cpp" />
|
||||
<ClCompile Include="md5_digest.cpp" />
|
||||
<ClCompile Include="progress_callback.cpp" />
|
||||
<ClCompile Include="minizip_helpers.cpp" />
|
||||
<ClCompile Include="thirdparty\StackWalker.cpp">
|
||||
<Filter>thirdparty</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
|
||||
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
|
||||
|
||||
#include "minizip_helpers.h"
|
||||
#include "file_system.h"
|
||||
#include "ioapi.h"
|
||||
#include "types.h"
|
||||
#include <algorithm>
|
||||
|
||||
namespace MinizipHelpers {
|
||||
|
||||
unzFile OpenUnzMemoryFile(const void* memory, size_t memory_size)
|
||||
{
|
||||
struct MemoryFileInfo
|
||||
{
|
||||
const u8* data;
|
||||
ZPOS64_T data_size;
|
||||
ZPOS64_T position;
|
||||
};
|
||||
|
||||
MemoryFileInfo* fi = new MemoryFileInfo;
|
||||
fi->data = static_cast<const u8*>(memory);
|
||||
fi->data_size = static_cast<ZPOS64_T>(memory_size);
|
||||
fi->position = 0;
|
||||
|
||||
#define FI static_cast<MemoryFileInfo*>(stream)
|
||||
|
||||
zlib_filefunc64_def funcs = {
|
||||
[](voidpf opaque, const void* filename, int mode) -> voidpf { return opaque; }, // open
|
||||
[](voidpf opaque, voidpf stream, void* buf, uLong size) -> uLong { // read
|
||||
const ZPOS64_T remaining = FI->data_size - FI->position;
|
||||
const ZPOS64_T to_read = std::min(remaining, static_cast<ZPOS64_T>(size));
|
||||
if (to_read > 0)
|
||||
{
|
||||
std::memcpy(buf, FI->data + FI->position, to_read);
|
||||
FI->position += to_read;
|
||||
}
|
||||
|
||||
return static_cast<uLong>(to_read);
|
||||
},
|
||||
[](voidpf opaque, voidpf stream, const void* buf, uLong size) -> uLong { return 0; }, // write
|
||||
[](voidpf opaque, voidpf stream) -> ZPOS64_T { return static_cast<ZPOS64_T>(FI->position); }, // tell
|
||||
[](voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) -> long { // seek
|
||||
ZPOS64_T new_position = FI->position;
|
||||
if (origin == SEEK_SET)
|
||||
new_position = static_cast<int>(offset);
|
||||
else if (origin == SEEK_CUR)
|
||||
new_position += static_cast<int>(offset);
|
||||
else
|
||||
new_position = FI->data_size;
|
||||
if (new_position < 0 || new_position > FI->data_size)
|
||||
return -1;
|
||||
|
||||
FI->position = new_position;
|
||||
return 0;
|
||||
},
|
||||
[](voidpf opaque, voidpf stream) -> int {
|
||||
delete FI;
|
||||
return 0;
|
||||
}, // close
|
||||
[](voidpf opaque, voidpf stream) -> int { return 0; }, // testerror
|
||||
static_cast<voidpf>(fi)};
|
||||
|
||||
#undef FI
|
||||
|
||||
unzFile zf = unzOpen2_64("", &funcs);
|
||||
if (!zf)
|
||||
delete fi;
|
||||
|
||||
return zf;
|
||||
}
|
||||
|
||||
unzFile OpenUnzFile(const char* filename)
|
||||
{
|
||||
zlib_filefunc64_def funcs;
|
||||
fill_fopen64_filefunc(&funcs);
|
||||
|
||||
funcs.zopen64_file = [](voidpf opaque, const void* filename, int mode) -> voidpf {
|
||||
const char* mode_fopen = NULL;
|
||||
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER) == ZLIB_FILEFUNC_MODE_READ)
|
||||
mode_fopen = "rb";
|
||||
else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
|
||||
mode_fopen = "r+b";
|
||||
else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
|
||||
mode_fopen = "wb";
|
||||
|
||||
return FileSystem::OpenCFile(static_cast<const char*>(filename), mode_fopen);
|
||||
};
|
||||
|
||||
return unzOpen2_64(filename, &funcs);
|
||||
}
|
||||
|
||||
} // namespace MinizipHelpers
|
|
@ -1,12 +1,95 @@
|
|||
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <stenzek@gmail.com>
|
||||
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "file_system.h"
|
||||
#include "ioapi.h"
|
||||
#include "types.h"
|
||||
#include "unzip.h"
|
||||
#include <algorithm>
|
||||
|
||||
namespace MinizipHelpers {
|
||||
|
||||
unzFile OpenUnzMemoryFile(const void* memory, size_t memory_size);
|
||||
unzFile OpenUnzFile(const char* filename);
|
||||
[[maybe_unused]] static unzFile OpenUnzMemoryFile(const void* memory, size_t memory_size)
|
||||
{
|
||||
struct MemoryFileInfo
|
||||
{
|
||||
const u8* data;
|
||||
ZPOS64_T data_size;
|
||||
ZPOS64_T position;
|
||||
};
|
||||
|
||||
MemoryFileInfo* fi = new MemoryFileInfo;
|
||||
fi->data = static_cast<const u8*>(memory);
|
||||
fi->data_size = static_cast<ZPOS64_T>(memory_size);
|
||||
fi->position = 0;
|
||||
|
||||
#define FI static_cast<MemoryFileInfo*>(stream)
|
||||
|
||||
zlib_filefunc64_def funcs = {
|
||||
[](voidpf opaque, const void* filename, int mode) -> voidpf { return opaque; }, // open
|
||||
[](voidpf opaque, voidpf stream, void* buf, uLong size) -> uLong { // read
|
||||
const ZPOS64_T remaining = FI->data_size - FI->position;
|
||||
const ZPOS64_T to_read = std::min(remaining, static_cast<ZPOS64_T>(size));
|
||||
if (to_read > 0)
|
||||
{
|
||||
std::memcpy(buf, FI->data + FI->position, to_read);
|
||||
FI->position += to_read;
|
||||
}
|
||||
|
||||
return static_cast<uLong>(to_read);
|
||||
},
|
||||
[](voidpf opaque, voidpf stream, const void* buf, uLong size) -> uLong { return 0; }, // write
|
||||
[](voidpf opaque, voidpf stream) -> ZPOS64_T { return static_cast<ZPOS64_T>(FI->position); }, // tell
|
||||
[](voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) -> long { // seek
|
||||
ZPOS64_T new_position = FI->position;
|
||||
if (origin == SEEK_SET)
|
||||
new_position = static_cast<int>(offset);
|
||||
else if (origin == SEEK_CUR)
|
||||
new_position += static_cast<int>(offset);
|
||||
else
|
||||
new_position = FI->data_size;
|
||||
if (new_position < 0 || new_position > FI->data_size)
|
||||
return -1;
|
||||
|
||||
FI->position = new_position;
|
||||
return 0;
|
||||
},
|
||||
[](voidpf opaque, voidpf stream) -> int {
|
||||
delete FI;
|
||||
return 0;
|
||||
}, // close
|
||||
[](voidpf opaque, voidpf stream) -> int { return 0; }, // testerror
|
||||
static_cast<voidpf>(fi)};
|
||||
|
||||
#undef FI
|
||||
|
||||
unzFile zf = unzOpen2_64("", &funcs);
|
||||
if (!zf)
|
||||
delete fi;
|
||||
|
||||
return zf;
|
||||
}
|
||||
|
||||
[[maybe_unused]] static unzFile OpenUnzFile(const char* filename)
|
||||
{
|
||||
zlib_filefunc64_def funcs;
|
||||
fill_fopen64_filefunc(&funcs);
|
||||
|
||||
funcs.zopen64_file = [](voidpf opaque, const void* filename, int mode) -> voidpf {
|
||||
const char* mode_fopen = NULL;
|
||||
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER) == ZLIB_FILEFUNC_MODE_READ)
|
||||
mode_fopen = "rb";
|
||||
else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
|
||||
mode_fopen = "r+b";
|
||||
else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
|
||||
mode_fopen = "wb";
|
||||
|
||||
return FileSystem::OpenCFile(static_cast<const char*>(filename), mode_fopen);
|
||||
};
|
||||
|
||||
return unzOpen2_64(filename, &funcs);
|
||||
}
|
||||
|
||||
} // namespace MinizipHelpers
|
|
@ -184,12 +184,6 @@
|
|||
<ProjectReference Include="..\..\dep\xxhash\xxhash.vcxproj">
|
||||
<Project>{09553c96-9f39-49bf-8ae6-7acbd07c410c}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zlib\zlib.vcxproj">
|
||||
<Project>{7ff9fdb9-d504-47db-a16a-b08071999620}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zstd\zstd.vcxproj">
|
||||
<Project>{73ee0c55-6ffe-44e7-9c12-baa52434a797}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zydis\zydis.vcxproj" Condition="'$(Platform)'=='x64' And $(Configuration.Contains('Debug'))">
|
||||
<Project>{c51a346a-86b2-46df-9bb3-d0aa7e5d8699}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -341,6 +341,9 @@
|
|||
<ProjectReference Include="..\..\dep\imgui\imgui.vcxproj">
|
||||
<Project>{bb08260f-6fbc-46af-8924-090ee71360c6}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\minizip\minizip.vcxproj">
|
||||
<Project>{8bda439c-6358-45fb-9994-2ff083babe06}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\common\common.vcxproj">
|
||||
<Project>{ee054e08-3799-4a59-a422-18259c105ffd}</Project>
|
||||
</ProjectReference>
|
||||
|
@ -378,6 +381,7 @@
|
|||
<ClCompile>
|
||||
<PreprocessorDefinitions>QT_NO_EXCEPTIONS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DisableSpecificWarnings>4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)dep\minizip\include</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="$(Configuration.Contains(Clang))">
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
<ProjectReference Include="..\..\dep\minizip\minizip.vcxproj">
|
||||
<Project>{8bda439c-6358-45fb-9994-2ff083babe06}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zlib\zlib.vcxproj">
|
||||
<Project>{7ff9fdb9-d504-47db-a16a-b08071999620}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\common\common.vcxproj">
|
||||
<Project>{ee054e08-3799-4a59-a422-18259c105ffd}</Project>
|
||||
</ProjectReference>
|
||||
|
@ -31,10 +28,10 @@
|
|||
<Import Project="..\common\common.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)dep\minizip\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)dep\minizip\include;$(SolutionDir)src</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies);Comctl32.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>%(AdditionalDependencies);Comctl32.lib;zlib.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\..\dep\msvc\vsprops\Targets.props" />
|
||||
|
|
|
@ -77,7 +77,7 @@ target_precompile_headers(util PRIVATE "pch.h")
|
|||
target_include_directories(util PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
target_include_directories(util PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
target_link_libraries(util PUBLIC common simpleini imgui)
|
||||
target_link_libraries(util PRIVATE libchdr JPEG::JPEG PNG::PNG ZLIB::ZLIB soundtouch xxhash Zstd::Zstd reshadefx)
|
||||
target_link_libraries(util PRIVATE libchdr JPEG::JPEG PNG::PNG WebP::libwebp ZLIB::ZLIB soundtouch xxhash Zstd::Zstd reshadefx)
|
||||
|
||||
if(ENABLE_CUBEB)
|
||||
target_sources(util PRIVATE
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<PreprocessorDefinitions>ENABLE_CUBEB=1;ENABLE_SDL2=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Platform)'!='ARM64'">%(PreprocessorDefinitions);ENABLE_OPENGL=1;ENABLE_VULKAN=1</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">%(PreprocessorDefinitions);SOUNDTOUCH_USE_NEON</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\soundtouch\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\libchdr\include;$(SolutionDir)dep\cubeb\include;$(SolutionDir)dep\d3d12ma\include;$(SolutionDir)dep\zstd\lib;$(SolutionDir)dep\libpng\include;$(SolutionDir)dep\libjpeg\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\soundtouch\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)dep\libchdr\include;$(SolutionDir)dep\cubeb\include;$(SolutionDir)dep\d3d12ma\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Platform)'!='ARM64'">%(AdditionalIncludeDirectories);$(SolutionDir)dep\glad\include;$(SolutionDir)dep\vulkan\include;$(SolutionDir)dep\glslang</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
@ -20,6 +20,35 @@
|
|||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<Import Project="..\..\dep\msvc\vsprops\SDL2Compile.props" />
|
||||
<Import Condition="$(Configuration.Contains('Debug'))" Project="..\..\dep\winpixeventruntime\WinPixEventRuntime.props" />
|
||||
|
||||
<!-- Dependency linking and DLL copying -->
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DepsIncludeDir)SDL2</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies);libjpeg.lib;libpng16.lib;libwebp.lib;SDL2.lib;zlib.lib;zstd.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<DepsDLLs Include="$(DepsBinDir)libjpeg.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)libpng16.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)libsharpyuv.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)libwebp.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)SDL2.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)zlib1.dll" />
|
||||
<DepsDLLs Include="$(DepsBinDir)zstd.dll" />
|
||||
</ItemGroup>
|
||||
<Target Name="DepsCopyDLLs"
|
||||
AfterTargets="Build"
|
||||
Inputs="@(DepsDLLs)"
|
||||
Outputs="@(DepsDLLs -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
|
||||
<Message Text="Copying Dependency DLLs" Importance="High" />
|
||||
<Copy
|
||||
SourceFiles="@(DepsDLLs)"
|
||||
DestinationFolder="$(OutDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
/>
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
@ -254,12 +254,6 @@
|
|||
<ProjectReference Include="..\..\dep\libchdr\libchdr.vcxproj">
|
||||
<Project>{425d6c99-d1c8-43c2-b8ac-4d7b1d941017}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\libjpeg\libjpeg.vcxproj">
|
||||
<Project>{ec3b6685-0b6e-4767-84ab-39b75eead2e2}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\libpng\libpng.vcxproj">
|
||||
<Project>{9fd2abcd-2dcd-4302-be5c-df0ba8431fa5}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\reshadefx\reshadefx.vcxproj">
|
||||
<Project>{27b8d4bb-4f01-4432-bc14-9bf6ca458eee}</Project>
|
||||
</ProjectReference>
|
||||
|
@ -272,9 +266,6 @@
|
|||
<ProjectReference Include="..\..\dep\glslang\glslang.vcxproj" Condition="'$(Platform)'!='ARM64'">
|
||||
<Project>{7f909e29-4808-4bd9-a60c-56c51a3aaec2}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\dep\zstd\zstd.vcxproj">
|
||||
<Project>{73ee0c55-6ffe-44e7-9c12-baa52434a797}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\common\common.vcxproj">
|
||||
<Project>{ee054e08-3799-4a59-a422-18259c105ffd}</Project>
|
||||
</ProjectReference>
|
||||
|
|
Loading…
Reference in New Issue