Opened 13 months ago

Closed 13 months ago

Last modified 13 months ago

#952 closed defect (fixed)

Libraries are declared private in yat.pc incorrectly

Reported by: Peter Owned by: Peter
Priority: minor Milestone: yat 0.17.2
Component: build Version: trunk
Keywords: Cc:

Description

releates to #950

Working on #950, removing the -static in the test of yat.pc, exposed a bug in yat.pc that libraries and dependencies are declared private. This is the recommended way to declare dependencies whose symbols are compiled into libyat, but for symbols that are exposed in headers we need to declare them non-private. This is typically things that are called in templates and e.g. we call hts_open in omic::BamFile<>. Similarly, we expose gsl stuff in MatrixExpression?<> and possibly also cblas.

I found the bug in the trunk, but it's been a round a while. Could either be fixed in the trunk or in stable but has to go with ticket #950.

Change History (4)

comment:1 Changed 13 months ago by Peter

Here is a small tutorial; not spot on for this purpose, but somewhat useful.

https://tecnocode.co.uk/2014/12/09/a-checklist-for-writing-pkg-config-files/

comment:2 Changed 13 months ago by Peter

Owner: changed from Jari Häkkinen to Peter
Status: newaccepted

comment:3 Changed 13 months ago by Peter

Resolution: fixed
Status: acceptedclosed

In 3950:

Double-quote 2nd argument in YAT_SET_CONTAINS to allow expansion of
shell variables.

test/yat_pc_test.sh: remove --static in invocation of pkg-config
(fixes #950)

configure.ac: GSL, htslib and boost libraries that are exposed in
header files are not declared as private in yat.pc (fixes #952).

NEWS: record ticket #952

comment:4 Changed 13 months ago by Peter

Priority: majorminor
Note: See TracTickets for help on using tickets.