Pārlūkot izejas kodu

Improve sdl (#1816)

* Allow libsdl_<libs> to work in static (or with statically built libsdl)

* libsdl_image: Fix libsdl_image

* Some fixes

* Some fixes

* More fixes

* Fix SDL find defines

* Update xmake.lua

* Update xmake.lua

* More fixes

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* fixes and logs

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* Update xmake.lua

* improve sdl

* pass freetype

* fix sep

* add verbose

* Update xmake.lua

* fix missing zlib

* fix wasm

* fix ttf

* fix sdl_ttf

* fix path

* improve shared

* revert ci

* format

* fix sdl gfx

* fix sdl gfx

* improve sdl ttf

* fix gfx

* improve sdl ttf

* improve sdl ttf

* improve sdl ttf

* fix net

* improve wasm and bsd

* improve gfx

* test

* Update xmake.lua

* fix gfx

* port sdl gfx

* export dll

* Update xmake.lua

---------

Co-authored-by: SirLynix <[email protected]>
ruki 2 gadi atpakaļ
vecāks
revīzija
cad11b9cac

+ 6 - 4
packages/l/libsdl/xmake.lua

@@ -49,6 +49,10 @@ package("libsdl")
         add_configs("with_x", {description = "Enables X support (requires it on the system)", default = true, type = "boolean"})
     end
 
+    if is_plat("wasm") then
+        add_cxflags("-sUSE_SDL=0")
+    end
+
     on_load(function (package)
         if package:config("use_sdlmain") then
             package:add("components", "main")
@@ -172,9 +176,6 @@ package("libsdl")
                 end
                 table.insert(configs, "-DCMAKE_INCLUDE_PATH=" .. table.concat(includedirs, ";"))
             end
-        elseif package:is_plat("bsd") then
-            opt = opt or {}
-            opt.packagedeps = "libusb"
         elseif package:is_plat("wasm") then
             -- emscripten enables USE_SDL by default which will conflict with the sdl headers
             opt = opt or {}
@@ -184,5 +185,6 @@ package("libsdl")
     end)
 
     on_test(function (package)
-        assert(package:has_cfuncs("SDL_Init", {includes = "SDL2/SDL.h", configs = {defines = "SDL_MAIN_HANDLED"}}))
+        assert(package:has_cfuncs("SDL_Init",
+            {includes = "SDL2/SDL.h", configs = {defines = "SDL_MAIN_HANDLED"}}))
     end)

+ 0 - 176
packages/l/libsdl_gfx/patches/1.0.4/add-x64-support.patch

@@ -1,176 +0,0 @@
-diff --git a/SDL2_gfx.sln b/SDL2_gfx.sln
-index 786f339..bd7635b 100644
---- a/SDL2_gfx.sln
-+++ b/SDL2_gfx.sln
-@@ -15,12 +15,18 @@ Global
- 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
- 		Debug|Win32 = Debug|Win32
- 		Release|Win32 = Release|Win32
-+		Debug|x64 = Debug|x64
-+		Release|x64 = Release|x64
- 	EndGlobalSection
- 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
- 		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Debug|Win32.ActiveCfg = Debug|Win32
- 		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Debug|Win32.Build.0 = Debug|Win32
- 		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Release|Win32.ActiveCfg = Release|Win32
- 		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Release|Win32.Build.0 = Release|Win32
-+		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Debug|x64.ActiveCfg = Debug|x64
-+		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Debug|x64.Build.0 = Debug|x64
-+		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Release|x64.ActiveCfg = Release|x64
-+		{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}.Release|x64.Build.0 = Release|x64
- 		{AE22EFD3-6F6D-48C0-AF3D-EF190406BEDC}.Debug|Win32.ActiveCfg = Debug|Win32
- 		{AE22EFD3-6F6D-48C0-AF3D-EF190406BEDC}.Debug|Win32.Build.0 = Debug|Win32
- 		{AE22EFD3-6F6D-48C0-AF3D-EF190406BEDC}.Release|Win32.ActiveCfg = Release|Win32
-diff --git a/SDL2_gfx.vcxproj b/SDL2_gfx.vcxproj
-index e842d8a..4ae0cfa 100644
---- a/SDL2_gfx.vcxproj
-+++ b/SDL2_gfx.vcxproj
-@@ -9,24 +9,42 @@
-       <Configuration>Release</Configuration>
-       <Platform>Win32</Platform>
-     </ProjectConfiguration>
-+    <ProjectConfiguration Include="Debug|x64">
-+      <Configuration>Debug</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release|x64">
-+      <Configuration>Release</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-   </ItemGroup>
-   <PropertyGroup Label="Globals">
-     <ProjectGuid>{AE22EFD3-6E6D-48C0-AF3D-EF190406BEDC}</ProjectGuid>
-     <RootNamespace>SDL2_gfx</RootNamespace>
-     <Keyword>Win32Proj</Keyword>
--    <WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
-   </PropertyGroup>
-   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-     <ConfigurationType>DynamicLibrary</ConfigurationType>
-     <CharacterSet>Unicode</CharacterSet>
-     <WholeProgramOptimization>true</WholeProgramOptimization>
--    <PlatformToolset>v141</PlatformToolset>
-+    <PlatformToolset>v142</PlatformToolset>
-   </PropertyGroup>
-   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-     <ConfigurationType>DynamicLibrary</ConfigurationType>
-     <CharacterSet>Unicode</CharacterSet>
--    <PlatformToolset>v141</PlatformToolset>
-+    <PlatformToolset>v142</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <WholeProgramOptimization>true</WholeProgramOptimization>
-+    <PlatformToolset>v142</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <PlatformToolset>v142</PlatformToolset>
-   </PropertyGroup>
-   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-   <ImportGroup Label="ExtensionSettings">
-@@ -37,6 +55,12 @@
-   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-   </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-   <PropertyGroup Label="UserMacros" />
-   <PropertyGroup>
-     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-@@ -46,6 +70,12 @@
-     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
-     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
-     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
-+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
-+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
-+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
-   </PropertyGroup>
-   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-     <ClCompile>
-@@ -104,6 +134,63 @@
-       </Command>
-     </PostBuildEvent>
-   </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <AdditionalIncludeDirectories>..\SDL2-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;DLL_EXPORT;USE_MMX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader>
-+      </PrecompiledHeader>
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>..\SDL2-2.0.5\VisualC\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Windows</SubSystem>
-+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-+      <DataExecutionPrevention>
-+      </DataExecutionPrevention>
-+      <ImportLibrary>
-+      </ImportLibrary>
-+      <TargetMachine>MachineX64</TargetMachine>
-+    </Link>
-+    <PostBuildEvent>
-+      <Command>
-+      </Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+    <ClCompile>
-+      <Optimization>MaxSpeed</Optimization>
-+      <AdditionalIncludeDirectories>..\SDL2-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <FunctionLevelLinking>true</FunctionLevelLinking>
-+      <PrecompiledHeader>
-+      </PrecompiledHeader>
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>..\SDL2-2.0.5\VisualC\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Windows</SubSystem>
-+      <OptimizeReferences>true</OptimizeReferences>
-+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+      <TargetMachine>MachineX64</TargetMachine>
-+    </Link>
-+    <PostBuildEvent>
-+      <Command>
-+      </Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-   <ItemGroup>
-     <ClCompile Include="SDL2_framerate.c" />
-     <ClCompile Include="SDL2_gfxPrimitives.c" />
-@@ -121,10 +208,12 @@
-     <CustomBuildStep Include="ChangeLog">
-       <FileType>Document</FileType>
-       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-     </CustomBuildStep>
-     <CustomBuildStep Include="README">
-       <FileType>Document</FileType>
-       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-     </CustomBuildStep>
-   </ItemGroup>
-   <ItemGroup>

+ 32 - 48
packages/l/libsdl_gfx/xmake.lua

@@ -9,7 +9,6 @@ package("libsdl_gfx")
         add_versions("ferzkopp:1.0.4", "b6da07583b7fb8f4d8cee97cac9176b97a287f56a8112e22f38183ecf47b9dcb")
         add_versions("sourceforge:1.0.4", "63e0e01addedc9df2f85b93a248f06e8a04affa014a835c2ea34bfe34e576262")
 
-        add_patches("1.0.4", path.join(os.scriptdir(), "patches", "1.0.4", "add-x64-support.patch"), "2ea0eda111d95864bbc9aedbf8aa91dd3923208d2816a626dfd6bc173986e426")
         add_patches("1.0.4", path.join(os.scriptdir(), "patches", "1.0.4", "lrint_fix.patch"), "9fb928306fb25293720214377bff2f605f60ea26f43ea5346cf1268c504aff1a")
     elseif is_plat("macosx", "linux") then
         set_urls("https://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-$(version).tar.gz")
@@ -25,62 +24,47 @@ package("libsdl_gfx")
         add_extsources("brew::sdl2_gfx")
     end
 
-    add_deps("libsdl")
-
-    add_links("SDL2_gfx")
+    if is_plat("wasm") then
+        add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+    end
 
     add_includedirs("include", "include/SDL2")
 
-    on_install("windows", function(package)
-        import("core.tool.toolchain")
-        local vs = tonumber(toolchain.load("msvc"):config("vs"))
-        if vs < 2019 then
-            raise("Your compiler is too old to use this library.")
-        end
-
-        local file_name = "SDL2_gfx.vcxproj"
-        local content = io.readfile(file_name)
-        content = content:gsub("%%%(AdditionalIncludeDirectories%)", package:dep("libsdl"):installdir("include", "SDL2") .. ";%%(AdditionalIncludeDirectories)")
-        content = content:gsub("%%%(AdditionalLibraryDirectories%)", package:dep("libsdl"):installdir("lib") .. ";%%(AdditionalLibraryDirectories)")
-        io.writefile(file_name, content)
-
-        -- MSVC trick no longer required since C++11
-        io.replace("SDL2_gfxPrimitives.c", "#if defined(_MSC_VER)", "#if 0", {plain = true})
-
-        local configs = {}
-        local arch = package:is_arch("x86") and "Win32" or "x64"
-        local mode = package:debug() and "Debug" or "Release"
-
-        table.insert(configs, "/property:Configuration=" .. mode)
-        table.insert(configs, "/property:Platform=" .. arch)
-        if vs >= 2022 then
-            table.insert(configs, "/p:PlatformToolset=v143")
+    on_load(function (package)
+        if package:config("shared") then
+            package:add("deps", "libsdl", { configs = { shared = true }})
+        else
+            package:add("deps", "libsdl")
         end
-        table.insert(configs, "-target:SDL2_gfx")
-
-        import("package.tools.msbuild").build(package, configs)
-
-        local build_dir = path.join(arch, mode)
-        os.cp(path.join(build_dir, "*.lib"), package:installdir("lib"))
-        os.cp(path.join(build_dir, "*.dll"), package:installdir("bin"))
-        os.cp("*.h", package:installdir("include", "SDL2"))
     end)
 
-    on_install("macosx", "linux", function (package)
+    on_install("windows|x86", "windows|x64", "macosx", "linux", function(package)
+        io.writefile("xmake.lua", [[
+            add_rules("mode.debug", "mode.release")
+            if is_kind("shared") then
+                add_requires("libsdl", {configs = {shared = true}})
+            else
+                add_requires("libsdl")
+            end
+            target("SDL2_gfx")
+                set_kind("$(kind)")
+                add_files("*.c")
+                add_headerfiles("*.h", {prefixdir = "SDL2"})
+                add_packages("libsdl")
+                add_rules("utils.install.pkgconfig_importfiles")
+                if is_plat("windows") and is_kind("shared") then
+                    add_defines("DLL_EXPORT")
+                end
+                if is_arch("x86", "i386") then
+                    add_defines("USE_MMX")
+                end
+        ]])
         local configs = {}
         if package:config("shared") then
-            table.insert(configs, "--enable-shared=yes")
-        else
-            table.insert(configs, "--enable-shared=no")
-        end
-        if package:is_plat("linux") and package:config("pic") ~= false then
-            table.insert(configs, "--with-pic")
+            configs.kind = "shared"
         end
-        local libsdl = package:dep("libsdl")
-        if libsdl and not libsdl:is_system() then
-            table.insert(configs, "--with-sdl-prefix=" .. libsdl:installdir())
-        end
-        import("package.tools.autoconf").install(package, configs)
+        import("package.tools.xmake").install(package, configs)
+
     end)
 
     on_test(function (package)

+ 34 - 53
packages/l/libsdl_image/xmake.lua

@@ -1,5 +1,4 @@
 package("libsdl_image")
-
     set_homepage("http://www.libsdl.org/projects/SDL_image/")
     set_description("Simple DirectMedia Layer image loading library")
     set_license("zlib")
@@ -12,71 +11,53 @@ package("libsdl_image")
         add_extsources("brew::sdl2_image")
     end
 
-    if is_plat("windows", "mingw") then
-        set_urls("https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-$(version)-VC.zip")
-        add_urls("https://github.com/libsdl-org/SDL_image/releases/download/release-$(version)/SDL2_image-devel-$(version)-VC.zip")
-        add_versions("2.0.5", "a180f9b75c4d3fbafe02af42c42463cc7bc488e763cfd1ec2ffb75678b4387ac")
-        add_versions("2.6.0", "e8953ec28e689fdef7805d0dc6913b8038dc6e250fe340929e459f367e2e75fa")
-        add_versions("2.6.1", "b431347d039081b3ec065670d3037f106c8683f11491c45776cde7e69965a5f3")
-        add_versions("2.6.2", "f510a58b03ce2b74a68d4e6733c47c1931813ab1736e533ad576f4cecb3a8a4d")
-    else
-        set_urls("https://www.libsdl.org/projects/SDL_image/release/SDL2_image-$(version).zip")
-        add_urls("https://github.com/libsdl-org/SDL_image/releases/download/release-$(version)/SDL2_image-$(version).zip")
-        add_versions("2.0.5", "eee0927d1e7819d57c623fe3e2b3c6761c77c474fe9bc425e8674d30ac049b1c")
-        add_versions("2.6.0", "2252cdfd5be73cefaf727edc39c2ef3b7682e797acbd3126df117e925d46aaf6")
-        add_versions("2.6.1", "cbfea63a46715c63a1db9e41617e550749a95ffd33ef9bd5ba6e58b2bdca6ed3")
-        add_versions("2.6.2", "efe3c229853d0d40c35e5a34c3f532d5d9728f0abc623bc62c962bcef8754205")
-    end
+    add_urls("https://www.libsdl.org/projects/SDL_image/release/SDL2_image-$(version).zip",
+             "https://github.com/libsdl-org/SDL_image/releases/download/release-$(version)/SDL2_image-$(version).zip")
+    add_versions("2.6.0", "2252cdfd5be73cefaf727edc39c2ef3b7682e797acbd3126df117e925d46aaf6")
+    add_versions("2.6.1", "cbfea63a46715c63a1db9e41617e550749a95ffd33ef9bd5ba6e58b2bdca6ed3")
+    add_versions("2.6.2", "efe3c229853d0d40c35e5a34c3f532d5d9728f0abc623bc62c962bcef8754205")
 
-    if is_plat("macosx") then
+    if is_plat("macosx", "iphoneos") then
         add_frameworks("CoreFoundation", "CoreGraphics", "ImageIO", "CoreServices")
+    elseif is_plat("wasm") then
+        add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
     end
 
-    add_deps("libsdl")
+    add_deps("cmake")
 
-    add_links("SDL2_image")
     add_includedirs("include", "include/SDL2")
 
-    on_load("macosx", "linux", function (package)
-        if package:version():ge("2.6") then
-            package:add("deps", "cmake")
+    on_load(function (package)
+        if package:config("shared") then
+            package:add("deps", "libsdl", { configs = { shared = true }})
         else
-            package:add("deps", "automake", "autoconf")
+            package:add("deps", "libsdl")
         end
     end)
 
-    on_install("windows", "mingw", function (package)
-        local arch = package:arch()
-        if package:is_plat("mingw") then
-            arch = (arch == "x86_64") and "x64" or "x86"
-        end
-        os.cp("include/*", package:installdir("include/SDL2"))
-        os.cp(path.join("lib", arch, "*.lib"), package:installdir("lib"))
-        os.cp(path.join("lib", arch, "*.dll"), package:installdir("bin"))
-    end)
-
-    on_install("macosx", "linux", function (package)
-        if package:version():ge("2.6") then
-            local configs = {"-DSDL_TEST=OFF"}
-            table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
-            table.insert(configs, "-DSDL_STATIC=" .. (package:config("shared") and "OFF" or "ON"))
-            table.insert(configs, "-DSDL_SHARED=" .. (package:config("shared") and "ON" or "OFF"))
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
-            end
-            import("package.tools.cmake").install(package, configs)
-        else
-            local configs = {}
-            table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
-            table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
-            local libsdl = package:dep("libsdl")
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "--with-sdl-prefix=" .. libsdl:installdir())
+    on_install(function (package)
+        local configs = {"-DSDL2IMAGE_SAMPLES=OFF", "-DSDL2IMAGE_TESTS=OFF"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        local libsdl = package:dep("libsdl")
+        if libsdl and not libsdl:is_system() then
+            table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
+            local fetchinfo = libsdl:fetch()
+            if fetchinfo then
+                for _, dir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
+                    if os.isfile(path.join(dir, "SDL_version.h")) then
+                        table.insert(configs, "-DSDL2_INCLUDE_DIR=" .. dir)
+                        break
+                    end
+                end
+                for _, libfile in ipairs(fetchinfo.libfiles) do
+                    if libfile:match("SDL2%..+$") or libfile:match("SDL2-static%..+$") then
+                        table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(fetchinfo.libfiles, ";"))
+                    end
+                end
             end
-            io.replace("Makefile.am", "noinst_PROGRAMS = showimage.-\n", "\n")
-            os.rm("./configure")
-            import("package.tools.autoconf").install(package, configs)
         end
+        import("package.tools.cmake").install(package, configs)
     end)
 
     on_test(function (package)

+ 42 - 52
packages/l/libsdl_mixer/xmake.lua

@@ -1,23 +1,14 @@
 package("libsdl_mixer")
-
     set_homepage("https://www.libsdl.org/projects/SDL_mixer/")
     set_description("Simple DirectMedia Layer mixer audio library")
+    set_license("zlib")
 
-    if is_plat("windows", "mingw") then
-        set_urls("https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-$(version)-VC.zip")
-        add_urls("https://github.com/libsdl-org/SDL_mixer/releases/download/release-$(version)/SDL2_mixer-devel-$(version)-VC.zip")
-        add_versions("2.0.4", "258788438b7e0c8abb386de01d1d77efe79287d9967ec92fbb3f89175120f0b0")
-        add_versions("2.6.0", "b8862b95340b8990177fdb3fb1f22fe5fd089d8b2ad0a30bf7d84e0f4a6138ae")
-        add_versions("2.6.1", "e086e1fed423a801e0e7573af063f2f51d3bcef0c9da356ed8a62a7a7f7a0815")
-        add_versions("2.6.2", "7f050663ccc7911bb9c57b11e32ca79578b712490186b8645ddbbe4e7d2fe1c9")
-    else
-        set_urls("https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-$(version).zip")
-        add_urls("https://github.com/libsdl-org/SDL_mixer/releases/download/release-$(version)/SDL2_mixer-$(version).zip")
-        add_versions("2.0.4", "9affb8c7bf6fbffda0f6906bfb99c0ea50dca9b188ba9e15be90042dc03c5ded")
-        add_versions("2.6.0", "aca0ffc96a4bf2a56a16536a269de28e341ce38a46a25180bc1ef75e19b08a3a")
-        add_versions("2.6.1", "788c748c1d3a87126511e60995b03526ed4e31e2ba053dffd9dcc8abde97b950")
-        add_versions("2.6.2", "61549615a67e731805ca1df553e005be966a625c1d20fb085bf99edeef6e0469")
-    end
+    add_urls("https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-$(version).zip",
+             "https://github.com/libsdl-org/SDL_mixer/releases/download/release-$(version)/SDL2_mixer-$(version).zip")
+    add_versions("2.0.4", "9affb8c7bf6fbffda0f6906bfb99c0ea50dca9b188ba9e15be90042dc03c5ded")
+    add_versions("2.6.0", "aca0ffc96a4bf2a56a16536a269de28e341ce38a46a25180bc1ef75e19b08a3a")
+    add_versions("2.6.1", "788c748c1d3a87126511e60995b03526ed4e31e2ba053dffd9dcc8abde97b950")
+    add_versions("2.6.2", "61549615a67e731805ca1df553e005be966a625c1d20fb085bf99edeef6e0469")
 
     if is_plat("mingw") and is_subhost("msys") then
         add_extsources("pacman::SDL2_mixer")
@@ -27,51 +18,50 @@ package("libsdl_mixer")
         add_extsources("brew::sdl2_mixer")
     end
 
-    add_deps("libsdl")
-
-    add_links("SDL2_mixer")
+    add_deps("cmake")
 
     add_includedirs("include", "include/SDL2")
 
-    on_load(function (package)
-        if package:version():ge("2.6") and package:is_plat("macosx", "linux") then
-            package:add("deps", "cmake")
-        end
-    end)
+    if is_plat("wasm") then
+        add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+    end
 
-    on_install("windows", "mingw", function (package)
-        local arch = package:arch()
-        if package:is_plat("mingw") then
-            arch = (arch == "x86_64") and "x64" or "x86"
+    on_load(function (package)
+        if package:config("shared") then
+            package:add("deps", "libsdl", { configs = { shared = true }})
+        else
+            package:add("deps", "libsdl")
         end
-        os.cp("include/*", package:installdir("include/SDL2"))
-        os.cp(path.join("lib", arch, "*.lib"), package:installdir("lib"))
-        os.cp(path.join("lib", arch, "*.dll"), package:installdir("bin"))
     end)
 
-    on_install("macosx", "linux", function (package)
-        if package:version():ge("2.6") then
-            local configs = {"-DSDL2MIXER_SAMPLES=OFF",
-                             "-DSDL2MIXER_FLAC=OFF",
-                             "-DSDL2MIXER_OPUS=OFF",
-                             "-DSDL2MIXER_MOD=OFF",
-                             "-DSDL2MIXER_MIDI=OFF"}
-            table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
-            table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
-            end
-            import("package.tools.cmake").install(package, configs)
-        else
-            local configs = {}
-            table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
-            table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
-            local libsdl = package:dep("libsdl")
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "--with-sdl-prefix=" .. libsdl:installdir())
+    on_install(function (package)
+        local configs = {"-DSDL2MIXER_SAMPLES=OFF",
+                         "-DSDL2MIXER_FLAC=OFF",
+                         "-DSDL2MIXER_OPUS=OFF",
+                         "-DSDL2MIXER_MOD=OFF",
+                         "-DSDL2MIXER_MIDI=OFF",
+                         "-DSDL2MIXER_CMD=OFF"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        local libsdl = package:dep("libsdl")
+        if libsdl and not libsdl:is_system() then
+            table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
+            local fetchinfo = libsdl:fetch()
+            if fetchinfo then
+                for _, dir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
+                    if os.isfile(path.join(dir, "SDL_version.h")) then
+                        table.insert(configs, "-DSDL2_INCLUDE_DIR=" .. dir)
+                        break                        
+                    end
+                end
+                for _, libfile in ipairs(fetchinfo.libfiles) do
+                    if libfile:match("SDL2%..+$") or libfile:match("SDL2-static%..+$") then
+                        table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(fetchinfo.libfiles, ";"))
+                    end
+                end
             end
-            import("package.tools.autoconf").install(package, configs)
         end
+        import("package.tools.cmake").install(package, configs)
     end)
 
     on_test(function (package)

+ 40 - 44
packages/l/libsdl_net/xmake.lua

@@ -1,19 +1,11 @@
 package("libsdl_net")
-
     set_homepage("https://www.libsdl.org/projects/SDL_net/")
     set_description("Simple DirectMedia Layer networking library")
+    set_license("zlib")
 
-    if is_plat("windows", "mingw") then
-        set_urls("https://www.libsdl.org/projects/SDL_net/release/SDL2_net-devel-$(version)-VC.zip")
-        add_urls("https://github.com/libsdl-org/SDL_net/releases/download/release-$(version)/SDL2_net-devel-$(version)-VC.zip")
-        add_versions("2.0.1", "c1e423f2068adc6ff1070fa3d6a7886700200538b78fd5adc36903a5311a243e")
-        add_versions("2.2.0", "f364e55babb44e47b41d039a43c640aa1f76615b726855591b555321c7d870dd")
-    else
-        set_urls("https://www.libsdl.org/projects/SDL_net/release/SDL2_net-$(version).zip")
-        add_urls("https://github.com/libsdl-org/SDL_net/releases/download/release-$(version)/SDL2_net-$(version).zip")
-        add_versions("2.0.1", "52031ed9d08a5eb1eda40e9a0409248bf532dde5e8babff5780ef1925657d59f")
-        add_versions("2.2.0", "1eec3a9d43df019d7916a6ecce32f2a3ad5248c82c9c237948afc712399be36d")
-    end
+    add_urls("https://www.libsdl.org/projects/SDL_net/release/SDL2_net-$(version).zip",
+             "https://github.com/libsdl-org/SDL_net/releases/download/release-$(version)/SDL2_net-$(version).zip")
+    add_versions("2.2.0", "1eec3a9d43df019d7916a6ecce32f2a3ad5248c82c9c237948afc712399be36d")
 
     if is_plat("mingw") and is_subhost("msys") then
         add_extsources("pacman::SDL2_net")
@@ -23,49 +15,53 @@ package("libsdl_net")
         add_extsources("brew::sdl2_net")
     end
 
-    add_deps("libsdl")
+    add_deps("cmake")
 
-    add_links("SDL2_net")
+    if is_plat("windows", "mingw") then
+        add_syslinks("iphlpapi", "ws2_32")
+    end
+
+    if is_plat("wasm") then
+        add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+    end
 
     add_includedirs("include", "include/SDL2")
 
     on_load(function (package)
-        if package:version():ge("2.2") and package:is_plat("macosx", "linux") then
-            package:add("deps", "cmake")
-        end
-    end)
-
-    on_install("windows", "mingw", function (package)
-        local arch = package:arch()
-        if package:is_plat("mingw") then
-            arch = (arch == "x86_64") and "x64" or "x86"
+        if package:config("shared") then
+            package:add("deps", "libsdl", { configs = { shared = true }})
+        else
+            package:add("deps", "libsdl")
         end
-        os.cp("include/*", package:installdir("include/SDL2"))
-        os.cp(path.join("lib", arch, "*.lib"), package:installdir("lib"))
-        os.cp(path.join("lib", arch, "*.dll"), package:installdir("bin"))
     end)
 
-    on_install("macosx", "linux", function (package)
-        if package:version():ge("2.2") then
-            local configs = {"-DSDL2NET_SAMPLES=OFF"}
-            table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
-            table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
-            end
-            import("package.tools.cmake").install(package, configs)
-        else
-            local configs = {}
-            table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
-            table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
-            local libsdl = package:dep("libsdl")
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "--with-sdl-prefix=" .. libsdl:installdir())
+    on_install(function (package)
+        local configs = {"-DSDL2NET_SAMPLES=OFF"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        local libsdl = package:dep("libsdl")
+        if libsdl and not libsdl:is_system() then
+            table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
+            local fetchinfo = libsdl:fetch()
+            if fetchinfo then
+                for _, dir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
+                    if os.isfile(path.join(dir, "SDL_version.h")) then
+                        table.insert(configs, "-DSDL2_INCLUDE_DIR=" .. dir)
+                        break
+                    end
+                end
+                for _, libfile in ipairs(fetchinfo.libfiles) do
+                    if libfile:match("SDL2%..+$") or libfile:match("SDL2-static%..+$") then
+                        table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(fetchinfo.libfiles, ";"))
+                    end
+                end
             end
-            import("package.tools.autoconf").install(package, configs)
         end
+        io.replace("CMakeLists.txt", "find_package(SDL2test)", "", {plain = true})
+        import("package.tools.cmake").install(package, configs)
     end)
 
     on_test(function (package)
-        assert(package:has_cfuncs("SDLNet_Init", {includes = "SDL2/SDL_net.h", configs = {defines = "SDL_MAIN_HANDLED"}}))
+        assert(package:has_cfuncs("SDLNet_Init",
+            {includes = "SDL2/SDL_net.h", configs = {cxflags = "-sUSE_SDL=0", defines = "SDL_MAIN_HANDLED"}}))
     end)

+ 15 - 0
packages/l/libsdl_ttf/patches/2.20.1/cmakelists.patch

@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0aac377..94a44f4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -348,8 +348,8 @@ if(SDL2TTF_INSTALL)
+         endif()
+         # Only install a SDL2_ttf.pc file in Release mode
+         install(CODE "
+-        file(COPY_FILE \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_ttf-$<CONFIG>.pc\"
+-            \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_ttf.pc\" ONLY_IF_DIFFERENT)
++        file(COPY \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_ttf-$<CONFIG>.pc\"
++            DESTINATION \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_ttf.pc\")
+         file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${PC_DESTDIR}\"
+             TYPE FILE
+             FILES \"${CMAKE_CURRENT_BINARY_DIR}/SDL2_ttf.pc\")" CONFIG Release)

+ 70 - 53
packages/l/libsdl_ttf/xmake.lua

@@ -1,6 +1,5 @@
 package("libsdl_ttf")
-
-    set_homepage("https://www.libsdl.org/projects/SDL_ttf/")
+    set_homepage("https://github.com/libsdl-org/SDL_ttf/")
     set_description("Simple DirectMedia Layer text rendering library")
     set_license("zlib")
 
@@ -12,69 +11,87 @@ package("libsdl_ttf")
         add_extsources("brew::sdl2_ttf")
     end
 
-    if is_plat("windows", "mingw") then
-        set_urls("https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-$(version)-VC.zip")
-        add_urls("https://github.com/libsdl-org/SDL_ttf/releases/download/release-$(version)/SDL2_ttf-devel-$(version)-VC.zip")
-        add_versions("2.0.15", "aab0d81f1aa6fe654be412efc85829f2b188165dca6c90eb4b12b673f93e054b")
-        add_versions("2.0.18", "4e1404ac6095bbcd4cb133eb644a765885aa283ae45f36cfbc3cf5a77d7e1cbd")
-        add_versions("2.20.0", "bc206392a74d2b32f74d770a3a1e623e87c72374781c115478277ab4c722358b")
-        add_versions("2.20.1", "2facfa180f77bac381776376c7598ad504a84d99414418049bb106cb1705fe22")
-    else
-        set_urls("https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-$(version).zip")
-        add_urls("https://github.com/libsdl-org/SDL_ttf/releases/download/release-$(version)/SDL2_ttf-$(version).zip")
-        add_versions("2.0.15", "cdb72b5b1c3b27795fa128af36f369fee5d3e38a96c350855da0b81880555dbc")
-        add_versions("2.0.18", "64e6a93c7542aba1e32e1418413898dfde82be95fdd0c73ba265fbdada189b5f")
-        add_versions("2.20.0", "04e94fc5ecac3475ab35c1d5cf52650df691867e7e4befcc861bf982a747111a")
-        add_versions("2.20.1", "18d81ab399c8e39adababe8918691830ba6e0d6448e5baa141ee0ddf87ede2dc")
-    end
+    add_urls("https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-$(version).tar.gz",
+             "https://github.com/libsdl-org/SDL_ttf/releases/download/release-$(version)/SDL2_ttf-$(version).tar.gz")
+    add_versions("2.20.0", "874680232b72839555a558b48d71666b562e280f379e673b6f0c7445ea3b9b8a")
+    add_versions("2.20.1", "78cdad51f3cc3ada6932b1bb6e914b33798ab970a1e817763f22ddbfd97d0c57")
+    add_versions("2.20.2", "9dc71ed93487521b107a2c4a9ca6bf43fb62f6bddd5c26b055e6b91418a22053")
 
-    add_deps("libsdl")
-    if is_plat("linux", "macosx") then
-        add_deps("freetype")
-    end
+    add_patches(">=2.20.0 <=2.20.1", path.join(os.scriptdir(), "patches", "2.20.1", "cmakelists.patch"), "fe04ada62d9ed70029c0efb3c04bfec22fc7596bd6b73a567beb964e61ebd82c")
+
+    add_deps("cmake", "freetype")
 
-    add_links("SDL2_ttf")
     add_includedirs("include", "include/SDL2")
 
-    on_load("macosx", "linux", function (package)
-        if package:version():ge("2.20") then
-            package:add("deps", "cmake")
-        else
-            package:add("deps", "automake", "autoconf")
-        end
-    end)
+    if is_plat("wasm") then
+        add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+    end
 
-    on_install("windows", "mingw", function (package)
-        local arch = package:arch()
-        if package:is_plat("mingw") then
-            arch = (arch == "x86_64") and "x64" or "x86"
+    on_load(function (package)
+        if package:config("shared") then
+            package:add("deps", "libsdl", { configs = { shared = true }})
+        else
+            package:add("deps", "libsdl")
         end
-        os.cp("include/*", package:installdir("include/SDL2"))
-        os.cp(path.join("lib", arch, "*.lib"), package:installdir("lib"))
-        os.cp(path.join("lib", arch, "*.dll"), package:installdir("bin"))
     end)
 
-    on_install("macosx", "linux", function (package)
-        if package:version():ge("2.20") then
-            local configs = {"-DSDL2TTF_SAMPLES=OFF"}
-            table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
-            table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
+    on_install(function (package)
+        local configs = {"-DSDL2TTF_SAMPLES=OFF"}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        local libsdl = package:dep("libsdl")
+        if libsdl and not libsdl:is_system() then
+            table.insert(configs, "-DSDL2_DIR=" .. libsdl:installdir())
+            local fetchinfo = libsdl:fetch()
+            if fetchinfo then
+                for _, dir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
+                    if os.isfile(path.join(dir, "SDL_version.h")) then
+                        table.insert(configs, "-DSDL2_INCLUDE_DIR=" .. dir)
+                        break
+                    end
+                end
+                for _, libfile in ipairs(fetchinfo.libfiles) do
+                    if libfile:match("SDL2%..+$") or libfile:match("SDL2-static%..+$") then
+                        table.insert(configs, "-DSDL2_LIBRARY=" .. libfile)
+                    end
+                end
             end
-            import("package.tools.cmake").install(package, configs)
-        else
-            local configs = {}
-            table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
-            table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
-            local libsdl = package:dep("libsdl")
-            if libsdl and not libsdl:is_system() then
-                table.insert(configs, "--with-sdl-prefix=" .. libsdl:installdir())
+        end
+        local freetype = package:dep("freetype")
+        if freetype then
+            local fetchinfo = freetype:fetch()
+            if fetchinfo then
+                local includedirs = table.wrap(fetchinfo.includedirs or fetchinfo.sysincludedirs)
+                if #includedirs > 0 then
+                    table.insert(configs, "-DFREETYPE_INCLUDE_DIRS=" .. table.concat(includedirs, ";"))
+                end
+                local libfiles = table.wrap(fetchinfo.libfiles)
+                if #libfiles > 0 then
+                    table.insert(configs, "-DFREETYPE_LIBRARY=" .. libfiles[1])
+                end
+                if not freetype:config("shared") then
+                    local libfiles = {}
+                    for _, dep in ipairs(freetype:librarydeps()) do
+                        local depinfo = dep:fetch()
+                        if depinfo then
+                            table.join2(libfiles, depinfo.libfiles)
+                        end
+                    end
+                    if #libfiles > 0 then
+                        local libraries = ""
+                        for _, libfile in ipairs(libfiles) do
+                            libraries = libraries .. " " .. (libfile:gsub("\\", "/"))
+                        end
+                        io.replace("CMakeLists.txt", "target_link_libraries(SDL2_ttf PRIVATE Freetype::Freetype)",
+                            "target_link_libraries(SDL2_ttf PRIVATE Freetype::Freetype " .. libraries .. ")", {plain = true})
+                    end
+                end
             end
-            import("package.tools.autoconf").install(package, configs)
         end
+        import("package.tools.cmake").install(package, configs)
     end)
 
     on_test(function (package)
-        assert(package:has_cfuncs("TTF_Init", {includes = "SDL2/SDL_ttf.h", configs = {defines = "SDL_MAIN_HANDLED"}}))
+        assert(package:has_cfuncs("TTF_Init",
+            {includes = "SDL2/SDL_ttf.h", configs = {defines = "SDL_MAIN_HANDLED"}}))
     end)