Commit Graph

211 Commits (b59201d325287b04b9206afd51d9b566fbb4f45b)

Author SHA1 Message Date
lethosor b85759620f
Switch libzip and xlsxio to be included with add_subdirectory(), disable xlsxio installation 2020-09-18 00:33:41 -04:00
lethosor f354f7800f
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
2020-09-17 21:00:16 -04:00
lethosor b47710ae6f
Upgrade libexpat
Needed for a consistent target name: da7cda3a85
This commit is likely close to 2.2.10 anyway
2020-09-17 20:09:13 -04:00
lethosor 1efa09582a
Change libexpat to be included with add_subdirectory()
- Confirmed that libexpat is built statically and linked with xlsxreader
- May need da7cda3a85 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.
2020-09-17 00:25:50 -04:00
lethosor 94798a3620
Pass CMAKE_GENERATOR_TOOLSET to ExternalProject_Add instead 2020-08-22 10:38:29 -04:00
lethosor 5a77c9037e
Pass CMAKE_GENERATOR_TOOLSET (cmake -T argument) to external projects
The dependencies introduced in #1620 cause an error when building natively on Windows, according to @ragundo. CMake is looking for build tools `v100`, which are part of VS2010 and won't work with DF/DFHack, even if they were installed.

Some of the Windows build scripts pass in `-T v140_xp` (from VS2015), so passing this option through to subprojects may help: https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_TOOLSET.html
2020-08-21 19:49:33 -04:00
Myk Taylor 702228bf12 use standard CMAKE vars for prefixes and suffixes 2020-08-10 01:01:13 -07:00
Myk Taylor 6da364a60b ensure libexpat is used as a static lib 2020-08-10 00:01:47 -07:00
Myk Taylor 679ca41da8 make sure xlsxio knows to link statically 2020-08-09 21:22:17 -07:00
Myk Taylor a41f7c0998 convert XlsxReader module to xlsxreader plugin 2020-08-09 08:54:42 -07:00
Myk Taylor 5fc627a16f no lib prefix for libzip on windows too 2020-08-09 04:03:04 -07:00
Myk Taylor 7a0853025a use non-standard xlsxio lib name on windows 2020-08-09 03:30:59 -07:00
Myk Taylor 8913d43d6f ensure xlsxio_project gets built before dfhack 2020-08-09 02:59:22 -07:00
Myk Taylor f04a9c3180 clean up logging; use xlsxio's misspelling of "DIRS" 2020-08-09 02:32:31 -07:00
Myk Taylor 79415cf097 clean up dep lib vars 2020-08-09 02:24:05 -07:00
Myk Taylor 204240f3e3 specify expat include dir for xlsxio 2020-08-09 02:14:37 -07:00
Myk Taylor c7cf7fdd30 define EXPAT_LIBRARIES for xlsxio 2020-08-09 02:00:06 -07:00
Myk Taylor 43bcec4a57 move libzip to older version
although they declare that they only need cmake 3.0.2, they started
using add_compile_definitions(), which was added in cmake 3.12

