[Development] A deployment tool for Linux

Kevin Kofler kevin.kofler at chello.at
Fri Apr 12 06:07:47 CEST 2019


Mitch Curtis wrote:
> (which it turns out you still need to bundle libs that are dynamically
> linked like ICU)

With a bit of effort, you can also force Qt to build against a static ICU.
This is the hack (abusing the ICU bundled by Chromium bundled by
QtWebEngine, which is part of the monolithic Qt tarball) I used a while ago
with Qt 5.6.3 (to build portable Qt Jambi 5 binaries):
  cd qtwebengine/src/3rdparty/chromium/third_party/icu/source/
  ICU_DIR=`pwd`
  sed -i -e 's! test/Makefile test/compat/Makefile test/testdata/Makefile test/testdata/pkgdataMakefile test/hdrtst/Makefile test/intltest/Makefile 
test/cintltst/Makefile test/iotest/Makefile test/letest/Makefile test/perf/Makefile test/perf/collationperf/Makefile test/perf/collperf/Makefile 
test/perf/collperf2/Makefile test/perf/dicttrieperf/Makefile test/perf/ubrkperf/Makefile test/perf/charperf/Makefile test/perf/convperf/Makefile 
test/perf/normperf/Makefile test/perf/DateFmtPerf/Makefile test/perf/howExpensiveIs/Makefile test/perf/strsrchperf/Makefile test/perf/unisetperf/Makefile 
test/perf/usetperf/Makefile test/perf/ustrperf/Makefile test/perf/utfperf/Makefile test/perf/utrie2perf/Makefile test/perf/leperf/Makefile!!g' configure
  rm -f data/translit/trnslocal.mk
  CC=gcc CXX=g++ CFLAGS="-O2 -fPIC -fno-strict-aliasing -fvisibility=hidden" CXXFLAGS="-O2 -fPIC -fno-strict-aliasing -fvisibility=hidden -fvisibility-
inlines-hidden" ./configure --disable-shared --enable-static --disable-layout --disable-tests || exit 1
  make -j8 VERBOSE=1 || exit 1
  cd ../../../../../../..
  sed -i -e "s#LIBS_PRIVATE += -licui18n -licuuc -licudata#INCLUDEPATH += $ICU_DIR/common $ICU_DIR/i18n $ICU_DIR/io $ICU_DIR/extra/uconv\n    LIBS_PRIVATE 
+= -Wl,--gc-sections -L$ICU_DIR/lib -Wl,-Bstatic -licui18n -licuuc -licudata -Wl,-Bdynamic#g" qtbase/src/3rdparty/icu_dependency.pri

This probably needs changes for current Qt 5.12, but that's the idea at
least.

        Kevin Kofler




More information about the Development mailing list