Skip to content

Commit

Permalink
Fix compilation error on macOS with GCC 11
Browse files Browse the repository at this point in the history
This should make `-fpermissive` (from #1924) unnecessary, so I also removed
those instructions.
  • Loading branch information
lethosor committed Aug 21, 2021
1 parent fb2d453 commit 39c650d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 12 deletions.
14 changes: 4 additions & 10 deletions docs/Compile.rst
Expand Up @@ -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
------------------

Expand All @@ -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
Expand Down
5 changes: 3 additions & 2 deletions plugins/uicommon.h
Expand 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;
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 39c650d

Please sign in to comment.