Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Fail #1569

Closed
toton6868 opened this issue Feb 3, 2019 · 5 comments
Closed

Make Fail #1569

toton6868 opened this issue Feb 3, 2019 · 5 comments

Comments

@toton6868
Copy link

After ./configure the harfbuzz I was trying to make the project. But it was ended with error. here the terminal error log

In file included from hb-icu.cc:38:0:                                                                                                                                  
/usr/include/unicode/ustring.h:498:18: error: ‘UChar32Iterator’ was not declared in this scope                                                                         
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                  ^~~~~~~~~~~~~~~                                                                                                                                      
/usr/include/unicode/ustring.h:498:18: note: suggested alternative: ‘UCharIterator’                                                                                    
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                  ^~~~~~~~~~~~~~~                                                                                                                                      
                  UCharIterator                                                                                                                                        
/usr/include/unicode/ustring.h:498:35: error: ‘iter1’ was not declared in this scope                                                                                   
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                   ^~~~~                                                                                                                               
/usr/include/unicode/ustring.h:498:42: error: ‘UChar32Iterator’ was not declared in this scope                                                                         
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                          ^~~~~~~~~~~~~~~                                                                                                              
/usr/include/unicode/ustring.h:498:42: note: suggested alternative: ‘UCharIterator’                                                                                    
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                          ^~~~~~~~~~~~~~~                                                                                                              
                                          UCharIterator                                                                                                                
/usr/include/unicode/ustring.h:498:59: error: ‘iter2’ was not declared in this scope                                                                                   
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                                           ^~~~~                                                                                                       
/usr/include/unicode/ustring.h:498:72: error: expected primary-expression before ‘codePointOrder’                                                                      
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                                                        ^~~~~~~~~~~~~~                                                                                 
/usr/include/unicode/ustring.h:498:86: error: expression list treated as compound expression in initializer [-fpermissive]                                             
 u_strCompareIter(UChar32Iterator *iter1, UChar32Iterator *iter2, UBool codePointOrder);                                                                               
                                                                                      ^                                                                                
hb-icu.cc: In function ‘hb_bool_t hb_icu_unicode_compose(hb_unicode_funcs_t*, hb_codepoint_t, hb_codepoint_t, hb_codepoint_t*, void*)’:                                
hb-icu.cc:195:37: error: cannot convert ‘UChar* {aka char16_t*}’ to ‘const UChar32* {aka const int*}’ for argument ‘1’ to ‘int32_t u_countChar32_60(const UChar32*, int32_t)’                                                                                                                                                                 
   if (u_countChar32 (normalized, len) == 1) {                                                                                                                         
                                     ^                                                                                                                                 
hb-icu.cc: In function ‘hb_bool_t hb_icu_unicode_decompose(hb_unicode_funcs_t*, hb_codepoint_t, hb_codepoint_t*, hb_codepoint_t*, void*)’:                             
hb-icu.cc:222:41: error: cannot convert ‘UChar* {aka char16_t*}’ to ‘const UChar32* {aka const int*}’ for argument ‘1’ to ‘int32_t u_countChar32_60(const UChar32*, int32_t)’                                                                                                                                                                 
     len = u_countChar32 (decomposed, len);                                                                                                                            
                                         ^                                                                                                                             
hb-icu.cc:258:39: error: cannot convert ‘UChar* {aka char16_t*}’ to ‘const UChar32* {aka const int*}’ for argument ‘1’ to ‘int32_t u_countChar32_60(const UChar32*, int32_t)’                                                                                                                                                                 
   len = u_countChar32 (normalized, len);                                                                                                                              
                                       ^                                                                                                                               
In file included from hb-icu.cc:30:0:                                                                                                                                  
hb-icu.cc:294:49: error: cannot convert ‘UChar* {aka char16_t*}’ to ‘const UChar32* {aka const int*}’ for argument ‘1’ to ‘int32_t u_countChar32_60(const UChar32*, int32_t)’                                                                                                                                                                 
     if (unlikely (u_countChar32 (recomposed, len) != 1))                                                                                                              
                                                 ^                                                                                                                     
hb.hh:271:46: note: in definition of macro ‘unlikely’                                                                                                                  
 #define unlikely(expr) (__builtin_expect (!!(expr), 0))                                                                                                               
                                              ^~~~                                                                                                                     
Makefile:1805: recipe for target 'libharfbuzz_icu_la-hb-icu.lo' failed
make[4]: *** [libharfbuzz_icu_la-hb-icu.lo] Error 1
make[4]: Leaving directory '/opt/harfbuzz/harfbuzz/src'
Makefile:2650: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/opt/harfbuzz/harfbuzz/src'
Makefile:1455: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/opt/harfbuzz/harfbuzz/src'
Makefile:508: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/harfbuzz/harfbuzz'
Makefile:440: recipe for target 'all' failed
make: *** [all] Error 2
@ebraminio
Copy link
Collaborator

ebraminio commented Feb 3, 2019

Hey there. I almost sure there is something wrong with your packaging as we compile harfbuzz on very different places from ArchLinux to macOS without the issue and are testing that in our CI docker images but a quick workaround, do you really need ICU support on your project? I mean, harfbuzz can use either use ICU or glib or its buildin ucdn for needed unicode callbacks so you can switch between those if you like to with --without-icu for example. If you however like to just help in this specific case, share more details of your system, distro, version, compiler, anything you see relevant. Thanks

@toton6868
Copy link
Author

toton6868 commented Feb 3, 2019

I am using Ubuntu 18.04. Probably I need ICU. Idont know how to use HarfBuzz but currently I am facing a problem stated here. I want to use HarfBuzz with Mapbox GL JS and Mapbox Native. Somewhere I read ICU will be needed. Though without ICU it compiled. But I dont know how to start or how to integrate HarfBuzz with Mapbox. I need the support of Indic Language currently they are not providing. Please help me.

Here is the code I am using to install HarfBuzz

sudo apt install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools
sudo apt-get install libicu-dev
git clone https://github.com/harfbuzz/harfbuzz.git
cd harfbuzz
./autogen.sh
./configure --with-gobject --with-icu --with-graphite2 --with-coretext
make

@ebraminio
Copy link
Collaborator

This bot is very similar in config with your setup https://github.com/harfbuzz/harfbuzz/blob/master/.circleci/config.yml#L92 and doesn't have the issue. I can change the bot to use 18.04 but that was my development machine while ago and we have a similar 17.10 machine so I'd say something is changed on your system files, can you try a clean machine also?

@toton6868
Copy link
Author

I have edited my question. Now I can use without ICU. Can you help me to start harfbuzz with mapbox?

@ebraminio
Copy link
Collaborator

I don't know mapbox, closing this compile issue as we can't reproduce it but let us know if you see anything needed to be fixed. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants