function _unsafe_patch(package) if package:is_plat("macosx") then io.replace("CMakeLists.txt", [[set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")]], "", {plain = true}) io.replace("CMakeLists.txt", [[set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")]], "", {plain = true}) end -- clang unsupported this flag https://github.com/llvm/llvm-project/issues/25059 -- and build failed on ubuntu with libstdc++-13 io.replace("CMakeLists.txt", "add_compile_options(-fabi-version=6)", "", {plain = true}) end function main(package) if package:config("abi") then _unsafe_patch(package) end if package:is_plat("windows") and package:is_arch("arm64") then -- https://github.com/microsoft/vcpkg/blob/218f0d9ad10eb7b56624d3a6de5ad7a44bdf2927/ports/steam-audio/fix-arm64-windows.patch io.replace("CMakeLists.txt", "set(IPL_CPU_X64 TRUE)", "set(IPL_CPU_ARMV8 TRUE)", {plain = true}) end if package:is_cross() then io.replace("CMakeLists.txt", "add_compile_options(-m32 -mfpmath=sse -march=native)", "", {plain = true}) end if package:is_plat("mingw", "msys") then io.replace("CMakeLists.txt", "# Windows flags\nif (IPL_OS_WINDOWS)", "if(0)", {plain = true}) else -- remove ucrt hardcode io.replace("CMakeLists.txt", "$<$,$>:/MTd>", "", {plain = true}) io.replace("CMakeLists.txt", "$<$,$>>:/MDd>", "", {plain = true}) io.replace("CMakeLists.txt", "$<$>,$>:/MT>", "", {plain = true}) io.replace("CMakeLists.txt", "$<$>,$>>:/MD>", "", {plain = true}) io.replace("CMakeLists.txt", "$,_DEBUG,NDEBUG>", "", {plain = true}) -- remove lto hardcode io.replace("CMakeLists.txt", "$<$:/GL>", "", {plain = true}) end -- remove zlib hardcode io.replace("build/FindMySOFA.cmake", "set(ZLIB_ROOT ${CMAKE_HOME_DIRECTORY}/deps/zlib/lib/${IPL_BIN_SUBDIR}/release)", "", {plain = true}) io.replace("build/FindMySOFA.cmake", "set(ZLIB_INCLUDE_DIR ${CMAKE_HOME_DIRECTORY}/deps/zlib/include)", "", {plain = true}) -- https://github.com/ValveSoftware/steam-audio/pull/399 io.replace("src/core/profiler.h", [[#include "memory_allocator.h"]], [[ #include "memory_allocator.h" #include ]], {plain = true}) io.replace("src/core/CMakeLists.txt", "get_bin_subdir(IPL_BIN_SUBDIR)", "set(IPL_BIN_SUBDIR )", {plain = true}) -- remove symbol install command io.replace("src/core/CMakeLists.txt", [[ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/$/phonon.pdb DESTINATION symbols/${IPL_BIN_SUBDIR} )]], "", {plain = true}) io.replace("src/core/CMakeLists.txt", [[ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libphonon.so.dbg DESTINATION symbols/${IPL_BIN_SUBDIR} )]], "", {plain = true}) -- remove deps dll install command io.replace("src/core/CMakeLists.txt", [[ install( FILES ${CMAKE_HOME_DIRECTORY}/deps/trueaudionext/bin/windows-x64/$>/TrueAudioNext.dll ${CMAKE_HOME_DIRECTORY}/deps/trueaudionext/bin/windows-x64/$>/GPUUtilities.dll DESTINATION lib/${IPL_BIN_SUBDIR} )]], "", {plain = true}) end