| |
---|
| | } |
---|
| | p.description = input("Description", p.description); |
---|
| | p.authors = input("Author name", author).split(",").map!(a => a.strip).array; |
---|
| | p.license = input("License", p.license); |
---|
| | string copyrightString = .format("Copyright © %s, %-(%s, %)", Clock.currTime().year, p.authors); |
---|
| | string copyrightString = format("Copyright © %s, %-(%s, %)", Clock.currTime().year, p.authors); |
---|
| | p.copyright = input("Copyright string", copyrightString); |
---|
| | |
---|
| | while (true) { |
---|
| | auto depspec = input("Add dependency (leave empty to skip)", null); |
---|
| |
---|
| | "[Experimental] Filter version identifiers and debug version identifiers to improve build cache efficiency." |
---|
| | ]); |
---|
| | } |
---|
| | |
---|
| | protected void setupVersionPackage(Dub dub, string str_package_info, string default_build_type = "debug") |
---|
| | { |
---|
| | PackageAndVersion package_info = splitPackageName(str_package_info); |
---|
| | Version ver = package_info.version_.length ? Version(package_info.version_) : Version.unknown; |
---|
| | setupPackage(dub, package_info.name, default_build_type, ver); |
---|
| | } |
---|
| | |
---|
| | protected void setupPackage(Dub dub, string package_name, string default_build_type = "debug", Version ver = Version.unknown) |
---|
| | { |
---|
| | if (!m_compilerName.length) m_compilerName = dub.defaultCompiler; |
---|
| | if (!m_arch.length) m_arch = dub.defaultArchitecture; |
---|
| |
---|
| | |
---|
| | auto pack = ver.isUnknown |
---|
| | ? dub.packageManager.getLatestPackage(package_name) |
---|
| | : dub.packageManager.getPackage(package_name, ver); |
---|
| | enforce(pack, "Failed to find a package named '"~package_name~"' locally."); |
---|
| | |
---|
| | enforce(pack, format!"Failed to find a package named '%s%s' locally."(package_name, |
---|
| | ver.isUnknown ? "" : "@" ~ ver.toString() |
---|
| | )); |
---|
| | logInfo("Building package %s in %s", pack.name, pack.path.toNativeString()); |
---|
| | dub.loadPackage(pack); |
---|
| | return true; |
---|
| | } |
---|
| |
---|
| | } |
---|
| | |
---|
| | override int execute(Dub dub, string[] free_args, string[] app_args) |
---|
| | { |
---|
| | PackageAndVersion package_info; |
---|
| | string str_package_info; |
---|
| | if (!m_generator.length) { |
---|
| | enforceUsage(free_args.length >= 1 && free_args.length <= 2, "Expected one or two arguments."); |
---|
| | m_generator = free_args[0]; |
---|
| | if (free_args.length >= 2) package_info = splitPackageName(free_args[1]); |
---|
| | if (free_args.length >= 2) str_package_info = free_args[1]; |
---|
| | } else { |
---|
| | enforceUsage(free_args.length <= 1, "Expected one or zero arguments."); |
---|
| | if (free_args.length >= 1) package_info = splitPackageName(free_args[0]); |
---|
| | } |
---|
| | |
---|
| | string package_name = package_info.name; |
---|
| | Version package_version = package_info.version_.length == 0 ? Version.unknown : Version(package_info.version_); |
---|
| | setupPackage(dub, package_name, "debug", package_version); |
---|
| | if (free_args.length >= 1) str_package_info = free_args[0]; |
---|
| | } |
---|
| | |
---|
| | setupVersionPackage(dub, str_package_info, "debug"); |
---|
| | |
---|
| | if (m_printBuilds) { // FIXME: use actual package data |
---|
| | logInfo("Available build types:"); |
---|
| | foreach (tp; ["debug", "release", "unittest", "profile"]) |
---|
| |
---|
| | } |
---|
| | |
---|
| | override int execute(Dub dub, string[] free_args, string[] app_args) |
---|
| | { |
---|
| | string package_name; |
---|
| | string str_package_info; |
---|
| | enforceUsage(free_args.length <= 1, "Expected one or zero arguments."); |
---|
| | if (free_args.length >= 1) package_name = free_args[0]; |
---|
| | |
---|
| | setupPackage(dub, package_name, "unittest", Version.unknown); |
---|
| | if (free_args.length >= 1) str_package_info = free_args[0]; |
---|
| | |
---|
| | setupVersionPackage(dub, str_package_info, "unittest"); |
---|
| | |
---|
| | GeneratorSettings settings; |
---|
| | settings.platform = m_buildPlatform; |
---|
| | settings.compiler = getCompiler(m_buildPlatform.compilerBinary); |
---|
| |
---|
| | } |
---|
| | |
---|
| | override int execute(Dub dub, string[] free_args, string[] app_args) |
---|
| | { |
---|
| | string package_name; |
---|
| | string str_package_info; |
---|
| | enforceUsage(free_args.length <= 1, "Expected one or zero arguments."); |
---|
| | if (free_args.length >= 1) package_name = free_args[0]; |
---|
| | if (free_args.length >= 1) str_package_info = free_args[0]; |
---|
| | |
---|
| | string[] args; |
---|
| | if (!m_syntaxCheck && !m_styleCheck && !m_report && app_args.length == 0) { m_styleCheck = true; } |
---|
| | |
---|
| |
---|
| | if (m_reportFile) args ~= ["--reportFile", m_reportFile]; |
---|
| | foreach (import_path; m_importPaths) args ~= ["-I", import_path]; |
---|
| | if (m_config) args ~= ["--config", m_config]; |
---|
| | |
---|
| | setupPackage(dub, package_name); |
---|
| | setupVersionPackage(dub, str_package_info); |
---|
| | dub.lintProject(args ~ app_args); |
---|
| | return 0; |
---|
| | } |
---|
| | } |
---|
| |
---|
| | auto ll = getLogLevel(); |
---|
| | setLogLevel(max(ll, LogLevel.warn)); |
---|
| | scope (exit) setLogLevel(ll); |
---|
| | |
---|
| | string package_name; |
---|
| | string str_package_info; |
---|
| | enforceUsage(free_args.length <= 1, "Expected one or zero arguments."); |
---|
| | if (free_args.length >= 1) package_name = free_args[0]; |
---|
| | setupPackage(dub, package_name); |
---|
| | if (free_args.length >= 1) str_package_info = free_args[0]; |
---|
| | setupVersionPackage(dub, str_package_info); |
---|
| | |
---|
| | m_defaultConfig = dub.project.getDefaultConfiguration(m_buildPlatform); |
---|
| | |
---|
| | auto config = m_buildConfig.length ? m_buildConfig : m_defaultConfig; |
---|
| |
---|
| | |