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

[GLIBMM] Installing .pc file #14988

Merged
merged 18 commits into from Dec 28, 2020
Merged

[GLIBMM] Installing .pc file #14988

merged 18 commits into from Dec 28, 2020

Conversation

faserg1
Copy link
Contributor

@faserg1 faserg1 commented Dec 7, 2020

Prepare and install atk.pc file.
Should also fix atkmm #9564

@JackBoosY JackBoosY added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Dec 8, 2020
@faserg1
Copy link
Contributor Author

faserg1 commented Dec 10, 2020

Updated also libsigc++, but need to install glibmm_generate_extra_defs.

@faserg1
Copy link
Contributor Author

faserg1 commented Dec 12, 2020

@JackBoosY I am stuck in compiling atkmm. There is a strange problem, and I don't know how to solve it with native configure&make. Atkmm using other libraries and links them in wrong order, so compiling fail.
Maybe a good variant as in other ports create a CMake file to build it? I just don't sure.

@JackBoosY
Copy link
Contributor

JackBoosY commented Dec 14, 2020

Command:

g++ -Wall -fPIC -g -o extradefs/generate_extra_defs extradefs/generate_extra_defs_atk.o  -L/mnt/vcpkg-ci/installed/x64-linux/debug/lib -L/mnt/vcpkg-ci/installed/x64-linux/debug/lib/manual-link -latk-1 -lgmodule-2.0 -lglibmm-2.0 -lgobject-2.0 -lglib-2.0 -lsigc-2.0 -lglibmm_generate_extra_defs-2.4

Error log:

/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `match_info_new':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:588: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_match_info_next':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:734: undefined reference to `pcre_exec'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `get_matched_substring_number':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1076: undefined reference to `pcre_get_stringnumber'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1079: undefined reference to `pcre_get_stringtable_entries'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_unref':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1262: undefined reference to `pcre_free'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1264: undefined reference to `pcre_free'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_new':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1314: undefined reference to `pcre_config'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1318: undefined reference to `pcre_config'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1352: undefined reference to `pcre_study'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `regex_compile':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1420: undefined reference to `pcre_compile2'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1448: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1460: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_get_max_backref':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1507: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_get_capture_count':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1528: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_get_has_cr_or_lf':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1549: undefined reference to `pcre_fullinfo'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o):/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1572: more undefined references to `pcre_fullinfo' follow
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_match_all_full':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1952: undefined reference to `pcre_dfa_exec'
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:1983: undefined reference to `pcre_free'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libglib-2.0.a(gregex.c.o): In function `g_regex_get_string_number':
/mnt/vcpkg-ci/buildtrees/glib/src/2.52.3-34a15219ec.clean/glib/gregex.c:2019: undefined reference to `pcre_get_stringnumber'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_unlock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_mutexattr_destroy'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_create'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_double'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_key_create'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_init'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_pointer'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_sint64'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_getspecific'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_void'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_mutex_trylock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_key_delete'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_rdlock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_attr_setstacksize'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_sint32'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_uint64'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_call'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_trywrlock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_destroy'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_wrlock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_sigmask'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_rwlock_tryrdlock'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_uint32'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_mutexattr_settype'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_prep_cif'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_join'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_setspecific'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_setname_np'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_detach'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `ffi_type_float'
/mnt/vcpkg-ci/installed/x64-linux/debug/lib/libatk-1.so: undefined reference to `pthread_mutexattr_init'
collect2: error: ld returned 1 exit status
make[1]: *** [extradefs/generate_extra_defs] Error 1
make: *** [all-recursive] Error 1

Should link with pcre, pthread and libffi. Add -lpcre -lthread -lffi should fix this issue.

@faserg1
Copy link
Contributor Author

faserg1 commented Dec 16, 2020

@JackBoosY I found problem and I know solution.
There is a glib-2.0.pc.in file, and there is a line:
Requires.private: @PCRE_REQUIRES@
As documentation of pkg-config sais:

On the other hand, libraries from Requires.private will only be included when static linking.

But that field on glib-2.0 is not configured. But should, as some other libraries.
Atkmm libs are configuring with this command: pkg-config --libs "atk >= 1.18 glibmm-2.4 >= 2.46.2".

ports/atkmm/portfile.cmake Outdated Show resolved Hide resolved
ports/atkmm/portfile.cmake Outdated Show resolved Hide resolved
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
@JackBoosY JackBoosY added the info:reviewed Pull Request changes follow basic guidelines label Dec 28, 2020
@JackBoosY
Copy link
Contributor

@BillyONeal If you don't have any other questions, we can accept this PR now.

@BillyONeal BillyONeal merged commit c346336 into microsoft:master Dec 28, 2020
@BillyONeal
Copy link
Member

Thanks for your help!

ryukw7 pushed a commit to ryukw7/vcpkg that referenced this pull request Dec 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants