Archived
1
Fork 0
This repository has been archived on 2025-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
libxiv/CMakeLists.txt
Joshua Goins 7006cc4662 Add exl parser, make exd category configurable
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.
2022-04-11 10:18:29 -04:00

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})