things to try:
-
"software insulation techniques" : libraries with :
- C-style procedural interfaces
- pure abstract interfaces
- pointer to implementations
- dependency injection
-
segregation between headers to be exported by the library and internal ones
- can we restrict the symbols exported by a library
-
bazel : LINUX + MAC OS X
-
gradle: LINUX + MAC OS X + WINDOWS
-
cmake