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

libxpm: add v3.5.17 #22197

Merged
merged 6 commits into from
Jul 15, 2024
Merged

libxpm: add v3.5.17 #22197

merged 6 commits into from
Jul 15, 2024

Conversation

valgur
Copy link
Contributor

@valgur valgur commented Jan 7, 2024

Also:

  • Drop the custom .def file for Windows DLLs. It's not clear how it was generated and WINDOWS_EXPORT_ALL_SYMBOLS should be ok for such a small library.
  • Added three source files that were missing for some reason and caused the build to fail for me.
  • Add a comment to clarify why the *P.c cannot be used on Windows.
  • Explicitly disable the optional --enable-stat-zfile feature that requires gzip to be present to automatically decompress .xpm.gz files. Could be added later as an option.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ✔️

All green in build 7 (63aaa84f22c7e9048e16353c479a7e8b8df16983):

  • libxpm/3.5.17:
    All packages built successfully! (All logs)

  • libxpm/3.5.13:
    All packages built successfully! (All logs)


Conan v2 pipeline ✔️

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

All green in build 7 (63aaa84f22c7e9048e16353c479a7e8b8df16983):

  • libxpm/3.5.17:
    All packages built successfully! (All logs)

  • libxpm/3.5.13:
    All packages built successfully! (All logs)

src/RdFToP.c
src/WrFFrP.c
)
target_include_directories(Xpm PRIVATE "${X11_INCLUDE_DIR}")
target_link_libraries(Xpm PRIVATE "${X11_LIBRARY}")
endif()

if(WIN32)
set_target_properties(Xpm PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know the usage of WINDOWS_EXPORT_ALL_SYMBOLS is extended across several recipes, however, in recent dicussions we agreed to not exposing symbols if the library does not support it natively. So, in this case, I think we can just drop it and set shared as not supported for this recipe. Thanks 🙏

Copy link
Contributor Author

@valgur valgur Apr 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is equivalent to what the Autotools build system in the project would do under Windows. I understand the concern, but I don't think it is justified for a simple C library. I don't like disabling configurations unnecessarily as it will disable quite a few configurations downstream in other packages on CCI.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The non-CMake build system in the project uses libtool to handle shared libs. From libtool docs:

With Microsoft tools, Libtool digs through the object files that make up the library, looking for non-static symbols to automatically export. I.e., Libtool with Microsoft tools tries to mimic the auto-export feature of contemporary GNU tools. It should be noted that the GNU auto-export feature is turned off when an explicit __declspec(dllexport) is seen. The GNU tools do this to not make more symbols visible for projects that have already taken the trouble to decorate symbols. There is no similar way to limit what symbols are visible in the code when Libtool is using Microsoft tools. In order to limit symbol visibility in that case you need to use one of the options -export-symbols or -export-symbols-regex.

In other words, it runs dumpbin on the .o files and creates a .def file from the listed symbols. This is pretty much exactly what WINDOWS_EXPORT_ALL_SYMBOLS accomplishes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@valgur valgur requested a review from danimtb May 8, 2024 10:08
Copy link
Member

@AbrilRBS AbrilRBS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving this one from the discussion in the review and it being a C library

@AbrilRBS AbrilRBS self-assigned this Jul 15, 2024
@conan-center-bot conan-center-bot merged commit 5194f48 into conan-io:master Jul 15, 2024
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants