From ef9618b3d6798645884595e0fb2eaa66b933d8a6 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Thu, 3 Jul 2025 20:41:05 +0200 Subject: [PATCH] [ios] Allowed to use C++ editor methods directly from Swift Signed-off-by: Yannik Bloscheck --- editor/module.modulemap | 6 ++++++ iphone/Maps/Classes/CustomAlert/MWMOsmAuthAlert.mm | 1 + .../Classes/CustomViews/Login/MWMAuthorizationCommon.h | 1 + iphone/Maps/Core/Editor/MWMEditorHelper.mm | 2 ++ iphone/Maps/Maps.xcodeproj/project.pbxproj | 10 ++++++++-- xcode/editor/editor.xcodeproj/project.pbxproj | 10 ++++++---- 6 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 editor/module.modulemap diff --git a/editor/module.modulemap b/editor/module.modulemap new file mode 100644 index 000000000..bbb6df2a6 --- /dev/null +++ b/editor/module.modulemap @@ -0,0 +1,6 @@ +module OSMEditor { + header "osm_auth.hpp" + header "osm_editor.hpp" + header "server_api.hpp" + requires cplusplus +} diff --git a/iphone/Maps/Classes/CustomAlert/MWMOsmAuthAlert.mm b/iphone/Maps/Classes/CustomAlert/MWMOsmAuthAlert.mm index 24040228d..b815cb7f0 100644 --- a/iphone/Maps/Classes/CustomAlert/MWMOsmAuthAlert.mm +++ b/iphone/Maps/Classes/CustomAlert/MWMOsmAuthAlert.mm @@ -1,6 +1,7 @@ #import "MWMAlertViewController.h" #import "MWMOsmAuthAlert.h" +#include #include "editor/osm_auth.hpp" static NSString * const kMap2OsmLoginSegue = @"Map2OsmLogin"; diff --git a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h index d050731e7..44b405380 100644 --- a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h +++ b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h @@ -1,3 +1,4 @@ +#include #include "editor/osm_auth.hpp" namespace osm_auth_ios diff --git a/iphone/Maps/Core/Editor/MWMEditorHelper.mm b/iphone/Maps/Core/Editor/MWMEditorHelper.mm index 4bfcba973..762dcf6be 100644 --- a/iphone/Maps/Core/Editor/MWMEditorHelper.mm +++ b/iphone/Maps/Core/Editor/MWMEditorHelper.mm @@ -2,6 +2,8 @@ #import #import "MWMAuthorizationCommon.h" +#include +#include #include "editor/osm_editor.hpp" @implementation MWMEditorHelper diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index ee18e3081..4317cfb37 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -5235,6 +5235,8 @@ OTHER_SWIFT_FLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = app.comaps.debug; PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_INCLUDE_PATHS = "$(OMIM_ROOT)/editor"; + SWIFT_OBJC_INTEROP_MODE = objcxx; }; name = Debug; }; @@ -5268,6 +5270,8 @@ OTHER_SWIFT_FLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = app.comaps; PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_INCLUDE_PATHS = "$(OMIM_ROOT)/editor"; + SWIFT_OBJC_INTEROP_MODE = objcxx; }; name = Release; }; @@ -5391,12 +5395,13 @@ "$(OTHER_CFLAGS)", "-fcxx-modules", ); - OTHER_SWIFT_FLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited) -cxx-interoperability-mode=default"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}"; PRODUCT_NAME = "CoMaps (Debug)"; SDKROOT = iphoneos; SKIP_INSTALL = NO; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_INCLUDE_PATHS = "$(OMIM_ROOT)/editor"; SWIFT_OBJC_BRIDGING_HEADER = "Bridging-Header.h"; SWIFT_OBJC_INTERFACE_HEADER_NAME = SwiftBridge.h; SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; @@ -5431,12 +5436,13 @@ "$(OTHER_CFLAGS)", "-fcxx-modules", ); - OTHER_SWIFT_FLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited) -cxx-interoperability-mode=default"; PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}"; PRODUCT_NAME = CoMaps; SDKROOT = iphoneos; SKIP_INSTALL = NO; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_INCLUDE_PATHS = "$(OMIM_ROOT)/editor"; SWIFT_OBJC_BRIDGING_HEADER = "Bridging-Header.h"; SWIFT_OBJC_INTERFACE_HEADER_NAME = SwiftBridge.h; SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; diff --git a/xcode/editor/editor.xcodeproj/project.pbxproj b/xcode/editor/editor.xcodeproj/project.pbxproj index 36ff80dd0..a8d629afc 100644 --- a/xcode/editor/editor.xcodeproj/project.pbxproj +++ b/xcode/editor/editor.xcodeproj/project.pbxproj @@ -74,6 +74,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 270C9C212E16AABF00ABA688 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = ../../editor/module.modulemap; sourceTree = SOURCE_ROOT; }; 340C20DC1C3E4DFD00111D22 /* osm_auth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm_auth.cpp; sourceTree = ""; }; 340C20DD1C3E4DFD00111D22 /* osm_auth.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_auth.hpp; sourceTree = ""; }; 340DC8271C4E71E500EAA2CC /* changeset_wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = changeset_wrapper.cpp; sourceTree = ""; }; @@ -196,6 +197,7 @@ isa = PBXGroup; children = ( 3496AC041DC204B700C5DDBA /* editor.config */, + 270C9C212E16AABF00ABA688 /* module.modulemap */, 34F5586E1DBF49B200A4FC11 /* common-debug.xcconfig */, 34F5586F1DBF49B200A4FC11 /* common-release.xcconfig */, 341138731C15AE02002E3B3E /* editor */, @@ -546,12 +548,12 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = "-"; - PRODUCT_BUNDLE_IDENTIFIER = app.comaps.editor_tests; - PRODUCT_NAME = "$(TARGET_NAME)"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(OMIM_ROOT)/3party/pugixml/pugixml/src", ); + PRODUCT_BUNDLE_IDENTIFIER = app.comaps.editor_tests; + PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; @@ -559,12 +561,12 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = "-"; - PRODUCT_BUNDLE_IDENTIFIER = app.comaps.editor_tests; - PRODUCT_NAME = "$(TARGET_NAME)"; HEADER_SEARCH_PATHS = ( "$(inherited)", "$(OMIM_ROOT)/3party/pugixml/pugixml/src", ); + PRODUCT_BUNDLE_IDENTIFIER = app.comaps.editor_tests; + PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; };