changeset 179:9c4645100fec

osx: clean up includes, we do not need cocoa what we *do* need is the very basics that animia already depends on anyway. these are basically guaranteed to be on any macos system, making it fairly portable now... I haven't tested this :) I don't have a macos machine right now...
author Paper <mrpapersonic@gmail.com>
date Mon, 04 Dec 2023 12:03:36 -0500
parents bc8d2ccff09c
children 5be17d636aee
files CMakeLists.txt src/sys/osx/dark_theme.mm src/sys/osx/filesystem.mm
diffstat 3 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Mon Dec 04 11:51:30 2023 -0500
+++ b/CMakeLists.txt	Mon Dec 04 12:03:36 2023 -0500
@@ -43,8 +43,9 @@
 
 # We need Cocoa for some OS X stuff
 if(APPLE)
-	find_library(COCOA_LIBRARY Cocoa)
-	list(APPEND LIBRARIES ${COCOA_LIBRARY})
+	find_library(FOUNDATION_LIBRARY Foundation)
+	find_library(APPKIT_LIBRARY AppKit)
+	list(APPEND LIBRARIES ${FOUNDATION_LIBRARY} ${APPKIT_LIBRARY})
 endif()
 
 set(SRC_FILES
--- a/src/sys/osx/dark_theme.mm	Mon Dec 04 11:51:30 2023 -0500
+++ b/src/sys/osx/dark_theme.mm	Mon Dec 04 12:03:36 2023 -0500
@@ -1,10 +1,12 @@
 #include "sys/osx/dark_theme.h"
-#import <Cocoa/Cocoa.h>
+
+#import <AppKit/AppKit.h>
 
 namespace osx {
 
 /* I remember clang giving a hissy fit when I tried simplifying this to just
-   a return; does it still do that? */
+ * a return; does it still do that?
+*/
 bool DarkThemeAvailable() {
 	if (@available(macOS 10.14, *))
 		return true;
--- a/src/sys/osx/filesystem.mm	Mon Dec 04 11:51:30 2023 -0500
+++ b/src/sys/osx/filesystem.mm	Mon Dec 04 12:03:36 2023 -0500
@@ -1,11 +1,17 @@
-#include <Cocoa/Cocoa.h>
+#include "sys/osx/filesystem.h"
+
 #include <string>
 
+#import <Foundation/Foundation.h>
+
 namespace osx {
 
 std::string GetApplicationSupportDirectory() {
 	NSArray* strings = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, true);
-	return std::string([[strings objectAtIndex:0] UTF8String]);
+	if (!strings || [strings count] < 1)
+		return ""; // ack
+
+	return [[strings objectAtIndex:0] UTF8String];
 }
 
 } // namespace osx