mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-08-25 08:13:44 +02:00

The Emscripten build was crashing because of some unaligned memory access in OpenAL Soft. Hopefully this fixes it.
80 lines
3.5 KiB
Diff
80 lines
3.5 KiB
Diff
# This patch prevents zlib's build system from renaming zconf.h to zconf.h.included because libzip won't be able to find zconf.h otherwise.
|
|
# Also prevents the zlib shared library from being compiled to fix builds for homebrew consoles.
|
|
# Also includes unistd.h at the top of gzguts.h, again to fix builds for homebrew consoles.
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -65,17 +65,6 @@ if(MSVC)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
endif()
|
|
|
|
-if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
|
|
- # If we're doing an out of source build and the user has a zconf.h
|
|
- # in their source tree...
|
|
- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
|
|
- message(STATUS "Renaming")
|
|
- message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
|
|
- message(STATUS "to 'zconf.h.included' because this file is included with zlib")
|
|
- message(STATUS "but CMake generates it automatically in the build directory.")
|
|
- file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
|
|
- endif()
|
|
-endif()
|
|
|
|
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
|
|
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
|
|
@@ -149,41 +138,8 @@ if(MINGW)
|
|
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
|
endif(MINGW)
|
|
|
|
-add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
|
-target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
|
target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
-set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
|
|
-set_target_properties(zlib PROPERTIES SOVERSION 1)
|
|
-
|
|
-if(NOT CYGWIN)
|
|
- # This property causes shared libraries on Linux to have the full version
|
|
- # encoded into their final filename. We disable this on Cygwin because
|
|
- # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll
|
|
- # seems to be the default.
|
|
- #
|
|
- # This has no effect with MSVC, on that platform the version info for
|
|
- # the DLL comes from the resource file win32/zlib1.rc
|
|
- set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
|
|
-endif()
|
|
-
|
|
-if(UNIX)
|
|
- # On unix-like platforms the library is almost always called libz
|
|
- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
|
|
- if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
|
|
- set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
|
- endif()
|
|
-elseif(BUILD_SHARED_LIBS AND WIN32)
|
|
- # Creates zlib1.dll when building shared library version
|
|
- set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
|
|
-endif()
|
|
-
|
|
-if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
|
- install(TARGETS zlib zlibstatic
|
|
- RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
|
- ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
|
- LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
|
|
-endif()
|
|
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
|
|
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
|
|
endif()
|
|
diff --git a/gzguts.h b/gzguts.h
|
|
--- a/gzguts.h
|
|
+++ b/gzguts.h
|
|
@@ -2,6 +2,9 @@
|
|
* Copyright (C) 2004-2024 Mark Adler
|
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
|
*/
|
|
+#if defined(__unix__) || defined(__DEVKITPRO__)
|
|
+# include <unistd.h>
|
|
+#endif
|
|
|
|
#ifdef _LARGEFILE64_SOURCE
|
|
# ifndef _LARGEFILE_SOURCE
|