You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 9, 2021. It is now read-only.
I suspect the same will be required for darwin. One of several reasons is that the C++ type char16_t referenced by recent version of ICU (>=58?) only exists in the standard from C++11 onwards.
You could try to set -std=c++11 conditionally depending on the underlying ICU version. In that case, ideally you would get that flag via icu-config --cxxflags, but icu-config unfortunately does not provide that. So if you don't want to set -std=c++11 unconditionally, you'll have to add the required check of ICU_VERSION to setup.py.
The text was updated successfully, but these errors were encountered:
On Jan 9, 2018, at 15:44, Martin Jansche ***@***.***> wrote:
When compiling against ICU 60.2 on GNU/Linux, I ran into problems that are easily fixed by adding -std=c++11 to CFLAGS in setup.py:
CFLAGS = {
'darwin': ['-DPYICU_VER="%s"' %(VERSION)],
- 'linux': ['-DPYICU_VER="%s"' %(VERSION)],
+ 'linux': ['-DPYICU_VER="%s"' %(VERSION), '-std=c++11'],
I suspect the same will be required for darwin. One of several reasons is that the C++ type char16_t referenced by recent version of ICU (>=58?) only exists in the standard from C++11 onwards.
You could try to set -std=c++11 conditionally depending on the underlying ICU version. In that case, ideally you would get that flag via icu-config --cxxflags, but icu-config unfortunately does not provide that. So if you don't want to set -std=c++11 unconditionally, you'll have to add the required check of ICU_VERSION to setup.py.
With PyICU 2.0’s setup.py, the icu-config program is used to determine the compile and link flags. Recent versions of ICU require c++11.
If icu-config is not found or fails to run, then the flags are taken from the defaults in setup.py. I agree that the defaults should include -std=c++11.
Andi..
However, including -std=c++11 in the defaults might break builds with older ICUs.
Thus closing as "won't fix" since icu-config is supposed to mitigate this mess.
When compiling against ICU 60.2 on GNU/Linux, I ran into problems that are easily fixed by adding -std=c++11 to CFLAGS in
setup.py
:I suspect the same will be required for darwin. One of several reasons is that the C++ type
char16_t
referenced by recent version of ICU (>=58?) only exists in the standard from C++11 onwards.You could try to set
-std=c++11
conditionally depending on the underlying ICU version. In that case, ideally you would get that flag viaicu-config --cxxflags
, buticu-config
unfortunately does not provide that. So if you don't want to set-std=c++11
unconditionally, you'll have to add the required check of ICU_VERSION to setup.py.The text was updated successfully, but these errors were encountered: