Create macOS bundle for simplified installation #58

This commit is contained in:
2025-08-07 14:21:33 -05:00
parent 4dcd7bd5ce
commit 3f502eeb64
4 changed files with 38 additions and 5 deletions

View File

@@ -1,3 +1,7 @@
if (PROJECT_MACOS_ICNS_NAME)
set(PROJECT_MACOS_ICNS_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACOS_ICNS_NAME}")
endif()
function(set_common_target_options name)
target_compile_definitions(${name} PUBLIC
${PROJECT_DEFINITIONS}
@@ -31,11 +35,32 @@ function(add_project_executable2 name dependencies libraries headers sources is_
list(APPEND sources ${PROJECT_WINDOWS_VERSION_RC})
endif()
add_executable(${name}
${headers}
${sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
if (PROJECT_IS_DARWIN AND PROJECT_MACOS_ICNS_SOURCE AND "${name}" STREQUAL "${PROJECT_NAME}")
set(PROJECT_MACOS_ICNS_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_MACOS_ICNS_NAME}")
set_source_files_properties(${PROJECT_MACOS_ICNS_SOURCE} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources"
)
add_executable(${name}
MACOSX_BUNDLE
${headers}
${sources}
${PROJECT_MACOS_ICNS_SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
set_target_properties(${name} PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_ICON_FILE "${PROJECT_MACOS_ICNS_NAME}"
RESOURCE "${PROJECT_MACOS_ICNS_SOURCE}"
)
else()
add_executable(${name}
${headers}
${sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/main.cpp
)
endif()
foreach(dependency ${dependencies})
set_common_target_options(${dependency})