-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
Not Needed
-
None
-
C Drivers
-
None
-
None
-
None
-
None
-
None
-
None
The mongoac::shared and mongoac::static CMake targets are defined as INTERFACE libraries. This is straightforward and workable on Linux-like environments, but is unconventional (shared/static libraries should be SHARED/STATIC libraries, not INTERFACE) and is incompatible with Windows (DLL) or MacOS (Apple Framework) environments where multiple library files may need to be specified (e.g. libmongoac.dll + libmongoac0.lib as IMPORTED_LOCATION + IMPORTED_IMPLIB respectively).
We need to also ensure the IMPORTED targets are correctly "relocatable" (i.e. via cmake --install <binary-dir> --prefix <path>) and do not retain absolute paths to install prefixes.
This will likely require non-trivial extension of the CMake package config file definition, as well as a hand-written targets file (CMake-generated targets file is insufficient).
- has to be done after
-
CDRIVER-6445 CMake Integration of Rust Toolchain
-
- Closed
-
- related to
-
CDRIVER-6453 Investigate MacOS dylibs compatibility
-
- Backlog
-
-
CDRIVER-6454 Investigate Windows dll compatibility
-
- Backlog
-