5858 run : |
5959 CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --prefix=/opt/firebird
6060 make -j4
61+ make tests -j4
62+ make run_tests
6163 make dist
6264 tar xzvf gen/Firebird-[0-9]*.tar.gz
6365 (cd Firebird-[0-9]*; sudo ./install.sh -silent)
@@ -82,54 +84,114 @@ jobs:
8284 run : |
8385 ./autogen.sh --enable-binreloc-threads --with-builtin-tommath --with-builtin-tomcrypt --prefix=/opt/firebird
8486 make -j4
87+ make tests -j4
88+ make run_tests
8589 make dist
8690 tar xzvf gen/Firebird-[0-9]*.tar.gz
8791
88- - name : Prepare (MacOS)
92+ - name : Prepare - Install tools (MacOS)
8993 if : matrix.os == 'macOS-latest'
9094 run : |
91- brew install automake libtool
92- export LIBTOOLIZE=glibtoolize
93- export LIBTOOL=glibtool
95+ brew install automake libtool ninja
96+
97+ - name : Cache - libc++ install (MacOS)
98+ id : cache-libcxx-install-macos
99+ if : matrix.os == 'macOS-latest'
100+ uses : actions/cache@v3
101+ with :
102+ key : ${{ runner.os }}-libcxx-install-13.0.1
103+ path : |
104+ extern/libcxx-macos-install
105+
106+ - name : Download libc++ sources (MacOS)
107+ if : matrix.os == 'macOS-latest' && steps.cache-libcxx-install-macos.outputs.cache-hit != 'true'
108+ run : |
109+ mkdir extern/libcxx-macos
110+ pushd extern/libcxx-macos
111+ curl -OL https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/llvm-project-13.0.1.src.tar.xz
112+ tar xJf llvm-project-13.0.1.src.tar.xz
113+ popd
114+
115+ - name : Build libc++ (MacOS)
116+ if : matrix.os == 'macOS-latest' && steps.cache-libcxx-install-macos.outputs.cache-hit != 'true'
117+ run : |
118+ LIBCXX_BUILD_PATH=`pwd`/extern/libcxx-macos-build
119+ LIBCXX_INSTALL_PATH=`pwd`/extern/libcxx-macos-install
120+ mkdir $LIBCXX_BUILD_PATH
121+ pushd extern/libcxx-macos/llvm-project-13.0.1.src
122+ export MACOSX_DEPLOYMENT_TARGET=10.9
123+ cmake -G Ninja -S llvm -B $LIBCXX_BUILD_PATH \
124+ -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" \
125+ -DCMAKE_INSTALL_PREFIX=$LIBCXX_INSTALL_PATH \
126+ -DCMAKE_BUILD_TYPE=Release \
127+ -DLIBCXX_ENABLE_SHARED=false \
128+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=true
129+ ninja -C $LIBCXX_BUILD_PATH cxx cxxabi
130+ ninja -C $LIBCXX_BUILD_PATH install-cxx install-cxxabi
131+ popd
132+
133+ - name : Cache - libicu install (MacOS)
134+ id : cache-libicu-install-macos
135+ if : matrix.os == 'macOS-latest'
136+ uses : actions/cache@v3
137+ with :
138+ key : ${{ runner.os }}-libicu-install-63.2
139+ path : |
140+ extern/libicu-macos-install
94141
95- mkdir extern/icu-macos
96- pushd extern/icu-macos
142+ - name : Download and patch libicu sources (MacOS)
143+ if : matrix.os == 'macOS-latest' && steps.cache-libicu-install-macos.outputs.cache-hit != 'true'
144+ run : |
145+ mkdir extern/libicu-macos
146+ pushd extern/libicu-macos
97147 curl -OL https://github.com/unicode-org/icu/releases/download/release-63-2/icu4c-63_2-src.tgz
98148 curl -OL https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
99149 tar xzf icu4c-63_2-src.tgz
100- ICU_INSTALL_PATH=`pwd`/install
101150 cd icu/source
102151 patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
103- ./runConfigureICU MacOSX --prefix=$ICU_INSTALL_PATH
152+ popd
153+
154+ - name : Build libicu (MacOS)
155+ if : matrix.os == 'macOS-latest' && steps.cache-libicu-install-macos.outputs.cache-hit != 'true'
156+ run : |
157+ export LIBTOOLIZE=glibtoolize
158+ export LIBTOOL=glibtool
159+
160+ LIBICU_INSTALL_PATH=`pwd`/extern/libicu-macos-install
161+ pushd extern/libicu-macos/icu/source
162+ ./runConfigureICU MacOSX --prefix=$LIBICU_INSTALL_PATH
104163 make -j4
105164 make install
106- install_name_tool -id @rpath/lib/libicuuc.dylib $ICU_INSTALL_PATH /lib/libicuuc.dylib
107- install_name_tool -id @rpath/lib/libicui18n.dylib $ICU_INSTALL_PATH /lib/libicui18n.dylib
108- install_name_tool -id @rpath/lib/libicudata.dylib $ICU_INSTALL_PATH /lib/libicudata.dylib
109- install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH /lib/libicuuc.63.dylib
110- install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $ICU_INSTALL_PATH /lib/libicui18n.63.dylib
111- install_name_tool -change libicuuc.63.dylib @loader_path/libicuuc.63.dylib $ICU_INSTALL_PATH /lib/libicui18n.63.dylib
165+ install_name_tool -id @rpath/lib/libicuuc.dylib $LIBICU_INSTALL_PATH /lib/libicuuc.dylib
166+ install_name_tool -id @rpath/lib/libicui18n.dylib $LIBICU_INSTALL_PATH /lib/libicui18n.dylib
167+ install_name_tool -id @rpath/lib/libicudata.dylib $LIBICU_INSTALL_PATH /lib/libicudata.dylib
168+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $LIBICU_INSTALL_PATH /lib/libicuuc.63.dylib
169+ install_name_tool -change libicudata.63.dylib @loader_path/libicudata.63.dylib $LIBICU_INSTALL_PATH /lib/libicui18n.63.dylib
170+ install_name_tool -change libicuuc.63.dylib @loader_path/libicuuc.63.dylib $LIBICU_INSTALL_PATH /lib/libicui18n.63.dylib
112171 popd
113- mkdir -p gen/Release/firebird/lib
114- mkdir -p gen/Debug/firebird/lib
115- cp -R $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Release/firebird/lib/
116- cp -R $ICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Debug/firebird/lib/
117172
118173 - name : Build (MacOS)
119174 if : matrix.os == 'macOS-latest'
120175 run : |
121176 export LIBTOOLIZE=glibtoolize
122177 export LIBTOOL=glibtool
123178
124- ICU_INSTALL_PATH=`pwd`/extern/icu-macos/install
179+ LIBCXX_INSTALL_PATH=`pwd`/extern/libcxx-macos-install
180+ LIBICU_INSTALL_PATH=`pwd`/extern/libicu-macos-install
181+
182+ mkdir -p gen/Release/firebird/lib
183+ cp -R $LIBICU_INSTALL_PATH/lib/libicu{data,i18n,uc}.*dylib gen/Release/firebird/lib/
125184
126- export C_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$C_INCLUDE_PATH"
127- export CPLUS_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$CPLUS_INCLUDE_PATH"
185+ export C_INCLUDE_PATH="$LIBICU_INSTALL_PATH/include:`xcrun --show-sdk-path`/usr/include"
186+ export CPLUS_INCLUDE_PATH="$LIBCXX_INSTALL_PATH/include/c++/v1:$LIBICU_INSTALL_PATH/include:`xcrun --show-sdk-path`/usr/include"
187+ export LIBRARY_PATH="$LIBCXX_INSTALL_PATH/lib:$LIBICU_INSTALL_PATH/lib:$LIBRARY_PATH"
128188
129- LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
189+ ./autogen.sh --with-builtin-tommath --with-builtin-tomcrypt
130190 make -j4
191+ make tests -j4
192+ make run_tests
131193
132- (cd gen; make -B -f make.platform.postfix ICU_LOC="$ICU_INSTALL_PATH /lib/")
194+ (cd gen; make -B -f make.platform.postfix ICU_LOC="$LIBICU_INSTALL_PATH /lib/")
133195 (cd gen; make -B -f Makefile.install)
134196
135197 # Rename directory to make sure the build is relocatable.
@@ -166,7 +228,8 @@ jobs:
166228 if "%PLATFORM%" == "x86" set FB_OUTPUT_SUFFIX=win32
167229 call "%VS_SCRIPT%" -arch=%FB_VS_ARCH%
168230 cd builds\win32
169- run_all.bat JUSTBUILD
231+ call run_all.bat JUSTBUILD
232+ call run_tests.bat
170233
171234 - name : Build (Windows, Docker)
172235 if : startsWith(matrix.os, 'windows-') && matrix.docker
0 commit comments