summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2026-02-23 23:54:33 +0100
committerPřemysl Eric Janouch <p@janouch.name>2026-05-25 21:12:49 +0200
commit1a0f61f6d8e5796cc19c279209871dc595bc9182 (patch)
treed99e16f0e0e36db37a18d31d76b5c2d3fd6eb015 /CMakeLists.txt
parent6aa822fe34510780d9dffbee8e847fc951d9096c (diff)
downloadnncmpp-1a0f61f6d8e5796cc19c279209871dc595bc9182.tar.gz
nncmpp-1a0f61f6d8e5796cc19c279209871dc595bc9182.tar.xz
nncmpp-1a0f61f6d8e5796cc19c279209871dc595bc9182.zip
Add an AppKit user interface
When enabled, the build will create an application bundle.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt21
1 files changed, 21 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 93df5e8..d070f6e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,6 +77,15 @@ if (WITH_X11)
list (APPEND extra_libraries ${x11_LIBRARIES})
endif ()
+add_option (WITH_APPKIT "Build as a bundle with AppKit support" "${APPLE}")
+if (WITH_APPKIT)
+ enable_language (OBJC)
+ set (CMAKE_OBJC_FLAGS
+ "${CMAKE_OBJC_FLAGS} -std=gnu99 -Wall -Wextra -Wno-unused-function")
+ list (APPEND extra_libraries
+ "-framework AppKit" "-framework CoreFoundation")
+endif ()
+
include_directories (${Unistring_INCLUDE_DIRS}
${Ncursesw_INCLUDE_DIRS} ${Termo_INCLUDE_DIRS} ${curl_INCLUDE_DIRS}
${fftw_INCLUDE_DIRS} ${libpulse_INCLUDE_DIRS} ${x11_INCLUDE_DIRS})
@@ -120,6 +129,18 @@ add_custom_command (OUTPUT ${actions}
# Build the main executable and link it
add_executable (${PROJECT_NAME} ${PROJECT_NAME}.c ${actions})
+if (WITH_APPKIT)
+ set_source_files_properties (${PROJECT_NAME}.c PROPERTIES LANGUAGE OBJC)
+ set_target_properties (${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE)
+
+ set (MACOSX_BUNDLE_GUI_IDENTIFIER name.janouch.${PROJECT_NAME})
+ set (MACOSX_BUNDLE_ICON_FILE ${PROJECT_NAME}.icns)
+
+ include (IconUtils)
+ icon_to_icns (${PROJECT_SOURCE_DIR}/${PROJECT_NAME}.svg
+ "${MACOSX_BUNDLE_ICON_FILE}" icon)
+ target_sources (${PROJECT_NAME} PRIVATE ${icon})
+endif ()
target_link_libraries (${PROJECT_NAME} ${Unistring_LIBRARIES}
${Ncursesw_LIBRARIES} ${Termo_LIBRARIES} ${curl_LIBRARIES}
${extra_libraries})