mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 06:11:16 +00:00

The item tree is intended to be initialized with pointers to the item vtables, which are implemented using data relocation records that resolve to the symbols exported by the sixtyfps_cpp shared library. On windows, according to https://docs.microsoft.com/en-us/cpp/c-language/rules-and-limitations-for-dllimport-dllexport?view=msvc-160 such data relocations are not supported, so this patch implements the fallback through getter functions.
30 lines
No EOL
920 B
C++
30 lines
No EOL
920 B
C++
/* LICENSE BEGIN
|
|
This file is part of the SixtyFPS Project -- https://sixtyfps.io
|
|
Copyright (c) 2020 Olivier Goffart <olivier.goffart@sixtyfps.io>
|
|
Copyright (c) 2020 Simon Hausmann <simon.hausmann@sixtyfps.io>
|
|
|
|
SPDX-License-Identifier: GPL-3.0-only
|
|
This file is also available under commercial licensing terms.
|
|
Please contact info@sixtyfps.io for more information.
|
|
LICENSE END */
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
#if UINTPTR_MAX == 0xFFFFFFFF
|
|
# define SIXTYFPS_TARGET_32
|
|
#elif UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFu
|
|
# define SIXTYFPS_TARGET_64
|
|
#endif
|
|
|
|
#if defined(_MSC_VER)
|
|
# define SIXTYFPS_DLL_IMPORT __declspec(dllimport)
|
|
#elif defined(__GNUC__)
|
|
# if defined(_WIN32) || defined(_WIN64)
|
|
# define SIXTYFPS_DLL_IMPORT __declspec(dllimport)
|
|
# else
|
|
# define SIXTYFPS_DLL_IMPORT __attribute__((visibility("default")))
|
|
# endif
|
|
#else
|
|
# define SIXTYFPS_DLL_IMPORT
|
|
#endif |