def TryGenerateBuildReport(log: Log, generatorName: str, package: Package) -> Optional[GeneratorBuildReport]: if package.IsVirtual: return None if package.Type != PackageType.Executable: return GeneratorBuildReport(None) commandCWD = GeneratorAndroidGradleCMakeUtil.GetAndroidProjectDir(package) gradleBuildConfigVariable = "${{{0}}}".format(LocalMagicBuildVariants.GradleBuildConfig) buildCommandArguments = [gradleBuildConfigVariable] buildCommand = GeneratorAndroidGradleCMakeUtil.GetPlatformGradleCommand() buildCommand = IOUtil.Join(commandCWD, buildCommand) buildCommandReport = GeneratorCommandReport(False, buildCommand, buildCommandArguments, [], commandCWD) return GeneratorBuildReport(buildCommandReport)
def TryGenerateBuildReport( log: Log, generatorName: str, package: Package) -> Optional[GeneratorBuildReport]: if package.IsVirtual: return None # Ubuntu # buildCommand = ['make'] + buildConfig.BuildArgs # Yocto # buildCommand = ['make', '-f', 'GNUmakefile_Yocto'] + buildConfig.BuildArgs if generatorName == PlatformNameString.UBUNTU: buildCommandArguments = [] # type: List[str] elif generatorName == PlatformNameString.YOCTO: buildCommandArguments = ['-f', 'GNUmakefile_Yocto'] else: raise Exception( "Unknown generator name: {0}".format(generatorName)) # Configuration (debug, release) buildCommandArguments.append("{0}=${{{0}}}".format( ToolAddedVariant.CONFIG)) # Normal variants for normalVariant in package.ResolvedNormalVariantNameList: buildCommandArguments.append("{0}=${{{0}}}".format(normalVariant)) buildCommand = "make" buildCommandReport = GeneratorCommandReport(True, buildCommand, buildCommandArguments) return GeneratorBuildReport(buildCommandReport)
def _TryGenerateBuildReport( log: Log, generatorConfig: GeneratorConfig, generatorName: str, cmakeConfig: GeneratorCMakeConfig, package: Package, isMasterBuild: bool) -> Optional[GeneratorBuildReport]: if package.IsVirtual and not isMasterBuild: return None # preBuildCommand = ['cmake', '-G', 'Visual Studio 15 2017 Win64'] + buildConfig.BuildArgs # buildCommand = ['cmake', '--build', '.', '--config', 'Debug'] + buildConfig.BuildArgs buildCommandArguments = ['--build', '.'] # type: List[str] buildCommandNativeArguments = [] # type: List[str] # Configuration (Debug, Release) for the configurations that support build time configuration switching if CMakeTypes.GetGeneratorMultiConfigCapabilities( cmakeConfig.GeneratorName ) != CMakeTypes.CMakeGeneratorMultiConfigCapability.No: buildCommandArguments.append("--config") buildCommandArguments.append("${{{0}}}".format( LocalMagicBuildVariants.CMakeBuildConfig)) # Do a fallback solution for a few generators that we know how work nativeArguments = CMakeTypes.GetNativeBuildThreadArguments( cmakeConfig.GeneratorName, generatorConfig.NumBuildThreads) if len(nativeArguments) > 0: buildCommandNativeArguments += nativeArguments elif cmakeConfig.CMakeVersion.Major >= 3 and cmakeConfig.CMakeVersion.Minor >= 12: # Take advantage of the "--parallel" parameter available from 3.12 when possible # We use this as a fallback since testing has shown that even on 3.14 the parameter # doesn't always provide any benefits :( buildCommandArguments.append("--parallel") buildCommandArguments.append("{0}".format( generatorConfig.NumBuildThreads)) elif isMasterBuild: log.LogPrintWarning( "BuildThreads not supported for generator '{0}' please upgrade to CMake 3.12+" .format(cmakeConfig.GeneratorName)) # Add extra commands based on the build type if generatorConfig.BuildCommand == CommandType.Clean: buildCommandArguments.append("--target") buildCommandArguments.append("clean") elif generatorConfig.BuildCommand == CommandType.Install: buildCommandArguments.append("--target") buildCommandArguments.append("install") # set the package build dir buildCWD = cmakeConfig.BuildDir if not isMasterBuild: buildCWD = GeneratorCMake._GetPackageBuildDir( generatorConfig, cmakeConfig, package) buildCommand = "cmake" buildCommandReport = GeneratorCommandReport( True, buildCommand, buildCommandArguments, buildCommandNativeArguments, buildCWD, nativeArgumentSeparator="--") return GeneratorBuildReport(buildCommandReport)