mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-10-23 03:26:59 +09:00
* feat: move amnezia hardcode from sources to cmake * feat: move amnezia hardcode from sources to cmake * refactor: remove prem v1 migration * chore: move more branding * fix: use host-matching architecture for iOS simulator builds x86_64 was hardcoded; Apple Silicon Macs run arm64 simulators and Xcode 26 has no Rosetta simulator destinations, so simulators showed as unsupported. * fix: mark the branded media assets catalog as a bundle resource MACOSX_PACKAGE_LOCATION was set on the upstream Media.xcassets path while target_sources uses CLIENT_IOS_MEDIA_ASSETS_PATH, so a branded catalog was never compiled by actool and the app got a blank icon. * fix: parametrize the Swift app-group identifier used by Log.swift Log.swift hardcoded Amnezia's own app-group instead of the branded one, since Swift -D flags can't carry the string value like the ObjC++ side does. Generate a small Swift constants file instead, same pattern as version.h.in, wired into all four targets that compile Log.swift. * fix: use APPLICATION_NAME instead of hardcoded Amnezia in log line format Every log line printed "Amnezia" regardless of branding; the log file name two lines above this already used APPLICATION_NAME correctly. * fix: restore branding fixes dropped by rebase, rename swiftInterop to swiftBridge * fix: move more branding variables to cmake * feat: move macOS branding from sources to cmake - macos/app/Info.plist.in: app group, camera usage text, UTI ids and descriptions now come from CLIENT_APPLICATION_NAME / BUILD_* variables, mirroring ios/app/Info.plist.in - macos/networkextension/Info.plist.in: bundle names and app group ids are templated; the plist is configured by CMake into the binary dir because Xcode only expands its own $(...) settings - new knobs: CLIENT_MACOS_MEDIA_ASSETS_PATH, CLIENT_MACOS_APP_ICNS_PATH, CLIENT_MACOS_PROVISIONING_PROFILE_SPECIFIER(_DEBUG), CLIENT_MACOS_NE_PROVISIONING_PROFILE_SPECIFIER(_DEBUG) * fix: resolve macOS pf template paths relative to the client source dir CMAKE_SOURCE_DIR points at the wrapper project when the client is built as a subproject, so the pf template lookup failed there. * chore: separate brandings defaults --------- Co-authored-by: vkamn <vk@amnezia.org>
55 lines
1.5 KiB
CMake
55 lines
1.5 KiB
CMake
message("MAC build")
|
|
|
|
find_library(FW_SYSTEMCONFIG SystemConfiguration)
|
|
find_library(FW_SERVICEMGMT ServiceManagement)
|
|
find_library(FW_SECURITY Security)
|
|
find_library(FW_COREWLAN CoreWLAN)
|
|
find_library(FW_NETWORK Network)
|
|
find_library(FW_USER_NOTIFICATIONS UserNotifications)
|
|
find_library(FW_NETWORK_EXTENSION NetworkExtension)
|
|
|
|
set(LIBS ${LIBS}
|
|
${FW_SYSTEMCONFIG}
|
|
${FW_SERVICEMGMT}
|
|
${FW_SECURITY}
|
|
${FW_COREWLAN}
|
|
${FW_NETWORK}
|
|
${FW_USER_NOTIFICATIONS}
|
|
${FW_NETWORK_EXTENSION}
|
|
)
|
|
|
|
set_target_properties(${PROJECT} PROPERTIES
|
|
MACOSX_BUNDLE TRUE
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}.${CMAKE_PROJECT_VERSION_PATCH}"
|
|
MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_PROJECT_VERSION_TWEAK}"
|
|
)
|
|
|
|
set(HEADERS ${HEADERS}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ui/utils/macosUtil.h
|
|
)
|
|
|
|
set(SOURCES ${SOURCES}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ui/utils/macosUtil.mm
|
|
)
|
|
|
|
|
|
|
|
set(ICON_FILE ${CLIENT_MACOS_APP_ICNS_PATH})
|
|
get_filename_component(MACOSX_BUNDLE_ICON_FILE "${CLIENT_MACOS_APP_ICNS_PATH}" NAME)
|
|
set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
set(SOURCES ${SOURCES} ${ICON_FILE})
|
|
|
|
target_compile_options(${PROJECT} PRIVATE
|
|
-DGROUP_ID=\"${BUILD_IOS_GROUP_IDENTIFIER}\"
|
|
-DVPN_NE_BUNDLEID=\"${BUILD_IOS_APP_IDENTIFIER}.network-extension\"
|
|
)
|
|
|
|
# Get SDK path
|
|
execute_process(
|
|
COMMAND sh -c "xcrun --sdk macosx --show-sdk-path"
|
|
OUTPUT_VARIABLE OSX_SDK_PATH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
message("OSX_SDK_PATH is: ${OSX_SDK_PATH}")
|
|
|