public void CheckRuntimeSearchPath() {
     foreach (var buildConfigEntry in buildConfigs.GetEntries())
     {
         XCBuildConfigurationData configurationData = buildConfigEntry.Value;
         configurationData.RemoveProperty("LD_RUNPATH_SEARCH_PATHS");
         configurationData.AddProperty("LD_RUNPATH_SEARCH_PATHS","$(inherited)");
         configurationData.AddProperty("LD_RUNPATH_SEARCH_PATHS","/usr/lib/swift");
         configurationData.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");
         configurationData.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@loader_path/Frameworks");
     }
 }
Beispiel #2
0
        public void AddDynamicFrameworkToProject(string targetGuid, string frameworkPathInProject)
        {
            var fileGuid = FindFileGuidByProjectPath(frameworkPathInProject);

            if (fileGuid == null)
            {
                Debug.LogError("Framework not found: " + frameworkPathInProject);
                return;
            }
            // add file reference as embed framework
            var embedFrameworkFileData = FindEmbeddedFramework(fileGuid);

            if (embedFrameworkFileData == null)
            {
                embedFrameworkFileData = PBXBuildFileData.CreateFromFramework(fileGuid);
                BuildFilesAdd(targetGuid, embedFrameworkFileData);
            }

            // add "Embed Frameworks" section
            var embedFrameworksSection = FindEmbeddedFrameworkSection();

            if (embedFrameworksSection == null)
            {
                embedFrameworksSection = PBXCopyFilesBuildPhaseData.Create("Embed Frameworks", "10");
                copyFiles.AddEntry(embedFrameworksSection);
            }

            var frameworkAlreadyAdded = false;

            foreach (var fileEntry in embedFrameworksSection.files)
            {
                if (fileEntry == embedFrameworkFileData.guid)
                {
                    frameworkAlreadyAdded = true;
                }
            }
            if (!frameworkAlreadyAdded)
            {
                embedFrameworksSection.files.AddGUID(embedFrameworkFileData.guid);
            }

            // add "Embed Frameworks" section to "Build phases"
            var targetPhases = nativeTargets[targetGuid].phases;

            if (!targetPhases.Contains(embedFrameworksSection.guid))
            {
                targetPhases.AddGUID(embedFrameworksSection.guid);
            }
            foreach (var buildConfigEntry in buildConfigs.GetEntries())
            {
                XCBuildConfigurationData configurationData = buildConfigEntry.Value;
                configurationData.AddProperty("LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");
            }
        }
Beispiel #3
0
 private void SetDefaultAppExtensionDebugBuildFlags(XCBuildConfigurationData config, string infoPlistPath)
 {
     config.AddProperty("ALWAYS_SEARCH_USER_PATHS", "NO");
     config.AddProperty("CLANG_CXX_LANGUAGE_STANDARD", "gnu++0x");
     config.AddProperty("CLANG_CXX_LIBRARY", "libc++");
     config.AddProperty("CLANG_ENABLE_MODULES", "YES");
     config.AddProperty("CLANG_ENABLE_OBJC_ARC", "YES");
     config.AddProperty("CLANG_WARN_BOOL_CONVERSION", "YES");
     config.AddProperty("CLANG_WARN_CONSTANT_CONVERSION", "YES");
     config.AddProperty("CLANG_WARN_DIRECT_OBJC_ISA_USAGE", "YES_ERROR");
     config.AddProperty("CLANG_WARN_EMPTY_BODY", "YES");
     config.AddProperty("CLANG_WARN_ENUM_CONVERSION", "YES");
     config.AddProperty("CLANG_WARN_INT_CONVERSION", "YES");
     config.AddProperty("CLANG_WARN_OBJC_ROOT_CLASS", "YES_ERROR");
     config.AddProperty("CLANG_WARN_UNREACHABLE_CODE", "YES");
     config.AddProperty("CLANG_WARN__DUPLICATE_METHOD_MATCH", "YES");
     config.AddProperty("COPY_PHASE_STRIP", "NO");
     config.AddProperty("ENABLE_STRICT_OBJC_MSGSEND", "YES");
     config.AddProperty("GCC_C_LANGUAGE_STANDARD", "gnu99");
     config.AddProperty("GCC_DYNAMIC_NO_PIC", "NO");
     config.AddProperty("GCC_OPTIMIZATION_LEVEL", "0");
     config.AddProperty("GCC_PREPROCESSOR_DEFINITIONS", "DEBUG=1");
     config.AddProperty("GCC_PREPROCESSOR_DEFINITIONS", "$(inherited)");
     config.AddProperty("GCC_SYMBOLS_PRIVATE_EXTERN", "NO");
     config.AddProperty("GCC_WARN_64_TO_32_BIT_CONVERSION", "YES");
     config.AddProperty("GCC_WARN_ABOUT_RETURN_TYPE", "YES_ERROR");
     config.AddProperty("GCC_WARN_UNDECLARED_SELECTOR", "YES");
     config.AddProperty("GCC_WARN_UNINITIALIZED_AUTOS", "YES_AGGRESSIVE");
     config.AddProperty("GCC_WARN_UNUSED_FUNCTION", "YES");
     config.AddProperty("INFOPLIST_FILE", infoPlistPath);
     config.AddProperty("IPHONEOS_DEPLOYMENT_TARGET", "8.0");
     config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "$(inherited)");
     config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");
     config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@executable_path/../../Frameworks");
     config.AddProperty("MTL_ENABLE_DEBUG_INFO", "YES");
     config.AddProperty("ONLY_ACTIVE_ARCH", "YES");
     config.AddProperty("PRODUCT_NAME", "$(TARGET_NAME)");
     config.AddProperty("SKIP_INSTALL", "YES");
 }