SQLite

Check-in [6ca457542e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:When checking pkg-config for ICU support use icu-io instead of icu-uc, as that contains all requires libs on Linux and BSD.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | autosetup-icu-pkg-config
Files: files | file ages | folders
SHA3-256: 6ca457542e1dceac2d68fe3d29ff1f0beb31a77ca3073bd7d8a6c62faabcdc1d
User & Date: stephan 2024-11-15 10:47:11.414
Context
2024-11-15
10:53
configure: add optional pkg-config support for detecting ICU. (check-in: 3e5b8077c6 user: stephan tags: trunk)
10:47
When checking pkg-config for ICU support use icu-io instead of icu-uc, as that contains all requires libs on Linux and BSD. (Closed-Leaf check-in: 6ca457542e user: stephan tags: autosetup-icu-pkg-config)
10:07
An experiment in optionally using pkg-config to determine the libs to link in for ICU support, but its ldflags is missing one required lib on both Linux and OpenBSD. Keeping this for later reference, as it demonstrates how to use pkg-config from autosetup. (check-in: 09caa94c9e user: stephan tags: autosetup-icu-pkg-config)
Changes
Unified Diff Ignore Whitespace Patch
Changes to auto.def.
1148
1149
1150
1151
1152
1153
1154

1155
1156
1157
1158
1159
1160



1161
1162
1163
1164




1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
proc sqlite-check-icu {} {
  define LDFLAGS_ICU [join [opt-val with-icu-ldflags ""]]
  define CFLAGS_ICU [join [opt-val with-icu-cflags ""]]
  # Flags sets seen in the wild for ICU:
  # - -licui18n -licuuc -licudata
  # - -licui18n -licuuc
  # - /usr/local/bin/icu-config --ldflags

  if {[proj-opt-was-provided with-icu-config]} {
    set icuConfigBin [opt-val with-icu-config]
    set tryIcuConfigBin 1; # set to 0 if we end up using pkg-config
    if {[pkg-config-init 0]
        && ("auto" eq $icuConfigBin || "pkg-config" eq $icuConfigBin)} {
      if {[pkg-config icu-uc]} {



        set tryIcuConfigBin 0
        define LDFLAGS_ICU [get-define PKG_ICU_UC_LDFLAGS]
        define-append LDFLAGS_ICU [get-define PKG_ICU_UC_LIBS]
        define CFLAGS_ICU [get-define PKG_ICU_UC_CFLAGS]




      }
    }
    if {$tryIcuConfigBin} {
      if {"auto" eq $icuConfigBin} {
        set icuConfigBin [proj-first-bin-of \
                            [get-define prefix]/bin/icu-config \
                            /usr/local/bin/icu-config \
                            /usr/bin/icu-config]
        if {"" eq $icuConfigBin} {
          proj-fatal "--with-icu-config=auto cannot find icu-config binary"
        }
      }
      if {[file-isexec $icuConfigBin]} {
        set x [exec $icuConfigBin --ldflags]
        if {"" eq $x} {
          proj-fatal "$icuConfigBin --ldflags returned no data"
        }







>



<
|
|
>
>
>

|
|
|
>
>
>
>





<



|







1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158

1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176

1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
proc sqlite-check-icu {} {
  define LDFLAGS_ICU [join [opt-val with-icu-ldflags ""]]
  define CFLAGS_ICU [join [opt-val with-icu-cflags ""]]
  # Flags sets seen in the wild for ICU:
  # - -licui18n -licuuc -licudata
  # - -licui18n -licuuc
  # - /usr/local/bin/icu-config --ldflags
  #
  if {[proj-opt-was-provided with-icu-config]} {
    set icuConfigBin [opt-val with-icu-config]
    set tryIcuConfigBin 1; # set to 0 if we end up using pkg-config

    if {"auto" eq $icuConfigBin || "pkg-config" eq $icuConfigBin} {
      if {[pkg-config-init 0] && [pkg-config icu-io]} {
        # Maintenance reminder: historical docs say to use both of
        # (icu-io, icu-uc). icu-uc lacks a required lib and icu-io has
        # all of them on tested OSes.
        set tryIcuConfigBin 0
        define LDFLAGS_ICU [get-define PKG_ICU_IO_LDFLAGS]
        define-append LDFLAGS_ICU [get-define PKG_ICU_IO_LIBS]
        define CFLAGS_ICU [get-define PKG_ICU_IO_CFLAGS]
      } elseif {"pkg-config" eq $icuConfigBin} {
        proj-fatal "pkg-config cannot find package icu-io"
      } else {
        proj-assert {"auto" eq $icuConfigBin}
      }
    }
    if {$tryIcuConfigBin} {
      if {"auto" eq $icuConfigBin} {
        set icuConfigBin [proj-first-bin-of \

                            /usr/local/bin/icu-config \
                            /usr/bin/icu-config]
        if {"" eq $icuConfigBin} {
          proj-fatal "--with-icu-config=auto cannot find (pkg-config icu-io) or icu-config binary"
        }
      }
      if {[file-isexec $icuConfigBin]} {
        set x [exec $icuConfigBin --ldflags]
        if {"" eq $x} {
          proj-fatal "$icuConfigBin --ldflags returned no data"
        }