diff --git a/packages/c/centurion/patches/7.3.0/fix_method_name.patch b/packages/c/centurion/patches/7.3.0/fix_method_name.patch new file mode 100644 index 000000000..4b3762846 --- /dev/null +++ b/packages/c/centurion/patches/7.3.0/fix_method_name.patch @@ -0,0 +1,13 @@ +diff --git a/src/centurion/video/renderer.hpp b/src/centurion/video/renderer.hpp +index 5b253902..e097be79 100644 +--- a/src/centurion/video/renderer.hpp ++++ b/src/centurion/video/renderer.hpp +@@ -182,7 +182,7 @@ class basic_renderer final { + + [[nodiscard]] auto make_texture(file& file) const -> texture + { +- if (auto* ptr = IMG_LoadTextureRW(get(), file.data(), SDL_FALSE)) { ++ if (auto* ptr = IMG_LoadTexture_RW(get(), file.data(), SDL_FALSE)) { + return texture {ptr}; + } + else { diff --git a/packages/c/centurion/xmake.lua b/packages/c/centurion/xmake.lua index 04fd3f9a9..2e576c3bf 100644 --- a/packages/c/centurion/xmake.lua +++ b/packages/c/centurion/xmake.lua @@ -9,6 +9,8 @@ package("centurion") add_versions("v7.3.0", "ad8b7c27074939fa46380a878e82c2b0365d1c4ad31b4a71bfcd5ce3ac0198e6") + add_patches("v7.3.0", path.join(os.scriptdir(), "patches", "7.3.0", "fix_method_name.patch"), "2c5faf24867440e53bdabf79b4354cdbf2c79707ca9e372ba7cdd94bcb1dcc52") + add_configs("pragma_once", { description = "Use #pragma once in centurion.hpp", default = true, type = "boolean" }) add_configs("debug_macros", { description = "Include debug-only logging macros, such as CENTURION_LOG_INFO", default = true, type = "boolean" }) @@ -26,12 +28,8 @@ package("centurion") add_includedirs("include", "include/SDL2") on_load(function (package) - if package:config("shared") then - package:add("deps", "libsdl", { configs = { shared = true } }) - else - package:add("deps", "libsdl") - end - + package:add("deps", "libsdl", { configs = { shared = package:config("shared") } }) + if not package:config("pragma_once") then package:add("defines", "CENTURION_NO_PRAGMA_ONCE") end @@ -40,29 +38,17 @@ package("centurion") end if package:config("sdl_image") then - if package:config("shared") then - package:add("deps", "libsdl_image", { configs = { shared = true } }) - else - package:add("deps", "libsdl_image") - end + package:add("deps", "libsdl_image", { configs = { shared = package:config("shared") } }) else package:add("defines", "CENTURION_NO_SDL_IMAGE") end if package:config("sdl_mixer") then - if package:config("shared") then - package:add("deps", "libsdl_mixer", { configs = { shared = true } }) - else - package:add("deps", "libsdl_mixer") - end + package:add("deps", "libsdl_mixer", { configs = { shared = package:config("shared") } }) else package:add("defines", "CENTURION_NO_SDL_MIXER") end if package:config("sdl_ttf") then - if package:config("shared") then - package:add("deps", "libsdl_ttf", { configs = { shared = true } }) - else - package:add("deps", "libsdl_ttf") - end + package:add("deps", "libsdl_ttf", { configs = { shared = package:config("shared") } }) else package:add("defines", "CENTURION_NO_SDL_TTF") end @@ -75,7 +61,7 @@ package("centurion") end end) - on_install("!wasm", function (package) + on_install(function (package) os.cp("src/*", package:installdir("include")) end) diff --git a/packages/l/libsdl_image/xmake.lua b/packages/l/libsdl_image/xmake.lua index 7f9a4083f..5a90a1e8d 100644 --- a/packages/l/libsdl_image/xmake.lua +++ b/packages/l/libsdl_image/xmake.lua @@ -32,14 +32,22 @@ package("libsdl_image") add_includedirs("include", "include/SDL2") on_load(function (package) - if package:config("shared") then - package:add("deps", "libsdl", { configs = { shared = true }}) - else - package:add("deps", "libsdl") - end + package:add("deps", "libsdl", { configs = { shared = package:config("shared") }}) end) on_install(function (package) + if package:is_plat("wasm") then + io.replace("CMakeLists.txt", "sdl_find_sdl2(${sdl2_target_name} ${SDL_REQUIRED_VERSION})", "", {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_image PRIVATE $)", [[ +target_include_directories(SDL2_image PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_image PRIVATE $) + ]], {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_image PRIVATE ${sdl2_target_name})", [[ +target_include_directories(SDL2_image PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_image PRIVATE ${SDL2_LIBRARY}) + ]], {plain = true}) + end + 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")) @@ -54,11 +62,15 @@ package("libsdl_image") break end end + local libfiles = {} 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, ";")) + if not (package:config("shared") and libfile:endswith(".dll")) then + table.insert(libfiles, libfile) + end end end + table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(libfiles, ";")) end end import("package.tools.cmake").install(package, configs) diff --git a/packages/l/libsdl_mixer/xmake.lua b/packages/l/libsdl_mixer/xmake.lua index 97b6f15cb..7247f4ee5 100644 --- a/packages/l/libsdl_mixer/xmake.lua +++ b/packages/l/libsdl_mixer/xmake.lua @@ -28,14 +28,22 @@ package("libsdl_mixer") end on_load(function (package) - if package:config("shared") then - package:add("deps", "libsdl", { configs = { shared = true }}) - else - package:add("deps", "libsdl") - end + package:add("deps", "libsdl", { configs = { shared = package:config("shared") }}) end) on_install(function (package) + if package:is_plat("wasm") then + io.replace("CMakeLists.txt", "sdl_find_sdl2(${sdl2_target_name} ${SDL_REQUIRED_VERSION})", "", {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_mixer PRIVATE $)", [[ +target_include_directories(SDL2_mixer PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_mixer PRIVATE $) + ]], {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_mixer PRIVATE ${sdl2_target_name})", [[ +target_include_directories(SDL2_mixer PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_mixer PRIVATE ${SDL2_LIBRARY}) + ]], {plain = true}) + end + local configs = { "-DSDL2MIXER_CMD=OFF", "-DSDL2MIXER_FLAC=OFF", @@ -61,11 +69,15 @@ package("libsdl_mixer") break end end + local libfiles = {} 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, ";")) + if not (package:config("shared") and libfile:endswith(".dll")) then + table.insert(libfiles, libfile) + end end end + table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(libfiles, ";")) end end import("package.tools.cmake").install(package, configs) diff --git a/packages/l/libsdl_net/xmake.lua b/packages/l/libsdl_net/xmake.lua index e366e45df..1f7e70215 100644 --- a/packages/l/libsdl_net/xmake.lua +++ b/packages/l/libsdl_net/xmake.lua @@ -28,14 +28,22 @@ package("libsdl_net") add_includedirs("include", "include/SDL2") on_load(function (package) - if package:config("shared") then - package:add("deps", "libsdl", { configs = { shared = true }}) - else - package:add("deps", "libsdl") - end + package:add("deps", "libsdl", { configs = { shared = package:config("shared") }}) end) on_install(function (package) + if package:is_plat("wasm") then + io.replace("CMakeLists.txt", "sdl_find_sdl2(${sdl2_target_name} ${SDL_REQUIRED_VERSION})", "", {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_net PRIVATE $)", [[ +target_include_directories(SDL2_net PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_net PRIVATE $) + ]], {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_net PRIVATE ${sdl2_target_name})", [[ +target_include_directories(SDL2_net PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_net PRIVATE ${SDL2_LIBRARY}) + ]], {plain = true}) + end + 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")) @@ -50,11 +58,15 @@ package("libsdl_net") break end end + local libfiles = {} 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, ";")) + if not (package:config("shared") and libfile:endswith(".dll")) then + table.insert(libfiles, libfile) + end end end + table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(libfiles, ";")) end end io.replace("CMakeLists.txt", "find_package(SDL2test)", "", {plain = true}) diff --git a/packages/l/libsdl_ttf/xmake.lua b/packages/l/libsdl_ttf/xmake.lua index aa26ec783..5fd3602a0 100644 --- a/packages/l/libsdl_ttf/xmake.lua +++ b/packages/l/libsdl_ttf/xmake.lua @@ -30,14 +30,22 @@ package("libsdl_ttf") end on_load(function (package) - if package:config("shared") then - package:add("deps", "libsdl", { configs = { shared = true }}) - else - package:add("deps", "libsdl") - end + package:add("deps", "libsdl", { configs = { shared = package:config("shared") }}) end) on_install(function (package) + if package:is_plat("wasm") then + io.replace("CMakeLists.txt", "sdl_find_sdl2(${sdl2_target_name} ${SDL_REQUIRED_VERSION})", "", {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_ttf PRIVATE $)", [[ +target_include_directories(SDL2_ttf PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_ttf PRIVATE $) + ]], {plain = true}) + io.replace("CMakeLists.txt", "target_link_libraries(SDL2_ttf PRIVATE ${sdl2_target_name})", [[ +target_include_directories(SDL2_ttf PRIVATE ${SDL2_INCLUDE_DIR}) +target_link_libraries(SDL2_ttf PRIVATE ${SDL2_LIBRARY}) + ]], {plain = true}) + end + 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")) @@ -53,11 +61,15 @@ package("libsdl_ttf") break end end + local libfiles = {} for _, libfile in ipairs(fetchinfo.libfiles) do if libfile:match("SDL2%..+$") or libfile:match("SDL2-static%..+$") then - table.insert(configs, "-DSDL2_LIBRARY=" .. libfile) + if not (package:config("shared") and libfile:endswith(".dll")) then + table.insert(libfiles, libfile) + end end end + table.insert(configs, "-DSDL2_LIBRARY=" .. table.concat(libfiles, ";")) end end local freetype = package:dep("freetype")