numcpp 2.12.0 build failure
chenrui333 opened this issue ยท 5 comments
๐ trying to build the latest release, but run into some build issue. The error log is as below:
error build log
==> /usr/bin/clang++ -std=c++17 test.cpp -o test -I/opt/homebrew/Cellar/numcpp/2.12.0/include
In file included from test.cpp:2:
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp.hpp:56:
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random.hpp:30:
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random/RNG.hpp:39:
/opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random/choice.hpp:73:72: error: expected unqualified-id
Replace replace = Replace::TRUE)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/mach/boolean.h:81:17: note: expanded from macro 'TRUE'
#define TRUE 1
^
In file included from test.cpp:2:
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp.hpp:[56](https://github.com/Homebrew/homebrew-core/actions/runs/6439272650/job/17486781813?pr=150022#step:3:57):
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random.hpp:30:
In file included from /opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random/RNG.hpp:39:
/opt/homebrew/Cellar/numcpp/2.12.0/include/NumCpp/Random/choice.hpp:75:37: error: expected unqualified-id
if (replace == Replace::FALSE && inNum > inArray.size())
^
full build log, https://github.com/Homebrew/homebrew-core/actions/runs/6439272650/job/17486781813?pr=150022
relates to Homebrew/homebrew-core#150022
You've included another library file (/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/mach/boolean.h:81:17) that defines a macro that overwrites an enum field from NumCpp. Recommended you remove that.
that is actually macOS sdk
@dpilger26 @chenrui333
I met same problem on updating conan recipe.
Cloud you consider renaming TRUE/FALSE symbols in Enums.hpp if possile.
Sigh... Macros are evil! I'm on vacation right now but I'll change them and cut a new release when I get back.
TRUE/FALSE enum fields have been updated to YES/NO in release version 2.12.1.