Skip to content

Update libxml2 to version 2.11.4.#1216

Merged
mahge merged 7 commits intoOpenModelica:masterfrom
mahge:update_libxml2_to_2.11.4
Jul 18, 2023
Merged

Update libxml2 to version 2.11.4.#1216
mahge merged 7 commits intoOpenModelica:masterfrom
mahge:update_libxml2_to_2.11.4

Conversation

@mahge
Copy link
Copy Markdown
Contributor

@mahge mahge commented Jul 14, 2023

  • This version comes with CMake support and many other fixes and improvements.

    • It is taken from https://github.com/GNOME/libxml2
    • The folders: doc, fuzz, m4, result, and test are removed to save space since they are not needed.
    • The required CMake version has been downgraded from 3.18 to 3.15. Ubuntu focal, one of our supported platforms, comes with CMake 3.16 so that is the maximum CMake version we can require right now. The libxml required CMake version was upgraded by GNOME/libxml2@a5bc460 in order to use check_linker_flag CMake utility function. We do not need that so it is removed and the CMake version is downgraded.
  • The CMake support allows OMSimulator to move one step closer to complete CMake based build.

@mahge mahge added CI/Update Submodules Allow a pull request to update submodules CI/MINGW32 labels Jul 14, 2023
@mahge mahge self-assigned this Jul 14, 2023
@mahge mahge force-pushed the update_libxml2_to_2.11.4 branch 2 times, most recently from 18be1f4 to e158344 Compare July 18, 2023 09:59
mahge added 6 commits July 18, 2023 13:04
  - This version comes with CMake support and many other fixes and improvements.

    - It is taken from https://github.com/GNOME/libxml2
    - The folders: `doc`, `fuzz`, `m4`, `result`, and `test` are removed to save space since they are not needed.
    - The required CMake version has been downgraded from 3.18 to 3.15.
      Ubuntu focal, one of our supported platforms, comes with CMake 3.16 so that is the maximum CMake version we can require right now.
      The libxml required CMake version was upgraded by GNOME/libxml2@a5bc460 in order to use `check_linker_flag` CMake utility function. We do not need that so it is removed and the CMake version is downgraded.

  - The CMake support allows OMSimulator to move one step closer to complete CMake based build.
  - We are intersted in building only the static library. No shared version.
    That means there is not going to be any name conflict. So just output
    the library without any posfix (just libxml2.lib instead of libxml2s.lib).

    This saves us from having to updated the expected library name in
    other places.

  - Debug builds still get the 'd' postfix for now. Perhaps this should
    be removed as well.
  - This will tell libxml2 headers not to add dll direction specifiers
    (`__declspec(dllimport)` and `__declspec(dllexport)`)
  - This seems to be what is picked by default by cmake. OMTLMSimulator
    does not need or use CMake right now, however it links to libraries
    built by CMake (within OMSimulator, e.g., libxml2) which get compiled
    with /MD. So set it here as well to avoid link time failures.
  - It is built as a static library now even on Windows with MSVC.
@mahge mahge force-pushed the update_libxml2_to_2.11.4 branch from e158344 to b2af282 Compare July 18, 2023 11:04
@mahge mahge removed the CI/MINGW32 label Jul 18, 2023
@mahge mahge merged commit d89f397 into OpenModelica:master Jul 18, 2023
@mahge mahge deleted the update_libxml2_to_2.11.4 branch July 18, 2023 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/Update Submodules Allow a pull request to update submodules

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant