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

Merge pull request #1 from azure-sdk/master #15

Conversation

meslubi2021
Copy link

develop

meslubi2021 and others added 18 commits July 22, 2024 11:52
Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
)

By default, gdk-pixbuf has no support of SVG images. When it's built (outside of vcpkg) dynamically, it supports plugins, that extend the list of supported image formats.
Hovewer, when built statically, there is no way to load dynamic plugins.
Looks like SVG is widely used on Linux OSs with KDE window manager (at least I see this on Kubuntu 22.04).

In this patch we try to force gdk-pixbuf to use libsrvg when the latter is built statically with the resulting application.
We can't add support of librsvg directly, because it required gdk-pixbuf to be built first, thus making a circular dependency.
In order to overcome this, we are using weak symbols during linking.

To make everything work, the user should do the next:
1. In the vcpkg.json mention both librsvg and gdk-pixbuf in the dependencies section:
```json
"dependencies": [
    "librsvg",
    {
        "name": "gdk-pixbuf",
        "features": ["jpeg", "png", "svg", "tiff"],
        "default-features": false
    }
]
```
2. Add the next lines to the CMakeLists.txt of the application:
```cmake
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBRSVG_LINK_PUBLIC librsvg-2.0 IMPORTED_TARGET REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LIBRSVG_LINK_PUBLIC)
```
3. In the main.cpp (or whatever the main file is) add the next lines:
```cpp
extern "C" void _gdk_pixbuf__svg_fill_info (void *module);
extern "C" void _gdk_pixbuf__svg_fill_vtable (void *module);
extern "C" unsigned int rsvg_error_quark (void);
extern "C" void rsvg_handle_pixbuf (void *handle);

typedef void (*GdkPixbufFillInfo) (void *module);
typedef void (*GdkPixbufFillVtable) (void *module);
typedef unsigned int (*RsvgErrorQuark) (void);
typedef void (*RsvgHandlePixbuf) (void *handle);

int main (void) {
    GdkPixbufFillInfo fill_info = _gdk_pixbuf__svg_fill_info;
    GdkPixbufFillVtable fill_vtable = _gdk_pixbuf__svg_fill_vtable;
    RsvgErrorQuark error_quark = rsvg_error_quark;
    RsvgHandlePixbuf handle_pixbuf = rsvg_handle_pixbuf;
    return 0;
}
```

This fixes microsoft#38012.

Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
* fix librsvg

Signed-off-by: Vitalii Koshura <[email protected]>

* add missing patch file

Signed-off-by: Vitalii Koshura <[email protected]>

* add svg option to gdk-pixbuf

Signed-off-by: Vitalii Koshura <[email protected]>

* fix svg option

Signed-off-by: Vitalii Koshura <[email protected]>

* add forward declaration of the missing functions

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* don't build tools when not required

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* try weak extern symbols

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* add libpixbufloader-svg to the pc file

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

---------

Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
* fix librsvg

Signed-off-by: Vitalii Koshura <[email protected]>

* add missing patch file

Signed-off-by: Vitalii Koshura <[email protected]>

* add svg option to gdk-pixbuf

Signed-off-by: Vitalii Koshura <[email protected]>

* fix svg option

Signed-off-by: Vitalii Koshura <[email protected]>

* add forward declaration of the missing functions

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* don't build tools when not required

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

* try weak extern symbols

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* test

Signed-off-by: Vitalii Koshura <[email protected]>

* add libpixbufloader-svg to the pc file

Signed-off-by: Vitalii Koshura <[email protected]>

* fix

Signed-off-by: Vitalii Koshura <[email protected]>

---------

Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
Signed-off-by: Vitalii Koshura <[email protected]>
Co-authored-by: Vitalii Koshura <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
* Basic port

* building stub (not validated)

---------

Co-authored-by: Francis Lemaire <[email protected]>
* Enable building of LLVM. Build arabica.

* Added nasm and yasm to the path. Use CMake version 3.17.2 instead of version 3.14.0.

* Disable installation of llvm since it is broken again.

* Add share\clang to the path.

* Enable llvm.

* Added directories to path. Use Python 3.8.

* Modified the imgui entry in the packageList.

* Added InstallPackagesForLinux.py.

* boost-regex with icu feature is only supported on windows

* Do not build 'boost-locale[icu]'.

* Do not build atkmm or gtkmm. They are not supported in Linux.

* Do not build atk or gtk.

* Do not build chakracore.

* Do not build cppunit.

* Remove packages from the package list that are not supported in Linux.

* Disable installation of llvm because it is currently broken.

* Do not install dlib.

* Use official release of arabica from jezhiggins.

* Fix error with arabica on Windows by defining the following preprocessor symbols: -DCMAKE_CXX_FLAGS=-DARABICA_NO_CODECVT_SPECIALISATIONS=1 -DARABICA_USE_WINSOCK=1 -DARABICA_WINDOWS=1.

* Can't build BoringSSL if OpenSSL is installed.

* Comment out portaudio line until bug is fixed.

* Updates to path.

* Changes to the packageList: 1) Added aixlog, audiofile, berkeleydb, cpu-features, cpu-features[tools], ctbignum, imgui[glfw-binding], and several more SDL2 components. 2) Build SDL2 at the same time as imgui.

* 1) Added the following items to the packageList: 7zip, akali, chromium-base, directxsdk, directxtk12, dx, fruit, function2, glew, hunspell, hunspell[tools], libevent, libevent[thread], libyaml, mimalloc, mimalloc[secure], mpfr, mygui, mygui[opengl], nt-wrapper, numcpp, p-ranav-csv2, phnt, qt5[doc], qt5[speech], qt5-winextras, safeint, tgui, tgui[tool], utf8h, utfcpp, and v8. 2) Added the ability to mark a package as x64 only. 3) Added directories to the path.

* Disable installation of chromium-base until they fix the double_conversion.lib bug.

* Set DICPATH environment variable.

* Added Emacs to path.

* Temporarily disable install of qt5 because of issue microsoft#13566 {[qt5-base:x64-windows] build failure}.

* Minor updates to InstallPackagesForWindows.py and update-env.bat.

* Updates to path.

* Updated InstallPackagesForWindows.py and update-env.bat.

* Updated update-env.bat.

* Minor updates.

* Added vcpkg-env.el.

* Updated the path.

* Updated PATH.

* Various small improvements.

* WIP. Began the process of synchronizing InstallPackagesForLinux.py with InstallPackagesForWindows.py.

* Minor updates.

* Updated packageList.

* Updated vcpkg-env.el.

* Updates to InstallPackagesForWindows.py.

* Updated the package list.

* Updated the path.

* Updates to the install packages scripts.

* Numerous improvements.

* Updated path.

* Updated package list.

* Added uberswitch.

* Install uberswitch.

* Update package list.

* Update packageList. Set JDK_HOME, JDK_HOME_X64, and JDK_HOME_X86. Update path.

* Set env for .NET.

* Added the bt directory.

* Updated packageList.

* Updated PATH.

* Added InstallPackagesForMSYS2.py.

* Updated JDK variables.

* Updated packageList.

* Updated vcpkg-env.el.

* Updated vcpkg--add-to-path-linux.

* Set PANDOC_EXE.

* Updated packageList.

* Updated path and dotnet version.

* Update DOTNET_VERSION, JDK_HOME, JDK_HOME_X64, and JDK_HOME_X86.

* Updated add-to-path-windows.

* Updated DOTNET_VERSION. Added an option to add MSYS64 directories to the path.

* Added clean.bat.

* Updated clean.bat.

* Updated x64OnlyPackageList and packageList.

* Various updates.

* Various updates.

* Trimmed the packageList so that it only includes packages I use actively. This makes updating VCPKG much less time consuming.

* Updated env.

* Minor updates to the packageList.

* No longer attempt to set DICPATH.

* * Import inspect.
* Updated x64OnlyPackageList and packageList.
* Updated the InstallPackagesWorker function.
* Updated path.

* Update path.

* Updates for Java and Python.

* Updated packageList.

* Updated DOTNET_VERSION, JDK_HOME, and JDK_HOME_X64.

* Updated path.

* Update package list.

* Updated the path.

* Set CMAKE_TOOLCHAIN_FILE. Update HOME.

---------

Co-authored-by: Ben Key <[email protected]>
Co-authored-by: Benilda Key <[email protected]>
* Update Ninja to 1.12.

Fixes microsoft#38494

Resurrects microsoft#38538

Co-authored-by: xb284524239 <[email protected]>

* 1.12.1

Also fix vcpkgTools.xml

---------

Co-authored-by: Billy Robert O'Neal III <[email protected]>
Co-authored-by: xb284524239 <[email protected]>
Signed-off-by: بلال مسلوب <[email protected]>
/*
    Microsoft Visual Studio Community 2017
    Version 15.8.5

    Package: fmt
    Version: 5.2.0

    Error   C2664   'OutputIt fmt::v5::format_to<fmt::v5::wmemory_buffer,wchar_t[8]>(OutputIt,fmt::v5::string_view,const wchar_t (&)[8])': cannot convert argument 2 from 'const wchar_t [27]' to 'fmt::v5::string_view'
*/
if (1) {
    fmt::wmemory_buffer outw;
    format_to(outw, L"For the moment, {} builds.{}", L"nothing", '\0');
    wprintf(L"%s", outw.data());
}

Co-authored-by: Liviu <[email protected]>
Co-authored-by: Robert Schumacher <[email protected]>
* [rapidstring] Add new port

* [rapidstring] Rename package to be unofficial-rapidstring

---------

Co-authored-by: myd7349 <[email protected]>
Co-authored-by: Billy Robert O'Neal III <[email protected]>
Added library for tesselation and drawing concave polygons and polygons with holes

Co-authored-by: Håkan Wiman <[email protected]>
Signed-off-by: Billal Mesloub <[email protected]>
@meslubi2021 meslubi2021 deleted the branch azure-sdk:master January 16, 2025 01:38
@meslubi2021 meslubi2021 deleted the master branch January 16, 2025 01:38
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.

1 participant