Create macOS bundle for simplified installation #58
This commit is contained in:
@@ -186,6 +186,7 @@ endif()
|
||||
-DPROJECT_IS_MINGW=${PROJECT_IS_MINGW}
|
||||
-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX}
|
||||
-DPROJECT_MAJOR_VERSION=${PROJECT_MAJOR_VERSION}
|
||||
-DPROJECT_MACOS_ICNS_NAME=${PROJECT_MACOS_ICNS_NAME}
|
||||
-DPROJECT_MINOR_VERSION=${PROJECT_MINOR_VERSION}
|
||||
-DPROJECT_NAME=${PROJECT_NAME}
|
||||
-DPROJECT_RELEASE_ITER=${PROJECT_RELEASE_ITER}
|
||||
|
@@ -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})
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECT_NAME="repertory"
|
||||
PROJECT_MACOS_ICNS_NAME="icon.icns"
|
||||
|
||||
PROJECT_COMPANY_NAME="https://git.fifthgrid.com/blockstorage"
|
||||
PROJECT_URL="${PROJECT_COMPANY_NAME}/repertory"
|
||||
|
@@ -56,6 +56,7 @@ PROJECT_MINGW64_COPY_DEPENDENCIES=()
|
||||
PROJECT_MSYS2_PACKAGE_LIST=()
|
||||
PROJECT_REQUIRE_ALPINE=OFF
|
||||
PROJECT_STATIC_LINK=OFF
|
||||
PROJECT_MACOS_ICNS_NAME=""
|
||||
|
||||
if [ "$(uname -s)" == "Darwin" ]; then
|
||||
PROJECT_IS_DARWIN=1
|
||||
@@ -271,6 +272,7 @@ PROJECT_CMAKE_OPTS="-DPROJECT_IS_ARM64=${PROJECT_IS_ARM64} ${PROJECT_CMAKE_OPTS}
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_IS_DARWIN=${PROJECT_IS_DARWIN} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_IS_MINGW=${PROJECT_IS_MINGW} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_MACOS_ICNS_NAME=${PROJECT_MACOS_ICNS_NAME} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_MAJOR_VERSION=${PROJECT_MAJOR_VERSION} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_MINOR_VERSION=${PROJECT_MINOR_VERSION} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_NAME=${PROJECT_NAME} ${PROJECT_CMAKE_OPTS}"
|
||||
@@ -349,6 +351,7 @@ export PROJECT_IS_DARWIN
|
||||
export PROJECT_IS_MINGW
|
||||
export PROJECT_IS_MINGW_UNIX
|
||||
export PROJECT_LINK_TYPE
|
||||
export PROJECT_MACOS_ICNS_NAME
|
||||
export PROJECT_MAJOR_VERSION
|
||||
export PROJECT_MINGW64_COPY_DEPENDENCIES
|
||||
export PROJECT_MINGW64_DOCKER_BUILD_ARGS
|
||||
@@ -406,6 +409,9 @@ echo " Link type: ${PROJECT_LINK_TYPE}"
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
|
||||
echo " Long path names: ${PROJECT_ENABLE_WIN32_LONG_PATH_NAMES}"
|
||||
fi
|
||||
if [ "${PROJECT_IS_DARWIN}" == "1" ]; then
|
||||
echo " macOS icns name: ${PROJECT_MACOS_ICNS_NAME}"
|
||||
fi
|
||||
echo " Meson toolchain file: ${PROJECT_TOOLCHAIN_FILE_MESON}"
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
echo " MinGW docker build args: ${PROJECT_MINGW64_DOCKER_BUILD_ARGS}"
|
||||
|
Reference in New Issue
Block a user