Fix compilation error on macOS with GCC 11

This should make `-fpermissive` (from #1924) unnecessary, so I also removed
those instructions.
develop
lethosor 2021-08-21 12:58:17 -04:00
parent fb2d453b8b
commit 39c650de13
No known key found for this signature in database
GPG Key ID: 76A269552F4F58C1
2 changed files with 7 additions and 12 deletions

@ -338,6 +338,8 @@ from your GCC version and distribute that too, it will fail on older OS X
versions.) For this reason, if you plan on distributing DFHack, it is highly
recommended to use GCC 4.8 or 7.
.. _osx-m1-notes:
Notes for M1 users
------------------
@ -349,22 +351,14 @@ stackoverflow answer <https://stackoverflow.com/a/64951025>`__ describes the
process.
Follow the normal macOS steps to install ``cmake`` and ``gcc`` via your x86 copy of
``homebrew``.
``homebrew``. Note that this will install a GCC version newer than 7, so see
`osx-new-gcc-notes`.
In your terminal, ensure you have your path set to the correct homebrew in
addition to the normal ``CC`` and ``CXX`` flags above::
export PATH=/usr/local/bin:$PATH
In order to ignore certain warnings present in later versions of ``gcc``,
ensure you pass the following flag to ``cmake``::
-DCMAKE_CXX_FLAGS="-fpermissive"
An example full cmake command::
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<path to DF folder> -DDFHACK_BUILD_ARCH=64 -DCMAKE_CXX_FLAGS="-fpermissive"
.. _osx-setup:
Dependencies and system set-up

@ -31,7 +31,6 @@ using namespace std;
using std::string;
using std::vector;
using std::map;
using std::ostringstream;
using std::set;
using namespace DFHack;
@ -160,7 +159,9 @@ static inline void OutputToggleString(int &x, int &y, const char *text, df::inte
inline string int_to_string(const int n)
{
return static_cast<ostringstream*>( &(ostringstream() << n) )->str();
std::ostringstream ss;
ss << n;
return ss.str();
}
static inline void set_to_limit(int &value, const int maximum, const int min = 0)