From 578afd7db35243f4d7bf30fb3baee9a27c75edee Mon Sep 17 00:00:00 2001 From: Marco Auer Date: Tue, 24 Mar 2026 13:55:19 +0100 Subject: [PATCH] Fix filepicker on macOS --- cmake/Info.plist.in | 43 +++++++++++++++++++++++++++++-------------- cmake/WED.cmake | 9 +++++++++ src/Obj/XDefs.h | 2 ++ 3 files changed, 40 insertions(+), 14 deletions(-) diff --git a/cmake/Info.plist.in b/cmake/Info.plist.in index 8934a25aa..765e52c78 100644 --- a/cmake/Info.plist.in +++ b/cmake/Info.plist.in @@ -1,17 +1,32 @@ - + - - CFBundleIdentifier - @BUNDLE_ID@ - CFBundleShortVersionString - @WED_VERSION_STRING@ - CFBundleVersion - @WED_VERSION_NUMERIC@ - NSHumanReadableCopyright - @WED_COPYRIGHT_STRING@ - CFBundleIconFile - WED.icns - + + CFBundleDevelopmentRegion + English + CFBundleExecutable + WED + CFBundleGetInfoString + WED @WED_VERSION_STRING@ Copyright 2016, Laminar Research + CFBundleIconFile + WED.icns + CFBundleIdentifier + org.LaminarResearch.WED + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + WED + CFBundlePackageType + APPL + CFBundleShortVersionString + @WED_VERSION_STRING@ + CFBundleVersion + @WED_VERSION_NUMERIC@ + LSHasLocalizedDisplayName + + NSHumanReadableCopyright + @WED_COPYRIGHT_STRING@ + LSMinimumSystemVersion + 10.13 + \ No newline at end of file diff --git a/cmake/WED.cmake b/cmake/WED.cmake index fa6c4d9ee..53b384285 100644 --- a/cmake/WED.cmake +++ b/cmake/WED.cmake @@ -793,6 +793,15 @@ elseif (APPLE) mac_copy_bundle_files(WED Resources "${WED_RESOURCE_FILES}") + # Extract version info from WED_Version.h + file(READ "${CMAKE_SOURCE_DIR}/src/WEDCore/WED_Version.h" WED_VERSION_HEADER) + string(REGEX MATCH "#define[ \t]+WED_VERSION_STRING[ \t]+\"([^\"]+)\"" _ ${WED_VERSION_HEADER}) + set(WED_VERSION_STRING ${CMAKE_MATCH_1}) + string(REGEX MATCH "#define[ \t]+WED_COPYRIGHT_STRING[ \t]+\"([^\"]+)\"" _ ${WED_VERSION_HEADER}) + set(WED_COPYRIGHT_STRING ${CMAKE_MATCH_1}) + string(REGEX MATCH "#define[ \t]+WED_VERSION_NUMERIC[ \t]+([0-9]+)" _ ${WED_VERSION_HEADER}) + set(WED_VERSION_NUMERIC ${CMAKE_MATCH_1}) + # configure_file( # ${CMAKE_SOURCE_DIR}/cmake/Info.plist.in # ${CMAKE_BINARY_DIR}/Info.plist diff --git a/src/Obj/XDefs.h b/src/Obj/XDefs.h index 400f8aaca..4a7558bab 100644 --- a/src/Obj/XDefs.h +++ b/src/Obj/XDefs.h @@ -305,6 +305,8 @@ // This is to put an case-insensitive fopen in place, see in FileUtils.cpp #ifdef __cplusplus extern "C" FILE* x_fopen(const char * _Filename, const char * _Mode); + // Inject x_fopen into std namespace for C++ standard library compatibility + namespace std { using ::x_fopen; } #else extern FILE* x_fopen(const char * _Filename, const char * _Mode); #endif