Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows CI with GitHub actions #894

Merged
merged 8 commits into from
Jun 15, 2024
Merged

Windows CI with GitHub actions #894

merged 8 commits into from
Jun 15, 2024

Commits on Jun 7, 2024

  1. Correctly set LIBZIM_EXPORT_DLL

    `static_linkage` is about how we link with dependency libraries.
    We must set `LIBZIM_EXPORT_DLL` depending of how we build libzim library.
    mgautierfr committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    913abe5 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. Make internal classes LIBZIM_PRIVATE_API.

    While they are internal (and not part of public API), unittest are testing
    them and so we need to link to them.
    mgautierfr committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    c8f2c67 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3588aa8 View commit details
    Browse the repository at this point in the history
  3. Do not use static member (zimMajorVersion) in inlined constructor.

    On Windows, static members are not exported in dll.
    So we must not use them in inlined method/constructor.
    mgautierfr committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    6099dfa View commit details
    Browse the repository at this point in the history
  4. Remove template feature

    mgautierfr committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    b51eb32 View commit details
    Browse the repository at this point in the history
  5. Do not unconditionally include search/xapian features

    On Windows, if we declare a exported class, the implementation of this
    class is expected in the dll.
    
    When compiling without xapian we must not include headers for which we
    don't compile the implementation.
    mgautierfr committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    34415e1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    98573d9 View commit details
    Browse the repository at this point in the history
  7. No werror=true

    MSVC throw a lot of warning because we also must re-export stl symbols
    used in our exported class.
    
    See [1] and [2] (and links inside) for more information.
    
    Especially [3] which seems to say that we should have issue at link time if
    it compatibility issue occurs (and so easily catchable).
    
    So I just remove the `werror=true` for now.
    
    [1] https://stackoverflow.com/questions/16419318/one-way-of-eliminating-c4251-warning-when-using-stl-classes-in-the-dll-interface
    [2] https://stackoverflow.com/questions/2132747/warning-c4251-when-building-a-dll-that-exports-a-class-containing-an-atlcstrin
    [3] https://stackoverflow.com/questions/2132747/warning-c4251-when-building-a-dll-that-exports-a-class-containing-an-atlcstrin#comment66255284_4563701
    mgautierfr committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    0a1d2c3 View commit details
    Browse the repository at this point in the history