Use anonymous namespace instead of static members
Protect AppleInterface for people not using CMake