Now you can easily parse EXL files, and this commit includes changes to GameData to easily extract a EXH from just an excel sheet name like "Item" or "Map". However this still doesn't work for language seperated excel sheets yet.
77 lines
No EOL
1.9 KiB
CMake
77 lines
No EOL
1.9 KiB
CMake
project(libxiv)
|
|
|
|
include(FetchContent)
|
|
|
|
find_package(fmt QUIET)
|
|
|
|
if(TARGET fmt::fmt)
|
|
message("Using system library for fmt")
|
|
|
|
set(LIBRARIES fmt::fmt ${LIBRARIES})
|
|
else()
|
|
message("Using built-in fmt")
|
|
|
|
FetchContent_Declare(
|
|
fmt
|
|
GIT_REPOSITORY https://github.com/fmtlib/fmt
|
|
GIT_TAG master
|
|
)
|
|
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
|
|
|
FetchContent_MakeAvailable(fmt)
|
|
|
|
set(LIBRARIES fmt::fmt ${LIBRARIES})
|
|
endif()
|
|
|
|
# note: unshield does not work on windows per maintainer notice in README, so we might as well not even attempt to look
|
|
# for it.
|
|
if(NOT WIN32)
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(libunshield REQUIRED libunshield)
|
|
|
|
set(LIBRARIES ${libunshield_LIBRARIES} ${LIBRARIES})
|
|
set(LIB_DIRS ${libunshield_LIBRARY_DIRS})
|
|
endif()
|
|
|
|
find_package(ZLIB QUIET)
|
|
|
|
if(TARGET ZLIB::ZLIB)
|
|
message("Using system library for zlib")
|
|
|
|
set(LIBRARIES ZLIB::ZLIB ${LIBRARIES})
|
|
else()
|
|
message("Using built-in zlib")
|
|
|
|
FetchContent_Declare(
|
|
zlib
|
|
GIT_REPOSITORY https://github.com/madler/zlib.git
|
|
GIT_TAG master
|
|
)
|
|
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
|
|
|
FetchContent_MakeAvailable(zlib)
|
|
|
|
# welcome to hell, cmake.
|
|
include_directories(${CMAKE_BINARY_DIR}/_deps/zlib-src)
|
|
# NO REALLY, HELL IS THIS WAY
|
|
include_directories(${CMAKE_BINARY_DIR}/_deps/zlib-build)
|
|
|
|
set(LIBRARIES zlibstatic ${LIBRARIES})
|
|
endif()
|
|
|
|
add_library(libxiv STATIC
|
|
src/fiinparser.cpp
|
|
src/indexparser.cpp
|
|
src/crc32checksum.cpp
|
|
src/gamedata.cpp
|
|
src/compression.cpp
|
|
src/exhparser.cpp
|
|
src/exdparser.cpp
|
|
src/installextract.cpp
|
|
src/patch.cpp
|
|
src/exlparser.cpp)
|
|
target_include_directories(libxiv PUBLIC include PRIVATE src)
|
|
target_link_libraries(libxiv PUBLIC ${LIBRARIES})
|
|
target_link_directories(libxiv PUBLIC ${LIB_DIRS}) |