mac: create Xcode project for mobile (on a desktop)

Create Xcode project, allowing easy editing of all sources.
the project uses "make mobile" and "make desktop" to generate the project,
so all CMake changes are automatically updated

the project uses folder references, so adding/removing a source is
automatically updated

The project expect build-mobile and build to be existing as well
as external libraries, so after cloning do a normal build before
using the project.

Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
jan Iversen 2018-09-17 12:08:15 +02:00 committed by Dirk Hohndel
parent ddfc384b61
commit e8a6042951
4 changed files with 460 additions and 0 deletions

View file

@ -0,0 +1,2 @@
project.xcworkspace
xcuserdata

View file

@ -0,0 +1,294 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXFileReference section */
39CE747E214FB2CF000423F3 /* subsurface-helper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "subsurface-helper.cpp"; path = "../../subsurface-helper.cpp"; sourceTree = "<group>"; };
39CE747F214FB2CF000423F3 /* subsurface-mobile-main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "subsurface-mobile-main.cpp"; path = "../../subsurface-mobile-main.cpp"; sourceTree = "<group>"; };
39CE7480214FB2EF000423F3 /* core */ = {isa = PBXFileReference; lastKnownFileType = folder; name = core; path = ../../core; sourceTree = "<group>"; };
39CE7483214FB39E000423F3 /* map-widget */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "map-widget"; path = "../../map-widget"; sourceTree = "<group>"; };
39CE7484214FB3A9000423F3 /* mobile-widgets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "mobile-widgets"; path = "../../mobile-widgets"; sourceTree = "<group>"; };
39CE7485214FB3B7000423F3 /* profile-widget */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "profile-widget"; path = "../../profile-widget"; sourceTree = "<group>"; };
39CE7486214FB3C1000423F3 /* qt-models */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "qt-models"; path = "../../qt-models"; sourceTree = "<group>"; };
3D23B3FA2389DCB8009A3D79 /* appdata */ = {isa = PBXFileReference; lastKnownFileType = folder; name = appdata; path = ../../appdata; sourceTree = "<group>"; };
3D23B3FB2389DCC2009A3D79 /* cmake */ = {isa = PBXFileReference; lastKnownFileType = folder; name = cmake; path = ../../cmake; sourceTree = "<group>"; };
3D23B3FC2389DCE4009A3D79 /* commands */ = {isa = PBXFileReference; lastKnownFileType = folder; name = commands; path = ../../commands; sourceTree = "<group>"; };
3D23B3FD2389DD00009A3D79 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CMakeLists.txt; path = ../../CMakeLists.txt; sourceTree = "<group>"; };
3D23B3FE2389DD12009A3D79 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../../CHANGELOG.md; sourceTree = "<group>"; };
3D23B3FF2389DD26009A3D79 /* desktop-widgets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "desktop-widgets"; path = "../../desktop-widgets"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
39C475D4214FAF2A00CBA20C = {
isa = PBXGroup;
children = (
3D23B3FE2389DD12009A3D79 /* CHANGELOG.md */,
3D23B3FD2389DD00009A3D79 /* CMakeLists.txt */,
39CE747E214FB2CF000423F3 /* subsurface-helper.cpp */,
39CE747F214FB2CF000423F3 /* subsurface-mobile-main.cpp */,
3D23B3FA2389DCB8009A3D79 /* appdata */,
3D23B3FB2389DCC2009A3D79 /* cmake */,
3D23B3FC2389DCE4009A3D79 /* commands */,
39CE7480214FB2EF000423F3 /* core */,
3D23B3FF2389DD26009A3D79 /* desktop-widgets */,
39CE7483214FB39E000423F3 /* map-widget */,
39CE7484214FB3A9000423F3 /* mobile-widgets */,
39CE7485214FB3B7000423F3 /* profile-widget */,
39CE7486214FB3C1000423F3 /* qt-models */,
);
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXLegacyTarget section */
39C475D9214FAF2B00CBA20C /* Subsurface-mobile */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "-j4 mobile";
buildConfigurationList = 39C475DC214FAF2B00CBA20C /* Build configuration list for PBXLegacyTarget "Subsurface-mobile" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
buildWorkingDirectory = ../../;
dependencies = (
);
name = "Subsurface-mobile";
passBuildSettingsInEnvironment = 1;
productName = "Subsurface-mobile";
};
39C5DEDE214FFDB30049E85E /* Subsurface */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "-j4 desktop";
buildConfigurationList = 39C5DEDF214FFDB30049E85E /* Build configuration list for PBXLegacyTarget "Subsurface" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
buildWorkingDirectory = ../../;
dependencies = (
);
name = Subsurface;
passBuildSettingsInEnvironment = 1;
productName = "Subsurface-mobile";
};
/* End PBXLegacyTarget section */
/* Begin PBXProject section */
39C475D5214FAF2A00CBA20C /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0940;
TargetAttributes = {
39C475D9214FAF2B00CBA20C = {
CreatedOnToolsVersion = 9.4.1;
};
};
};
buildConfigurationList = 39C475D8214FAF2A00CBA20C /* Build configuration list for PBXProject "Subsurface-mobile" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 39C475D4214FAF2A00CBA20C;
projectDirPath = "";
projectRoot = "";
targets = (
39C475D9214FAF2B00CBA20C /* Subsurface-mobile */,
39C5DEDE214FFDB30049E85E /* Subsurface */,
);
};
/* End PBXProject section */
/* Begin XCBuildConfiguration section */
39C475DA214FAF2B00CBA20C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
};
name = Debug;
};
39C475DB214FAF2B00CBA20C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
};
name = Release;
};
39C475DD214FAF2B00CBA20C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEBUGGING_SYMBOLS = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
39C475DE214FAF2B00CBA20C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
39C5DEE0214FFDB30049E85E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEBUGGING_SYMBOLS = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
39C5DEE1214FFDB30049E85E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
39C475D8214FAF2A00CBA20C /* Build configuration list for PBXProject "Subsurface-mobile" */ = {
isa = XCConfigurationList;
buildConfigurations = (
39C475DA214FAF2B00CBA20C /* Debug */,
39C475DB214FAF2B00CBA20C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
39C475DC214FAF2B00CBA20C /* Build configuration list for PBXLegacyTarget "Subsurface-mobile" */ = {
isa = XCConfigurationList;
buildConfigurations = (
39C475DD214FAF2B00CBA20C /* Debug */,
39C475DE214FAF2B00CBA20C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
39C5DEDF214FFDB30049E85E /* Build configuration list for PBXLegacyTarget "Subsurface" */ = {
isa = XCConfigurationList;
buildConfigurations = (
39C5DEE0214FFDB30049E85E /* Debug */,
39C5DEE1214FFDB30049E85E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 39C475D5214FAF2A00CBA20C /* Project object */;
}

View file

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0940"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C475D9214FAF2B00CBA20C"
BuildableName = "Subsurface-mobile"
BlueprintName = "Subsurface-mobile"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<PathRunnable
runnableDebuggingMode = "0"
FilePath = "~/develop/src/subsurface/build-mobile/Subsurface-mobile.app/Contents/MacOS/Subsurface-mobile">
</PathRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C475D9214FAF2B00CBA20C"
BuildableName = "Subsurface-mobile"
BlueprintName = "Subsurface-mobile"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C475D9214FAF2B00CBA20C"
BuildableName = "Subsurface-mobile"
BlueprintName = "Subsurface-mobile"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0940"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C5DEDA214FFD3A0049E85E"
BuildableName = "subsurface"
BlueprintName = "subsurface"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C5DEDA214FFD3A0049E85E"
BuildableName = "subsurface"
BlueprintName = "subsurface"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "39C5DEDA214FFD3A0049E85E"
BuildableName = "subsurface"
BlueprintName = "subsurface"
ReferencedContainer = "container:Subsurface-mobile.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>