From 1efa09582a5d58987845b4f9555f6558a2368ed1 Mon Sep 17 00:00:00 2001 From: lethosor Date: Thu, 17 Sep 2020 00:25:50 -0400 Subject: [PATCH 01/11] Change libexpat to be included with add_subdirectory() - Confirmed that libexpat is built statically and linked with xlsxreader - May need https://github.com/libexpat/libexpat/commit/da7cda3a8579e86bb553e331cc4747075307f907 for Windows - Although libexpat's CMake options are all prefixed with LIBEXPAT_, it also adds some cache entries like SIZE_T (from expat/ConfigureChecks.cmake). Unsure if these affect other libs. - xlsxio may need additional reconfiguration after moving to add_subdirectory() to find libexpat/libzip on non-Linux platforms. --- depends/CMakeLists.txt | 26 ++++++++++---------------- plugins/CMakeLists.txt | 2 -- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/depends/CMakeLists.txt b/depends/CMakeLists.txt index b824cebdc..db3b939e8 100644 --- a/depends/CMakeLists.txt +++ b/depends/CMakeLists.txt @@ -35,25 +35,19 @@ endforeach() include(ExternalProject) if(WIN32) - set(EXPAT_LIB_NAME_SUFFIX "MD") set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} /DXML_STATIC") else() - set(EXPAT_LIB_NAME_SUFFIX "") set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} -DXML_STATIC") endif() -set(LIBEXPAT_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/libexpat) -set(LIBEXPAT_LIB ${LIBEXPAT_INSTALL_DIR}/lib/libexpat${EXPAT_LIB_NAME_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(LIBEXPAT_LIB ${LIBEXPAT_LIB} PARENT_SCOPE) -ExternalProject_Add(libexpat_project - PREFIX libexpat - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libexpat/expat - INSTALL_DIR ${LIBEXPAT_INSTALL_DIR} - BUILD_BYPRODUCTS ${LIBEXPAT_LIB} - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" - CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBEXPAT_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF -DEXPAT_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_POSITION_INDEPENDENT_CODE=ON -) +# set the default values of libexpat options - the descriptions are left empty +# because later option() calls *do* override those +set(EXPAT_BUILD_EXAMPLES OFF CACHE BOOL "") +set(EXPAT_BUILD_TESTS OFF CACHE BOOL "") +set(EXPAT_BUILD_TOOLS OFF CACHE BOOL "") +set(EXPAT_SHARED_LIBS OFF CACHE BOOL "") +set(EXPAT_BUILD_DOCS OFF CACHE BOOL "") +add_subdirectory(libexpat/expat) set(LIBZIP_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzip) set(LIBZIP_LIB ${LIBZIP_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}zip${CMAKE_STATIC_LIBRARY_SUFFIX}) @@ -74,11 +68,11 @@ set(XLSXIO_LIB ${XLSXIO_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xlsxio_re set(XLSXIO_LIB ${XLSXIO_LIB} PARENT_SCOPE) ExternalProject_Add(xlsxio_project PREFIX xlsxio - DEPENDS libexpat_project libzip_project + DEPENDS libzip_project SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xlsxio INSTALL_DIR ${XLSXIO_INSTALL_DIR} BUILD_BYPRODUCTS ${XLSXIO_LIB} CMAKE_GENERATOR "${CMAKE_GENERATOR}" CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" - CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${XLSXIO_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_STATIC=ON -DBUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TOOLS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DWITH_LIBZIP=ON -DZLIB_DIR=${ZLIB_DIR} -DLIBZIP_DIR=${LIBZIP_INSTALL_DIR} -DEXPAT_DIR=${LIBEXPAT_INSTALL_DIR} -DEXPAT_LIBRARIES=${LIBEXPAT_LIB} -DEXPAT_INCLUDE_DIRS=${LIBEXPAT_INSTALL_DIR}/include -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_FLAGS=${XLSXIO_C_FLAGS} + CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${XLSXIO_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_STATIC=ON -DBUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TOOLS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DWITH_LIBZIP=ON -DZLIB_DIR=${ZLIB_DIR} -DLIBZIP_DIR=${LIBZIP_INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_FLAGS=${XLSXIO_C_FLAGS} ) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 07e14fa11..dc71b6e0d 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -82,8 +82,6 @@ add_library(xlsxio_read STATIC IMPORTED) set_target_properties(xlsxio_read PROPERTIES IMPORTED_LOCATION ${XLSXIO_LIB}) add_library(zip STATIC IMPORTED) set_target_properties(zip PROPERTIES IMPORTED_LOCATION ${LIBZIP_LIB}) -add_library(expat STATIC IMPORTED) -set_target_properties(expat PROPERTIES IMPORTED_LOCATION ${LIBEXPAT_LIB}) if(WIN32) set(LIB_Z_LIB "depends/zlib/lib/zlib") From b47710ae6f4cbf904d4cbd7bc4f535cff5119067 Mon Sep 17 00:00:00 2001 From: lethosor Date: Thu, 17 Sep 2020 20:09:13 -0400 Subject: [PATCH 02/11] Upgrade libexpat Needed for a consistent target name: https://github.com/libexpat/libexpat/commit/da7cda3a8579e86bb553e331cc4747075307f907 This commit is likely close to 2.2.10 anyway --- depends/libexpat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/libexpat b/depends/libexpat index a7bc26b69..d8daead33 160000 --- a/depends/libexpat +++ b/depends/libexpat @@ -1 +1 @@ -Subproject commit a7bc26b69768f7fb24f0c7976fae24b157b85b13 +Subproject commit d8daead33ee76a29f5184d35b13672b6ce14b4a2 From f354f7800f6e1d9268570c7067ef7996a2c6500f Mon Sep 17 00:00:00 2001 From: lethosor Date: Thu, 17 Sep 2020 21:00:16 -0400 Subject: [PATCH 03/11] Switch to DFHack forks of lipzip and xlsxio, and update libzip: upgraded to 1.7.3 (was between 1.7.1 and 1.7.2) xlsxio: downgraded to latest release (0.2.29), which should be inconsequential: https://github.com/brechtsanders/xlsxio/compare/0.2.29...2d12a88 --- .gitmodules | 4 ++-- depends/libzip | 2 +- depends/xlsxio | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index e24bfb707..97d01c993 100644 --- a/.gitmodules +++ b/.gitmodules @@ -18,11 +18,11 @@ url = ../../DFHack/jsoncpp.git [submodule "depends/xlsxio"] path = depends/xlsxio - url = ../../brechtsanders/xlsxio.git + url = ../../DFHack/xlsxio.git shallow = true [submodule "depends/libzip"] path = depends/libzip - url = ../../nih-at/libzip.git + url = ../../DFHack/libzip.git shallow = true [submodule "depends/libexpat"] path = depends/libexpat diff --git a/depends/libzip b/depends/libzip index 29b881d28..66e496489 160000 --- a/depends/libzip +++ b/depends/libzip @@ -1 +1 @@ -Subproject commit 29b881d286f43189ff7392f609da78daa80c0606 +Subproject commit 66e496489bdae81bfda8b0088172871d8fda0032 diff --git a/depends/xlsxio b/depends/xlsxio index 261d56815..cfd9ed517 160000 --- a/depends/xlsxio +++ b/depends/xlsxio @@ -1 +1 @@ -Subproject commit 261d56815b29908fc960fecb9cb3143db4b485ad +Subproject commit cfd9ed517417000f5ffce428f2a4a7da0847c145 From b85759620f6d5c41fc6ef210ca0bff99cd603c9a Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 00:33:41 -0400 Subject: [PATCH 04/11] Switch libzip and xlsxio to be included with add_subdirectory(), disable xlsxio installation --- CMakeLists.txt | 1 + depends/CMakeLists.txt | 53 +++++++++++++++++++++--------------------- depends/libzip | 2 +- depends/xlsxio | 2 +- plugins/CMakeLists.txt | 10 +------- 5 files changed, 31 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 83eca71af..526cb9f7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,6 +406,7 @@ endif() include_directories(depends/tthread) include_directories(${ZLIB_INCLUDE_DIRS}) include_directories(depends/clsocket/src) +include_directories(depends/xlsxio/include) add_subdirectory(depends) find_package(Git REQUIRED) diff --git a/depends/CMakeLists.txt b/depends/CMakeLists.txt index db3b939e8..de0683427 100644 --- a/depends/CMakeLists.txt +++ b/depends/CMakeLists.txt @@ -47,32 +47,33 @@ set(EXPAT_BUILD_TESTS OFF CACHE BOOL "") set(EXPAT_BUILD_TOOLS OFF CACHE BOOL "") set(EXPAT_SHARED_LIBS OFF CACHE BOOL "") set(EXPAT_BUILD_DOCS OFF CACHE BOOL "") +set(EXPAT_ENABLE_INSTALL OFF CACHE BOOL "") add_subdirectory(libexpat/expat) -set(LIBZIP_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzip) -set(LIBZIP_LIB ${LIBZIP_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}zip${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(LIBZIP_LIB ${LIBZIP_LIB} PARENT_SCOPE) -ExternalProject_Add(libzip_project - PREFIX libzip - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libzip - INSTALL_DIR ${LIBZIP_INSTALL_DIR} - BUILD_BYPRODUCTS ${LIBZIP_LIB} - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" - CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBZIP_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_DOC=OFF -DBUILD_EXAMPLES=OFF -DBUILD_REGRESS=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TOOLS=OFF -DENABLE_BZIP2=OFF -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_LZMA=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_POSITION_INDEPENDENT_CODE=ON -) +set(LIBZIP_BUILD_DOC OFF CACHE BOOL "") +set(LIBZIP_BUILD_EXAMPLES OFF CACHE BOOL "") +set(LIBZIP_BUILD_REGRESS OFF CACHE BOOL "") +set(LIBZIP_BUILD_SHARED_LIBS OFF CACHE BOOL "") +set(LIBZIP_BUILD_TOOLS OFF CACHE BOOL "") +set(LIBZIP_ENABLE_BZIP2 OFF CACHE BOOL "") +set(LIBZIP_ENABLE_COMMONCRYPTO OFF CACHE BOOL "") +set(LIBZIP_ENABLE_GNUTLS OFF CACHE BOOL "") +set(LIBZIP_ENABLE_LZMA OFF CACHE BOOL "") +set(LIBZIP_ENABLE_MBEDTLS OFF CACHE BOOL "") +set(LIBZIP_ENABLE_OPENSSL OFF CACHE BOOL "") +set(LIBZIP_ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "") +set(LIBZIP_DO_INSTALL OFF CACHE BOOL "") +add_subdirectory(libzip) -set(XLSXIO_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/xlsxio) -set(XLSXIO_INSTALL_DIR ${XLSXIO_INSTALL_DIR} PARENT_SCOPE) -set(XLSXIO_LIB ${XLSXIO_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xlsxio_read${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(XLSXIO_LIB ${XLSXIO_LIB} PARENT_SCOPE) -ExternalProject_Add(xlsxio_project - PREFIX xlsxio - DEPENDS libzip_project - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xlsxio - INSTALL_DIR ${XLSXIO_INSTALL_DIR} - BUILD_BYPRODUCTS ${XLSXIO_LIB} - CMAKE_GENERATOR "${CMAKE_GENERATOR}" - CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" - CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${XLSXIO_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_STATIC=ON -DBUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TOOLS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DWITH_LIBZIP=ON -DZLIB_DIR=${ZLIB_DIR} -DLIBZIP_DIR=${LIBZIP_INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_FLAGS=${XLSXIO_C_FLAGS} -) +set(XLSXIO_USE_DFHACK_LIBS ON CACHE BOOL "") +set(XLSXIO_BUILD_STATIC ON CACHE BOOL "") +set(XLSXIO_BUILD_SHARED OFF CACHE BOOL "") +set(XLSXIO_BUILD_DOCUMENTATION OFF CACHE BOOL "") +set(XLSXIO_BUILD_EXAMPLES OFF CACHE BOOL "") +set(XLSXIO_BUILD_TOOLS OFF CACHE BOOL "") +set(XLSXIO_WITH_LIBZIP ON CACHE BOOL "") +set(XLSXIO_ZLIB_DIR "${ZLIB_DIR}" CACHE PATH "") +set(XLSXIO_LIBZIP_DIR "${CMAKE_CURRENT_BINARY_DIR}/libzip" CACHE PATH "") +set(XLSXIO_EXPAT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libexpat" CACHE PATH "") +set(XLSXIO_ENABLE_INSTALL OFF CACHE BOOL "") +add_subdirectory(xlsxio) diff --git a/depends/libzip b/depends/libzip index 66e496489..2dec33677 160000 --- a/depends/libzip +++ b/depends/libzip @@ -1 +1 @@ -Subproject commit 66e496489bdae81bfda8b0088172871d8fda0032 +Subproject commit 2dec336772bf401e86ff7cf15647709e6697f84a diff --git a/depends/xlsxio b/depends/xlsxio index cfd9ed517..f801aeeb7 160000 --- a/depends/xlsxio +++ b/depends/xlsxio @@ -1 +1 @@ -Subproject commit cfd9ed517417000f5ffce428f2a4a7da0847c145 +Subproject commit f801aeeb71e6ad70c0c59b8c35ebde47b1eb610e diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index dc71b6e0d..424f9eef7 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -77,12 +77,6 @@ set_source_files_properties( Brushes.h PROPERTIES HEADER_FILE_ONLY TRUE ) add_library(buildingplan-lib STATIC buildingplan-lib.cpp) target_link_libraries(buildingplan-lib dfhack) -# xlsxreader deps -add_library(xlsxio_read STATIC IMPORTED) -set_target_properties(xlsxio_read PROPERTIES IMPORTED_LOCATION ${XLSXIO_LIB}) -add_library(zip STATIC IMPORTED) -set_target_properties(zip PROPERTIES IMPORTED_LOCATION ${LIBZIP_LIB}) - if(WIN32) set(LIB_Z_LIB "depends/zlib/lib/zlib") else() @@ -187,11 +181,9 @@ if(BUILD_SUPPORTED) add_subdirectory(tweak) dfhack_plugin(workflow workflow.cpp LINK_LIBRARIES lua) dfhack_plugin(workNow workNow.cpp) - dfhack_plugin(xlsxreader xlsxreader.cpp LINK_LIBRARIES lua xlsxio_read zip expat ${LIB_Z_LIB}) + dfhack_plugin(xlsxreader xlsxreader.cpp LINK_LIBRARIES lua xlsxio_read_STATIC zip expat ${LIB_Z_LIB}) dfhack_plugin(zone zone.cpp LINK_LIBRARIES lua) endif() -target_include_directories(xlsxreader PRIVATE ${XLSXIO_INSTALL_DIR}/include) -add_dependencies(xlsxreader xlsxio_project) # this is the skeleton plugin. If you want to make your own, make a copy and then change it option(BUILD_SKELETON "Build the skeleton plugin." OFF) From 7efadc85a65c1cbaad8f69d08f40a2ba2f18d627 Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 00:36:47 -0400 Subject: [PATCH 05/11] Remove some unused config --- depends/CMakeLists.txt | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/depends/CMakeLists.txt b/depends/CMakeLists.txt index de0683427..566a4d57f 100644 --- a/depends/CMakeLists.txt +++ b/depends/CMakeLists.txt @@ -18,28 +18,6 @@ option(CLSOCKET_DEP_ONLY "Build for use inside other CMake projects as dependenc add_subdirectory(clsocket) ide_folder(clsocket "Depends") -# assemble environment args to pass on to dependency projects -get_cmake_property(vars CACHE_VARIABLES) -foreach(var ${vars}) - if(var MATCHES "^CMAKE_" - AND NOT var MATCHES "^CMAKE_CACHE" - AND NOT var MATCHES "^CMAKE_HOME" - AND NOT var MATCHES "^CMAKE_PROJECT") - list(APPEND CL_ARGS "-D${var}=${${var}}") - endif() - if(var MATCHES "^ZLIB") - list(APPEND CL_ARGS "-D${var}=${${var}}") - endif() -endforeach() - -include(ExternalProject) - -if(WIN32) - set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} /DXML_STATIC") -else() - set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} -DXML_STATIC") -endif() - # set the default values of libexpat options - the descriptions are left empty # because later option() calls *do* override those set(EXPAT_BUILD_EXAMPLES OFF CACHE BOOL "") From a4254a4d2cec12fe6c53ff4a6949dcc769976f04 Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 15:04:06 -0400 Subject: [PATCH 06/11] xlsxreader: Don't link to zlib directly It's complicated on Windows, and xlsxio already links to it directly --- plugins/CMakeLists.txt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 424f9eef7..4998bd798 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -77,12 +77,6 @@ set_source_files_properties( Brushes.h PROPERTIES HEADER_FILE_ONLY TRUE ) add_library(buildingplan-lib STATIC buildingplan-lib.cpp) target_link_libraries(buildingplan-lib dfhack) -if(WIN32) - set(LIB_Z_LIB "depends/zlib/lib/zlib") -else() - set(LIB_Z_LIB "z") -endif() - # Plugins option(BUILD_SUPPORTED "Build the supported plugins (reveal, probe, etc.)." ON) if(BUILD_SUPPORTED) @@ -181,7 +175,7 @@ if(BUILD_SUPPORTED) add_subdirectory(tweak) dfhack_plugin(workflow workflow.cpp LINK_LIBRARIES lua) dfhack_plugin(workNow workNow.cpp) - dfhack_plugin(xlsxreader xlsxreader.cpp LINK_LIBRARIES lua xlsxio_read_STATIC zip expat ${LIB_Z_LIB}) + dfhack_plugin(xlsxreader xlsxreader.cpp LINK_LIBRARIES lua xlsxio_read_STATIC zip expat) dfhack_plugin(zone zone.cpp LINK_LIBRARIES lua) endif() From 65b8071941f60b4a4dbb83c0e91c028c4da71225 Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 15:05:17 -0400 Subject: [PATCH 07/11] Use typedefs from xlsxio in PluginStatics.h The typedefs in the header foward-declared new structs of the same names in the DFHack namespace, e.g. DFHack::xlsxio_read_struct. Apparently the constructors that used these typedefs are not inlined on Windows, so libdfhack was compiled with a constructor taking a "DFHack::xlsxio_read_sheet_struct", and xlsxreader was looking for a constructor taking just a "xlsxio_read_sheet_struct", which didn't exist. --- library/include/PluginStatics.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/include/PluginStatics.h b/library/include/PluginStatics.h index 061fd3a21..5665fb9e6 100644 --- a/library/include/PluginStatics.h +++ b/library/include/PluginStatics.h @@ -8,6 +8,8 @@ #pragma once +#include + #include "DataIdentity.h" namespace DFHack { @@ -26,14 +28,12 @@ struct DFHACK_EXPORT xlsx_sheet_handle_identity : public compound_identity { }; struct DFHACK_EXPORT xlsx_file_handle { - typedef struct xlsxio_read_struct* xlsxioreader; const xlsxioreader handle; xlsx_file_handle(xlsxioreader handle): handle(handle) {} static xlsx_file_handle_identity _identity; }; struct DFHACK_EXPORT xlsx_sheet_handle { - typedef struct xlsxio_read_sheet_struct* xlsxioreadersheet; const xlsxioreadersheet handle; xlsx_sheet_handle(xlsxioreadersheet handle): handle(handle) {} static xlsx_sheet_handle_identity _identity; From 650ab3a87ac926defd89a2e75ce4d7367e1cd438 Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 15:43:03 -0400 Subject: [PATCH 08/11] Update libzip for older CMake (on Buildmaster) --- depends/libzip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/libzip b/depends/libzip index 2dec33677..5422cd24f 160000 --- a/depends/libzip +++ b/depends/libzip @@ -1 +1 @@ -Subproject commit 2dec336772bf401e86ff7cf15647709e6697f84a +Subproject commit 5422cd24f6b254b67b519f437df730e187173ed9 From 89210eaf29801d1234e4b88f04b269a1c1f76e8e Mon Sep 17 00:00:00 2001 From: lethosor Date: Fri, 18 Sep 2020 17:01:30 -0400 Subject: [PATCH 09/11] Update libzip (static lib) --- depends/libzip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/libzip b/depends/libzip index 5422cd24f..33c059d22 160000 --- a/depends/libzip +++ b/depends/libzip @@ -1 +1 @@ -Subproject commit 5422cd24f6b254b67b519f437df730e187173ed9 +Subproject commit 33c059d2217de6a5271e9ecbf19908e6efbf0e79 From 64b12021193ba662ef79cedc3527e6f0ad27483e Mon Sep 17 00:00:00 2001 From: lethosor Date: Sat, 19 Sep 2020 01:17:25 -0400 Subject: [PATCH 10/11] Fix some CMake warnings and extraneous output --- .gitmodules | 2 +- CMakeLists.txt | 1 + depends/libexpat | 2 +- depends/xlsxio | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 97d01c993..e548e27f9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,5 +26,5 @@ shallow = true [submodule "depends/libexpat"] path = depends/libexpat - url = ../../libexpat/libexpat.git + url = ../../DFHack/libexpat.git shallow = true diff --git a/CMakeLists.txt b/CMakeLists.txt index 526cb9f7a..ce3104bca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ ## some generic CMake magic cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) +cmake_policy(SET CMP0048 NEW) project(dfhack) if("${CMAKE_GENERATOR}" STREQUAL Ninja) diff --git a/depends/libexpat b/depends/libexpat index d8daead33..26839cce4 160000 --- a/depends/libexpat +++ b/depends/libexpat @@ -1 +1 @@ -Subproject commit d8daead33ee76a29f5184d35b13672b6ce14b4a2 +Subproject commit 26839cce4534ea4ee70ba992a6d7a774c624d584 diff --git a/depends/xlsxio b/depends/xlsxio index f801aeeb7..4056226fe 160000 --- a/depends/xlsxio +++ b/depends/xlsxio @@ -1 +1 @@ -Subproject commit f801aeeb71e6ad70c0c59b8c35ebde47b1eb610e +Subproject commit 4056226fe0df6bff4593ee2353cca07c2b7f327e From 8df8eb0c5d6b30a9faa760773fcf069c5e9b657e Mon Sep 17 00:00:00 2001 From: lethosor Date: Sat, 19 Sep 2020 16:23:21 -0400 Subject: [PATCH 11/11] Remove obsolete xlsxio_project dependency --- plugins/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 973d0a37c..4998bd798 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -177,9 +177,6 @@ if(BUILD_SUPPORTED) dfhack_plugin(workNow workNow.cpp) dfhack_plugin(xlsxreader xlsxreader.cpp LINK_LIBRARIES lua xlsxio_read_STATIC zip expat) dfhack_plugin(zone zone.cpp LINK_LIBRARIES lua) - - target_include_directories(xlsxreader PRIVATE ${XLSXIO_INSTALL_DIR}/include) - add_dependencies(xlsxreader xlsxio_project) endif() # this is the skeleton plugin. If you want to make your own, make a copy and then change it