@@ -24,10 +24,12 @@ libcamera_base_internal_sources = files([
'thread.cpp',
'timer.cpp',
'utils.cpp',
+ 'yaml_parser.cpp',
])
libdw = dependency('libdw', required : false)
libunwind = dependency('libunwind', required : false)
+libyaml = dependency('yaml-0.1', required : false)
if cc.has_header_symbol('execinfo.h', 'backtrace')
config_h.set('HAVE_BACKTRACE', 1)
@@ -41,11 +43,23 @@ if libunwind.found()
config_h.set('HAVE_UNWIND', 1)
endif
+# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.
+if not libyaml.found()
+ cmake = import('cmake')
+
+ libyaml_vars = cmake.subproject_options()
+ libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})
+ libyaml_vars.append_compile_args('c', '-Wno-unused-value')
+ libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)
+ libyaml = libyaml_wrap.dependency('yaml')
+endif
+
libcamera_base_deps = [
libatomic,
libdw,
libthreads,
libunwind,
+ libyaml,
]
# Internal components must use the libcamera_base_private dependency to enable
similarity index 98%
rename from src/libcamera/yaml_parser.cpp
rename to src/libcamera/base/yaml_parser.cpp
@@ -149,13 +149,12 @@ YamlObject::Getter<bool>::get(const YamlObject &obj) const
template<typename T>
struct YamlObject::Getter<T, std::enable_if_t<
- std::is_same_v<int8_t, T> ||
- std::is_same_v<uint8_t, T> ||
- std::is_same_v<int16_t, T> ||
- std::is_same_v<uint16_t, T> ||
- std::is_same_v<int32_t, T> ||
- std::is_same_v<uint32_t, T>>>
-{
+ std::is_same_v<int8_t, T> ||
+ std::is_same_v<uint8_t, T> ||
+ std::is_same_v<int16_t, T> ||
+ std::is_same_v<uint16_t, T> ||
+ std::is_same_v<int32_t, T> ||
+ std::is_same_v<uint32_t, T>>> {
std::optional<T> get(const YamlObject &obj) const
{
if (obj.type_ != Type::Value)
@@ -55,7 +55,6 @@ libcamera_internal_sources = files([
'v4l2_subdevice.cpp',
'v4l2_videodevice.cpp',
'vector.cpp',
- 'yaml_parser.cpp',
])
includes = [
@@ -83,7 +82,6 @@ if not cc.has_function('dlopen')
libdl = cc.find_library('dl')
endif
libudev = dependency('libudev', required : get_option('udev'))
-libyaml = dependency('yaml-0.1', required : false)
# Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.
libcrypto = dependency('gnutls', required : false)
@@ -119,17 +117,6 @@ if libudev.found()
])
endif
-# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.
-if not libyaml.found()
- cmake = import('cmake')
-
- libyaml_vars = cmake.subproject_options()
- libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})
- libyaml_vars.append_compile_args('c', '-Wno-unused-value')
- libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)
- libyaml = libyaml_wrap.dependency('yaml')
-endif
-
control_sources = []
controls_mode_files = {
@@ -190,7 +177,6 @@ libcamera_deps += [
libdl,
liblttng,
libudev,
- libyaml,
]
# We add '/' to the build_rpath as a 'safe' path to act as a boolean flag.