mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-04 08:59:07 +00:00
chore(build): wire up vendored StormLib as stormlib-9.31 (#104)
This commit is contained in:
parent
60afd3a801
commit
ca6dd93c84
3 changed files with 110 additions and 0 deletions
108
vendor/stormlib-9.31/CMakeLists.txt
vendored
Normal file
108
vendor/stormlib-9.31/CMakeLists.txt
vendored
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
# StormLib 9.31 - CMake build for integration with squall
|
||||
|
||||
set(STORMLIB_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
set(STORMLIB_SOURCES
|
||||
${STORMLIB_SRC_DIR}/FileStream.cpp
|
||||
${STORMLIB_SRC_DIR}/SBaseCommon.cpp
|
||||
${STORMLIB_SRC_DIR}/SBaseDumpData.cpp
|
||||
${STORMLIB_SRC_DIR}/SBaseFileTable.cpp
|
||||
${STORMLIB_SRC_DIR}/SBaseSubTypes.cpp
|
||||
${STORMLIB_SRC_DIR}/SCompression.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileAddFile.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileAttributes.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileCompactArchive.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileCreateArchive.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileExtractFile.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileFindFile.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileGetFileInfo.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileListFile.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileOpenArchive.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileOpenFileEx.cpp
|
||||
${STORMLIB_SRC_DIR}/SFilePatchArchives.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileReadFile.cpp
|
||||
${STORMLIB_SRC_DIR}/SFileVerify.cpp
|
||||
${STORMLIB_SRC_DIR}/SMemUtf8.cpp
|
||||
)
|
||||
|
||||
# Bundled compression libraries (always included)
|
||||
file(GLOB STORMLIB_ADPCM ${STORMLIB_SRC_DIR}/adpcm/*.c ${STORMLIB_SRC_DIR}/adpcm/*.cpp)
|
||||
file(GLOB STORMLIB_HUFFMAN ${STORMLIB_SRC_DIR}/huffman/*.cpp)
|
||||
file(GLOB STORMLIB_JENKINS ${STORMLIB_SRC_DIR}/jenkins/*.c)
|
||||
file(GLOB STORMLIB_LZMA ${STORMLIB_SRC_DIR}/lzma/*.c)
|
||||
file(GLOB STORMLIB_PKLIB ${STORMLIB_SRC_DIR}/pklib/*.c)
|
||||
file(GLOB STORMLIB_SPARSE ${STORMLIB_SRC_DIR}/sparse/*.cpp)
|
||||
|
||||
# Crypto libraries (libtomcrypt/libtommath) - using the wrapper files
|
||||
set(STORMLIB_CRYPTO
|
||||
${STORMLIB_SRC_DIR}/LibTomCrypt.c
|
||||
${STORMLIB_SRC_DIR}/LibTomMath.c
|
||||
${STORMLIB_SRC_DIR}/LibTomMathDesc.c
|
||||
)
|
||||
|
||||
list(APPEND STORMLIB_SOURCES
|
||||
${STORMLIB_ADPCM}
|
||||
${STORMLIB_HUFFMAN}
|
||||
${STORMLIB_JENKINS}
|
||||
${STORMLIB_LZMA}
|
||||
${STORMLIB_PKLIB}
|
||||
${STORMLIB_SPARSE}
|
||||
${STORMLIB_CRYPTO}
|
||||
)
|
||||
|
||||
# On macOS, StormPort.h defines __SYS_ZLIB and __SYS_BZLIB to use system libraries.
|
||||
# On other platforms, use the bundled versions.
|
||||
if(NOT WHOA_SYSTEM_MAC)
|
||||
file(GLOB STORMLIB_BZIP2 ${STORMLIB_SRC_DIR}/bzip2/*.c)
|
||||
file(GLOB STORMLIB_ZLIB ${STORMLIB_SRC_DIR}/zlib/*.c)
|
||||
list(APPEND STORMLIB_SOURCES ${STORMLIB_BZIP2} ${STORMLIB_ZLIB})
|
||||
endif()
|
||||
|
||||
add_library(stormlib-9.31 STATIC ${STORMLIB_SOURCES})
|
||||
|
||||
# define to avoid auto-linking pragmas in StormLib.h
|
||||
target_compile_definitions(stormlib-9.31
|
||||
PRIVATE
|
||||
__STORMLIB_SELF__
|
||||
_CRT_SECURE_NO_WARNINGS
|
||||
)
|
||||
|
||||
target_include_directories(stormlib-9.31
|
||||
PUBLIC
|
||||
${STORMLIB_SRC_DIR}
|
||||
)
|
||||
|
||||
# Platform-specific settings
|
||||
if(WHOA_SYSTEM_WIN)
|
||||
target_link_libraries(stormlib-9.31 PRIVATE wininet)
|
||||
elseif(WHOA_SYSTEM_MAC)
|
||||
# macOS uses system zlib and bzip2 (per StormPort.h __SYS_ZLIB, __SYS_BZLIB)
|
||||
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(BZip2 REQUIRED)
|
||||
target_link_libraries(stormlib-9.31
|
||||
PRIVATE
|
||||
${COREFOUNDATION_LIBRARY}
|
||||
ZLIB::ZLIB
|
||||
BZip2::BZip2
|
||||
)
|
||||
elseif(WHOA_SYSTEM_LINUX)
|
||||
# Linux - typically link against system zlib
|
||||
target_link_libraries(stormlib-9.31 PRIVATE z)
|
||||
endif()
|
||||
|
||||
# Suppress warnings from third-party code
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
|
||||
target_compile_options(stormlib-9.31 PRIVATE
|
||||
-Wno-implicit-function-declaration
|
||||
-Wno-deprecated-declarations
|
||||
-Wno-unused-parameter
|
||||
-Wno-sign-compare
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
|
||||
target_compile_options(stormlib-9.31 PRIVATE
|
||||
-Wno-deprecated-declarations
|
||||
)
|
||||
endif()
|
||||
Loading…
Add table
Add a link
Reference in a new issue