git checkout 29b881d fixes this
2020-08-09 00:46:50 -07:00
Myk Taylor bb988d25e6 try to get the library suffix right for windows 2020-08-09 00:24:25 -07:00
Myk Taylor 51794d91ed really get the env vars 2020-08-08 23:55:24 -07:00
Myk Taylor b0cb40c5ea pass the cmake environment to deps 2020-08-08 22:42:50 -07:00
Myk Taylor 1cfe2735d3 build deps in verbose mode for debugging 2020-08-08 22:03:42 -07:00
Myk Taylor d65504eb82 ensure CFLAGS and CXXFLAGS get propagated to deps 2020-08-08 21:19:38 -07:00
Myk Taylor 8753f9feaf use correct lib dir on 32-bit 2020-08-08 20:42:03 -07:00
Myk Taylor 8a05f09cd6 add libexpat to the build 2020-08-08 20:18:43 -07:00
Myk Taylor e7afc4cfeb fix libexpat at v2.2.9 2020-08-08 20:10:13 -07:00
Myk Taylor 8de39c2d7d add libexpat as a submodule 2020-08-08 20:09:29 -07:00
Myk Taylor 28eaf0ae8b add libzip to the build 2020-08-08 20:04:46 -07:00
Myk Taylor eeeb638c1c fix libzip at v1.7.3 2020-08-08 19:48:11 -07:00
Myk Taylor 4f0eb4bca6 add libzip dep 2020-08-08 19:47:02 -07:00
Myk Taylor 89a6309788 build xlsxio and link it into dfhack, add lua api 2020-08-08 15:24:12 -07:00
Myk Taylor 1fc800e765 fix xlsxio lib to current commit
so it doesn't break us with incompatibile changes. we only need to
update this lib if/when we run into a bug with it. no need to introduce
instability by tracking HEAD
2020-08-07 13:08:06 -07:00
Myk Taylor b033e4644f add xlsxio as a submodule 2020-08-07 12:44:40 -07:00
lethosor f3b3cb1b33 Remove fast_mutex from CMakeLists 2020-05-04 19:26:49 -04:00
lethosor 1dc2d4b6aa Remove tthread::fast_mutex entirely
This can deadlock on Linux, per be517370a6, and rendermax was the only tool that used it
2020-05-04 18:41:59 -04:00
Ben Rosser 7bdf958518 Fix protobuf compilation with GCC 10 on Fedora
Fixes #1506
2020-04-24 21:18:46 -04:00
Ben Lubar 90e0c29a5c
implement posix_memalign on Windows for sizecheck 2020-03-26 17:46:00 -05:00
Ben Lubar 76dba44679
update clsocket 2020-02-24 10:40:28 -06:00
lethosor 0ec12657f4 sizecheck: add MALLOC_PERTURB_ support on non-Linux 2020-02-18 00:44:07 -05:00
Ben Lubar 360e6e9afb
fix possible crash due to something modifying the 4 bytes between the sizecheck header and the actual allocated data on 64-bit 2020-02-14 17:38:18 -06:00
Ben Lubar 3c9f6f79ab
fix some warnings 2020-02-10 19:35:17 -06:00
lethosor f54c361718 Add an implementation of mifki's sizecheck library (tested on Linux) 2020-02-08 21:18:29 -05:00
lethosor 815821eb93 Merge branch 'develop' into cmake-cleanup
Conflicts:
	depends/lua/CMakeLists.txt
	plugins/CMakeLists.txt
	plugins/devel/CMakeLists.txt
2020-01-18 22:28:43 -05:00
lethosor 8675ff660c Windows+Ninja: Fix build error due to trying to include " dfhack_llimits.h"
Ref #1455
2019-10-04 13:15:58 -04:00
lethosor dcce9ae599 Add quotes around dfhack_llimits.h include for MSVC
Fixes #1455
2019-10-04 13:07:26 -04:00
lethosor 8a07426643 Merge branch 'develop' into cmake-cleanup 2019-07-20 15:15:39 -04:00
lethosor b6678d72ae Move custom lualimit.h to lua dir and rename to dfhack_llimits.h 2019-07-20 14:26:30 -04:00
Pauli a90a6b2a7b Make lua data race free
Fixes tsan trace report between lua viewscreen and other threads running
lua without CoreSuspender lock. But I would assume similar races exists
when using lua from console thread, remote thread and vmethods same time.
2019-07-18 23:04:40 -04:00
lethosor 76da2c2aaf Clean up CMakeLists.txt style 2019-07-16 22:19:11 -04:00
Ben Lubar a5018c9b81
Exclude jsoncpp default CMake targets.
Removes the lib and include directories from the DFHack package.

