summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2021-12-28 16:11:41 +0100
committerGitHub <noreply@github.com>2021-12-28 16:11:41 +0100
commit60bbbe560cb50e6bfbf93ed765aaeb38335487c3 (patch)
tree3dcbd3f5e8db09ff8aefe8b4e545ddf2101ca646
parent58d1f13d313534e593f97cb46da24c18468bd3b5 (diff)
parent5aaa96e1a2d4791fb6da01a75f88ca7b22daf44e (diff)
downloadlibexpat-git-60bbbe560cb50e6bfbf93ed765aaeb38335487c3.tar.gz
Merge pull request #529 from libexpat/actions-cover-m32
GitHub Actions: Cover -m32 + store coverage results as an artifact
-rw-r--r--.github/workflows/coverage.yml9
-rw-r--r--.github/workflows/linux.yml4
-rw-r--r--expat/CMakeLists.txt20
-rwxr-xr-xexpat/coverage.sh20
4 files changed, 50 insertions, 3 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 81bdb400..a8bf591f 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -59,6 +59,8 @@ jobs:
cmake \
docbook2x \
dos2unix \
+ gcc-multilib \
+ g++-multilib \
lcov \
libbsd-dev \
lzip \
@@ -75,3 +77,10 @@ jobs:
TRAVIS_OS_NAME: linux
run: |
exec ./.travis.sh
+
+ - name: Store coverage .info and HTML report
+ uses: actions/upload-artifact@v2.3.1
+ with:
+ name: coverage
+ path: expat/coverage__*/
+ if-no-files-found: error
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 6d02d80e..951ec741 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -69,6 +69,8 @@ jobs:
- MODE: qa-sh
FLAT_ENV: CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov
- MODE: qa-sh
+ FLAT_ENV: CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov CMAKE_ARGS=-D_EXPAT_M32=ON
+ - MODE: qa-sh
FLAT_ENV: CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON"
- MODE: qa-sh
FLAT_ENV: CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON -DEXPAT_CHAR_TYPE=wchar_t"
@@ -93,6 +95,8 @@ jobs:
cmake \
docbook2x \
dos2unix \
+ gcc-multilib \
+ g++-multilib \
lcov \
libbsd-dev \
lzip \
diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt
index 7e5b9590..ab3b8d8c 100644
--- a/expat/CMakeLists.txt
+++ b/expat/CMakeLists.txt
@@ -151,6 +151,9 @@ mark_as_advanced(EXPAT_MIN_SIZE)
if(MSVC OR _EXPAT_HELP)
set(EXPAT_MSVC_STATIC_CRT OFF CACHE BOOL "Use /MT flag (static CRT) when compiling in MSVC")
endif()
+if(NOT _EXPAT_HELP)
+ set(_EXPAT_M32 OFF CACHE BOOL "(Unofficial!) Produce 32bit code with -m32")
+endif()
if(EXPAT_BUILD_TESTS)
# We have to call enable_language() before modifying any CMAKE_CXX_* variables
@@ -322,6 +325,23 @@ if (MSVC)
endif()
endif()
+if(_EXPAT_M32 AND NOT MSVC)
+ foreach(flag_var
+ CMAKE_CXX_FLAGS_${_EXPAT_BUILD_TYPE_UPPER}
+ CMAKE_CXX_FLAGS_DEBUG
+ CMAKE_CXX_FLAGS_RELEASE
+ CMAKE_CXX_FLAGS_MINSIZEREL
+ CMAKE_CXX_FLAGS_RELWITHDEBINFO
+ CMAKE_C_FLAGS_${_EXPAT_BUILD_TYPE_UPPER}
+ CMAKE_C_FLAGS_DEBUG
+ CMAKE_C_FLAGS_RELEASE
+ CMAKE_C_FLAGS_MINSIZEREL
+ CMAKE_C_FLAGS_RELWITHDEBINFO
+ )
+ set(${flag_var} "${${flag_var}} -m32")
+ endforeach()
+endif()
+
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib)
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996)
diff --git a/expat/coverage.sh b/expat/coverage.sh
index c87e326d..49642aec 100755
--- a/expat/coverage.sh
+++ b/expat/coverage.sh
@@ -50,8 +50,14 @@ _get_build_dir() {
fi
local char_part=
- if ${with_unsigned_char}; then
- char_part=__unsigned_char
+ if ${unicode_enabled}; then
+ if ${with_unsigned_char}; then
+ char_part=__ushort
+ else
+ char_part=__wchar_t
+ fi
+ else
+ char_part=__char
fi
local xml_attr_part=
@@ -59,7 +65,12 @@ _get_build_dir() {
xml_attr_part=__attr_info
fi
- echo "build__${version}__unicode_${unicode_enabled}__xml_context_${xml_context}${libbsd_part}${mingw_part}${char_part}${xml_attr_part}"
+ local m32_part=
+ if ${with_m32}; then
+ m32_part=__m32
+ fi
+
+ echo "build__${version}__xml_context_${xml_context}${libbsd_part}${mingw_part}${char_part}${xml_attr_part}${m32_part}"
}
@@ -85,6 +96,7 @@ _call_cmake() {
${with_libbsd} && cmake_args+=( -DEXPAT_WITH_LIBBSD=ON )
${with_mingw} && cmake_args+=( -DCMAKE_TOOLCHAIN_FILE="${abs_source_dir}"/cmake/mingw-toolchain.cmake )
+ ${with_m32} && cmake_args+=( -D_EXPAT_M32=ON )
(
set -x
@@ -276,6 +288,7 @@ _main() {
# All combinations:
with_unsigned_char=false
with_libbsd=false
+ with_m32=false
for with_mingw in true false ; do
for unicode_enabled in true false ; do
if ${unicode_enabled} && ! ${with_mingw} ; then
@@ -293,6 +306,7 @@ _main() {
# Single cases:
with_libbsd=true _build_case
with_unsigned_char=true _build_case
+ with_m32=true _build_case
echo
echo 'Merging coverage files...'