diff options
-rw-r--r-- | .github/workflows/coverage.yml | 9 | ||||
-rw-r--r-- | .github/workflows/linux.yml | 4 | ||||
-rw-r--r-- | expat/CMakeLists.txt | 20 | ||||
-rwxr-xr-x | expat/coverage.sh | 20 |
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...' |