Removes the status message that lists the jsoncpp version number.
2018-07-08 23:16:08 -05:00
Pauli 2b79b4cce7 Use jsoncpp 1.8.4 as a submodule
This makes jsoncpp a submodule that can be build directly from git
sources. This changes depends/jsoncpp to depends/jsoncpp-sub to avoid
filename conflict if someone tries to use git bisect.

jsoncpp library name changes to jsoncpp_lib_static.

jsoncpp version is the latest tagged release.
2018-06-14 21:20:46 +03:00
Pauli 424028a0ae jsoncpp: Fix (U)Int64 to long int on 64bit linux
Passing a 64bit integer to Json::Value fails to find matching. Even
tough long long int is also 64bits gcc considres long long int different
to long int. But fix can't be as simple as removing an long from type
because that would reduce 32bit builds to have only 32bit maximum int
size. But standard offers fixed width integer types that can be used to
get correct underlying type depending on platform.
2018-06-14 17:24:50 +03:00
Pauli 01abcb756e Request c++14 support from compilers
All platforms seems to either have compiler supporting c++14. Windows
already requires msvc2015 that supports c++14 which should make it
minimal issue to require c++14 support from all compilers because gcc
is pretty easy to upgrade.
2018-06-10 23:15:33 +03:00
Ben Lubar 9cf4cdbc1f
Simplify CMakeLists.txt for protobuf.
All of the compilers we support have std::unordered_map and std::unordered_set in their standard locations.
2018-05-13 16:55:38 -05:00
lethosor e2cd1fca58 Reorder dfhack-md5 GCC flags, fix another embark-assistant warning 2018-05-13 13:09:51 -04:00
lethosor 016dab3990 Fix more warnings, including stonesense 2018-05-12 22:10:07 -04:00
lethosor fcd8c9606e Fix some warnings on OS X 2018-05-12 18:46:58 -04:00
Ben Lubar afc2c476bb
Fix remaining warnings on Windows. 2018-04-06 21:22:48 -05:00
Ben Lubar 8a53ad543f
Fix clsocket warnings. 2018-04-05 14:46:02 -05:00
Ben Lubar 5d24aa8b62
Fix memset call in md5.cpp 2018-04-05 14:28:00 -05:00
Ben Lubar 1ec96aa992
Disable pointless warnings in protobuf-generated code. 2018-04-05 13:58:10 -05:00
Ben Lubar 7bbfd456d3
Fix compile errors on Ubuntu 18.04 Bionic Beaver 2018-03-08 11:42:58 -06:00
Ben Lubar ac1d6f947f
Update clsocket submodule. See DFHack/clsocket#10. 2017-07-21 10:24:00 -05:00
lethosor 01c6416824 Update submodules 2017-05-13 21:56:08 -04:00
lethosor 03f56f7315 gunzip.pl: use binary output mode
Fixes an issue with LF being turned into CRLF on Windows
2017-04-30 17:06:57 -04:00
lethosor 38702febf7 Use LUA_(C)PATH_VAR instead of LUA_(C)PATH in luaconf.h
This was apparently changed at some point around Lua 5.3, so a custom LUA_PATH
environment variable could prevent DFHack from initializing.
2017-03-14 00:24:05 -04:00
Ben Rosser 144675c74b Update bundled tinyxml version from 2.5.3 to 2.6.2
Upstream has moved onto tinyxml2, so this is likely to be the last
release of the original tinyxml (2.6.2 came out in 2011). dfhack
should therefore probably ship 2.6.2, since it's unlikely there will
ever be future fixes to this code. The upstream changelog (taken
from "changes.txt" in upstream tarball) contains many bugfixes and
is included in the commit message below.

2.5.4
- A TiXMLDocument can't be a sub-node. Block this from happening in
  the 'replace'. Thanks Noam.
- [ 1714831 ] TiXmlBase::location is not copied by copy-ctors, fix
  reported and suggested by Nicola Civran.
- Fixed possible memory overrun in the comment reading code - thanks
  gcarlton77

