Files
RedBear-OS/local/recipes/libs/lcms2/source/meson.build
T
vasilito 1a9d77761e fix(qtdeclarative): properly generate qtquick-config.h features
The qtquick-config.h file was being generated empty by the cmake
build, causing 'division by zero in #if' errors in downstream
consumers (SDDM, KWin) because QT_CONFIG(quick_shadereffect) and
QT_CONFIG(quick_draganddrop) were undefined.

Two fixes:
1. Explicitly enable QT_FEATURE_quick_shadereffect and
   QT_FEATURE_quick_draganddrop in the cmake configuration.
2. Add a safety net that regenerates qtquick-config.h with the
   required feature definitions if cmake produces an empty file.
2026-06-21 15:12:40 +03:00

128 lines
2.6 KiB
Meson
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
project(
'Little-CMS',
'c',
version: '2.19',
meson_version: '>=0.52.0',
# default_options: ['c_std=c99']
)
version_components = meson.project_version().split('.')
library_version = '@0@.0.@1@'.format(
version_components.get(0, 0),
version_components.get(1, 0),
)
version_cfg = configuration_data()
version_cfg.set('LCMS2_VERSION_MAJOR', version_components.get(0, 0))
version_cfg.set('LCMS2_VERSION_MINOR', version_components.get(1, 0))
version_cfg.set('LCMS2_VERSION_MICRO', version_components.get(2, 0))
version_cfg.set_quoted('LCMS2_VERSION', meson.project_version())
cc = meson.get_compiler('c')
is_visual_studio = cc.get_argument_syntax() == 'msvc'
cargs = []
if not is_visual_studio and cc.has_function_attribute('visibility:hidden')
cargs += '-DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1'
endif
if host_machine.endian() == 'big'
cargs += '-DWORDS_BIGENDIAN=1'
endif
# Check for threadsafe variants of gmtime
# MinGW needs _POSIX_C_SOURCE or _POSIX_THREAD_SAFE_FUNCTIONS defined
# to make gmtime_r and pthread_time.h available
if host_machine.system() == 'windows' and not is_visual_studio
cargs += ['-D_POSIX_C_SOURCE=199503L']
endif
if cc.has_header_symbol(
'time.h',
'gmtime_r',
args: cargs,
)
cargs += '-DHAVE_GMTIME_R=1'
elif cc.has_header_symbol('time.h', 'gmtime_s')
if cc.links(
'''
#include <time.h>
int main() {
time_t t;
struct tm m;
gmtime_s(&m, &t);
return 0;
}
''',
name: 'gmtime_s can be used',
)
cargs += '-DHAVE_GMTIME_S=1'
endif
endif
jpeg_dep = dependency('libjpeg', required: get_option('jpeg'))
tiff_dep = dependency('libtiff-4', required: get_option('tiff'))
if (
not cc.compiles(
'''
#include <emmintrin.h>
int main() { __m128i n = _mm_set1_epi8(42); }
''',
name: 'supports SSE2 intrinsics',
)
)
cargs += '-DCMS_DONT_USE_SSE2=1'
endif
if is_visual_studio
m_dep = []
threads_dep = []
deps = []
else
m_dep = cc.find_library('m', required: false)
threads_dep = dependency('threads')
if cc.has_function('pthread_mutex_lock', dependencies: threads_dep)
cargs += '-DHasTHREADS=1'
else
cargs += '-DHasTHREADS=0'
endif
deps = [m_dep, threads_dep]
endif
if cc.has_header_symbol('time.h', 'timespec_get')
cargs += '-DHAVE_TIMESPEC_GET=1'
endif
win = import('windows')
subdir('include')
subdir('src')
if get_option('tests').enabled()
subdir('testbed')
endif
if get_option('utils')
subdir('utils')
endif
extra_libraries = []
subdir('plugins')
pkg = import('pkgconfig')
pkg.generate(liblcms2_lib,
description: 'LCMS Color Management Library',
libraries: extra_libraries
)