Camera class should use pimpl idiom to firewall the camera SDK from the rest of LImA and downstream libraries
In other words, the Camera.h
header should not include the SDK headers. The include directory of the SDK would then not be transitive anymore:
target_include_directories(mycamera PRIVATE ${SDK_INCLUDE_DIRS})
and same thing for the definitions:
target_compile_definitions(mycamera PRIVATE ${SDK_DEFINITIONS})
More information and a possible implementation on CppReference.