2.5.5
- Alex van der Wal spotted incorrect types (lf) being used in print
  and scan. robertnestor pointed out some problems with the simple
  solution. Types updated.
- Johannes Hillert pointed out some bug typos.
- Christian Mueller identified inconsistent error handling with
  Attributes.
- olivier barthelemy also reported a problem with double truncation,
  also related to the %lf issue.
- zaelsius came up with a great (and simple) suggestion to fix
  QueryValueAttribute truncating strings.
- added some null pointer checks suggested by hansenk
- Sami V�is�nen found a (rare) buffer overrun that could occur in
  parsing.
- vi tri filed a bug that led to a refactoring of the attribute
  setting mess (as well as adding a missing SetDoubleAttribute() )
- removed TIXML_ERROR_OUT_OF_MEMORY. TinyXML does not systematically
  address OOO, and the notion it does is misleading.
- vanneto, keithmarshall, others all reported the warning from
  IsWhiteSpace() usage. Cleaned this up - many thanks to everyone
  who reported this one.
- tibur found a bug in end tag parsing

2.6.2
- Switched over to VC 2010
- Fixed up all the build issues arising from that. (Lots of latent
  build problems.)
- Removed the old, now unmaintained and likely not working, build
  files.
- Fixed some static analysis issues reported by orbitcowboy from
  cppcheck.
- Bayard 95 sent in analysis from a different analyzer - fixes
  applied from that as well.
- Tim Kosse sent a patch fixing an infinite loop.
- Ma Anguo identified a doc issue.
- Eddie Cohen identified a missing qualifier resulting in a compilation
  error on some systems.
- Fixed a line ending bug. (What year is this? Can we all agree on a
  format for text files? Please? ...oh well.)
2016-12-06 21:40:30 -05:00
lethosor 04ad7a0a42 Replace some instances of "cmake -E copy_if_different" with a standalone script
@JapaMala reported that CMake < 3.5 doesn't support copy_if_different with
multiple source files.

https://cmake.org/cmake/help/v3.5/release/3.5.html#command-line
2016-11-02 16:23:32 -04:00
lethosor 7f7102f90c Distribute a gunzip.pl script
gunzip isn't reliably available on Windows, but IO::Uncompress::Gunzip should
be.

Suggested by Quietust.
2016-10-15 12:09:04 -04:00
lethosor ada96b3162 Remove GCC version check in protobuf/CMakeLists.txt
The only thing this check was used for was disabled, and the root CMakeLists.txt
will enforce the minimum GCC version before protobuf is included.
2016-10-10 09:33:52 -04:00
lethosor 1029e0f02a Fix a few whitespace issues
From #992
2016-09-15 01:37:07 -04:00
David Seguin 01a97f6487
Made pthread required for building protobuf 2016-09-08 17:12:42 -04:00
lethosor 18a8512242 Fix LLONG_MAX/LLONG_MIN in luaconf.h with old glibc versions 2016-08-13 11:40:30 -04:00
Lethosor 6e741b1a80 Merge pull request #969 from Qartar/win64
Minor fixes/updates for Visual Studio 2015 Win64
2016-08-10 15:15:44 -04:00
lethosor aa47484b2a Enable bit32 library
Deprecated in Lua 5.3, but still contains some useful things, like extract()

