diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2026-02-23 23:54:33 +0100 |
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2026-05-25 21:12:49 +0200 |
| commit | 1a0f61f6d8e5796cc19c279209871dc595bc9182 (patch) | |
| tree | d99e16f0e0e36db37a18d31d76b5c2d3fd6eb015 /CMakeLists.txt | |
| parent | 6aa822fe34510780d9dffbee8e847fc951d9096c (diff) | |
| download | nncmpp-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.txt | 21 |
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}) |