Also helps maintain backward-compatibility with scripts that target older DF
versions (e.g. Mifki's dfremote project)
2016-08-09 18:57:24 -04:00
Carter Bray 3b9d37abe5 Suppress integer conversion warnings inside protobuf source 2016-07-31 17:01:52 -07:00
lethosor 158f18106f Merge remote-tracking branch 'NCommander/vs2015' into develop 2016-07-29 15:30:32 -04:00
lethosor adff13f4ab Lua: re-enable C++ exceptions (re 42c620b) 2016-07-27 21:44:25 -04:00
lethosor 828fee532a Switch to downloading zlib.lib and SDLreal.dll on Windows 2016-07-27 21:08:24 -04:00
Vitaly Pronkin 8916aba3bf win64 fixes (partial)
cherry-picked from 2f734ae2317060edb83021f17cffc966c435ad7b
2016-07-27 19:46:49 -04:00
Vitaly Pronkin 4dd411e862 Update Lua config and patch checkdp 2016-07-26 23:29:26 -04:00
lethosor e2c6350978 Update Lua to 5.3.3 2016-07-26 23:23:26 -04:00
lethosor a684e1dd0f Merge remote-tracking branch 'lethosor/64-bit' into develop 2016-07-26 22:54:36 -04:00
Michael Casadevall e10397370b Merge branch 'develop' of github.com:DFHack/dfhack into vs2015 2016-07-11 18:59:22 -05:00
lethosor 2455e36510 Initial 64-bit support 2016-07-03 23:32:43 -04:00
Ben Rosser ae55d2d526 Support linking against an external tinyxml if EXTERNAL_TINYXML is set
As best as I can tell, the copy of tinyxml dfhack uses is unmodified
from whenever it was first bundled. This commit adds an option to CMake,
EXTERNAL_TINYXML, that if set to ON, will attempt to link against a system
tinyxml instead of using the dfhack-bundled one.  It defaults to OFF,
so there is no change in default behavior.

The DFHACK_TINYXML variable is then set to either "tinyxml" or "dfhack-tinyxml"
so the library (and any plugins that need updating) can link against one
or the other.

The FindTinyXML.cmake script was taken from https://github.com/ros/cmake_modules
(licensed under the 3-clause BSD license).

Add license text to new CMake file.
2016-06-29 17:53:16 -04:00
Michael Casadevall c3188b1d6c Make our build checks relate to the new compiler world order
(thanks lethosor)

Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-28 07:13:52 -05:00
Michael Casadevall 62e8740e3a Backport new hash.h from git upstream to add support for VS2015
Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
2016-06-28 07:13:18 -05:00
lethosor f07bc03c69 Update clsocket and Open()/Listen() usage 2016-06-14 13:21:51 -04:00
lethosor a47a1c83ba Update xml, clsocket 2016-06-07 08:17:40 -04:00
Ben Lubar bfe7a90ec0 add NOMINMAX to Windows.h includes 2016-05-21 19:54:20 -05:00
Ben Lubar 700392ba55 Fix tinythread memory leak in two ways:
1. update to tinythread version 1.1, which provides a detach method
2. move the thread disassociation to the join function, which allows
attached threads to be joined even after they finish (this was the main
leak)

Also update RemoteServer.cpp to detach threads and delete the thread
objects instead of leaking them (although they are much smaller than the
actual threads).
2016-05-21 19:17:08 -05:00
lethosor 71ff6f875a Also exclude libprotoc when cross-compiling (unused) 2016-01-18 09:22:08 -05:00
lethosor e8ea5c93ca Build testHashMap.cpp in the build directory
This allows switching between build directories without having to re-run CMake
2016-01-09 08:37:01 -05:00
lethosor 8cec8af3b1 CMake: Support cross-compiling
This relies on a working cross-compiler, of course, as well as a separate build
directory for cross-compiled builds, with DFHACK_NATIVE_BUILD_DIR pointing
to an already-successful native build directory (this is needed for protoc).
2016-01-08 21:08:26 -05:00
lethosor 80556449a1 Improve Json::get() slightly 2015-11-27 16:45:26 -05:00
lethosor 485eddc54e JsonEx -> Json 2015-11-26 20:24:14 -05:00
lethosor e15dcfd72a protobuf: Disable unused-result warnings in release mode 2015-11-05 21:52:04 -05:00
lethosor 867b733a04 Fix a few GCC warnings on Linux (GCC 4.6) 2015-11-05 21:48:13 -05:00
lethosor f4a2188e42 Travis: Build DFHack 2015-10-03 15:58:41 -04:00