标签: build-script

如何将源文件从我的库导入到 build.rs 中?

我有以下文件结构:

src/
    lib.rs
    foo.rs
build.rs
Run Code Online (Sandbox Code Playgroud)

我想将一些东西从foo.rs(已经lib.rspub mod foo)导入到build.rs. (我正在尝试导入类型以便在构建时生成一些 JSON 模式)

这可能吗?

build-script rust rust-cargo

9
推荐指数
1
解决办法
3127
查看次数

Cargo rust 构建脚本 - 打印命令输出

我对 Rust 和 Cargo 很陌生,我正在尝试做一些非常简单的事情!

我有这样的东西(在 build.rs 中):

use std::process::Command;

fn main() {
    Command::new("echo 123");
}
Run Code Online (Sandbox Code Playgroud)

我想查看命令的输出echo 123。我想123打印到构建输出(这主要是为了调试我正在做的事情)并且不会成为最终项目的一部分。

我已经尝试过cargo build --verbose-这不起作用。

我无法从那里的帖子中推断出答案(以及其他一些喜欢的帖子):

我觉得这一定很简单 - 但我已经在网上搜索了几个小时但没有找到答案。

command build-script rust rust-cargo

8
推荐指数
1
解决办法
8173
查看次数

无需安装即可使用msbuild社区任务

在我们的开发者环境中,没有用户拥有管理权限.因此,如果不让管理员这样做,就无法安装MSBuild.CommunityTasks.

我想知道的是类似于NAnt,即是否可以将文件包含在解决方案目录中,并从那里引用它?这样,无论是否安装了这个人,当他们检查最新代码时,msbuild社区文件都会随附,并且解决方案将会构建.

\SolutionDir\{solution}.sln
\SolutionDir\Project\{files}
\SolutionDir\MSBuild.Community\files
Run Code Online (Sandbox Code Playgroud)

msbuild build-script visual-studio-2008 visual-studio

7
推荐指数
1
解决办法
2983
查看次数

"ant clean"不会以我可以使用的方式清理我的项目

运行后ant clean,我的项目仍然需要在Eclipse中"清理",然后才能ant release成功运行.

如果我尝试在预定义的构建脚本的组件中失败ant release后立即运行ant clean-compile

相反,如果我运行Eclipse版本清理所有项目,那么我运行ant release-compile组件不会失败.

为什么是这样?为什么ant clean清洁效果不如Eclipse那么干净?我该怎么做才能解决这个问题?

eclipse ant android build-script

6
推荐指数
1
解决办法
4279
查看次数

如何从命令行为Visual Studio创建简单生成脚本?

我在多个目录中有很多Visual Studio项目解决方案(所有扩展名都是.sln),我想编写一个简单的批处理脚本,它将自动构建批处理文件中列出的所有解决方案.

我可以通过启动Visual Studio Command Prompt(这只是一个执行了以下命令的命令行实例)来手动构建解决方案

"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

之后我通过调用以下方式构建项目:

devenv "path\to\solutionFile\projectSolution1.sln" /build Debug

这将构建项目(假设项目没有错误),我为我想要构建的每个项目进行冲洗和重复.

但是当我在一个名为的批处理文件中有以下内容时build.bat:

"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86  
echo "Starting Build for all Projects with proposed changes" 
echo . 
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause
Run Code Online (Sandbox Code Playgroud)

批处理脚本只执行第一行,并等到我输入exit其他之前输入.基于我对批处理文件和所有StackOverflow问题所做的研究,我对此的理解是,cmd实际上调用了自己的另一个实例,vcvarsall.bat用于设置构建环境.

这不起作用,因为键入exitdevenv设置的实例并且之后的命令无法执行,因为devenv它不是可识别的命令(因为导出的路径将不再存在)

简而言之 …

cmd batch-file build-script visual-studio-2012

6
推荐指数
1
解决办法
2万
查看次数

在GitLab CI中添加SSH密钥时出现语法错误

参考:https : //gitlab.ida.liu.se/help/ci/ssh_keys/README.md

以下脚本有问题。即使我将最后一个符号从'更改为',问题仍然是如何解决该错误,如下所示

$ ssh-add <(echo“ $ SSH_PRIVATE_KEY”)/ bin / sh:eval:第24行:语法错误:意外的“(”

before_script:
  # Install ssh-agent if not already installed, it is required by Docker.
  # (change apt-get to yum if you use a CentOS-based image)
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'

  # Run ssh-agent (inside the build environment)
  - eval $(ssh-agent -s)

  # Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
  - ssh-add <(echo …
Run Code Online (Sandbox Code Playgroud)

git build-script gitlab docker gitlab-ci

6
推荐指数
1
解决办法
1199
查看次数

npm copyfiles 不正确的目标路径

我在我的构建脚本中使用 npm 包“copyfiles”。但是目标目录不是我所期望的。

"copy-template": "copyfiles \"./src/**/*.html\" \"dist\"",
Run Code Online (Sandbox Code Playgroud)

我的基本目录结构是:

src/pages/.../htmlfiles
Run Code Online (Sandbox Code Playgroud)

我想要的是:

dist/pages/.../htmlfiles
Run Code Online (Sandbox Code Playgroud)

所以和以前没有“src”的结构一样,现在我的 dist 文件夹中总是有 src 目录。

dist/src/pages/../htmlfiles
Run Code Online (Sandbox Code Playgroud)

也许你对我有一些提示?

最佳大卫

build-script node.js npm package.json

6
推荐指数
1
解决办法
6793
查看次数

如何在编译期间生成文本文件并将其内容包含在输出中?

我正在尝试执行与如何在编译时创建静态字符串几乎相同的操作

构建.rs

use std::{env};
use std::path::Path;
use std::io::{Write, BufWriter};
use std::fs::File;

fn main() {
    let out_dir = env::var("OUT_DIR").unwrap();
    let dest_path = Path::new(&out_dir).join("file_path.txt");
    let mut f = BufWriter::new(File::create(&dest_path).unwrap());

    let long_string = dest_path.display();
    write!(f, "{}", long_string).unwrap();
}
Run Code Online (Sandbox Code Playgroud)

主文件

fn main() {

    static LONG_STRING: &'static str = include_str!("file_path.txt");
    println!("{}", LONG_STRING);
}
Run Code Online (Sandbox Code Playgroud)

cargo build我收到错误时:

use std::{env};
use std::path::Path;
use std::io::{Write, BufWriter};
use std::fs::File;

fn main() {
    let out_dir = env::var("OUT_DIR").unwrap();
    let dest_path = Path::new(&out_dir).join("file_path.txt");
    let mut f = …
Run Code Online (Sandbox Code Playgroud)

build build-script embedded-resource rust rust-cargo

6
推荐指数
1
解决办法
1623
查看次数

build.gradle buildscript 依赖项与依赖项?

有人可以向我解释一下 build.gradle 文件中“buildscript”中列出的依赖项与依赖项块 { } 中列出的常规依赖项有何不同吗?为什么它们必须用语法“实现”列出?我用谷歌搜索了这个,回复说构建脚本中的依赖项并用于“构建项目”,但我不明白这一点?谁能给出更清晰的图片和答案?

构建脚本:

buildscript
        {
            repositories
                    {
                        maven {
                            url 'myMavenFeed'
                            credentials {
                                username "myUsername"
                                password myPassword
                            }
                        }
                        mavenCentral()
                        jcenter()
                    }
            dependencies
                    {
                        classpath "com.microsoft.azure.sdk.iot:iot-device-client:1.14.1"
                    }
        }
Run Code Online (Sandbox Code Playgroud)

依赖块:

dependencies
        {
            compile group: 'com.microsoft.azure.sdk.iot', name: 'iot-device-client', version: '1.16.0'
}
Run Code Online (Sandbox Code Playgroud)

dependencies classpath build-script gradle

6
推荐指数
1
解决办法
3080
查看次数

为什么在编译时生成一个包含 ~30K 条目的静态 HashMap 会消耗这么多资源?

我正在尝试编写一个build.rs脚本来创建一个最新的脚本,该脚本将HashMapMAC 地址的前 6 个字符与其对应的供应商进行映射。

它有 29231 个键值对,这导致cargo check在我的源代码上花费超过 7 分钟。在此之前,不到20秒。它还使用了我笔记本电脑上可用的所有8GB RAM,我无法在这 7-8 分钟内使用它。

我认为这是一个rustc/cargo错误,或者我做错了什么,我很确定是后者。生成这样的代码的正确方法是什么?

主文件

use std::collections::{HashMap, HashSet};
use rustc_hash::{FxHashMap, FxHashSet, FxHasher};
type CustomHasher = BuildHasherDefault<FxHasher>;
include!(concat!(env!("OUT_DIR"), "/map_oui.rs"));
Run Code Online (Sandbox Code Playgroud)

map_oui.rs

#[rustfmt::skip]
lazy_static! {
    static ref MAP_MACS: FxHashMap<&'static [u8; 6], &'static str> = {
    let mut map_macs = HashMap::with_capacity_and_hasher(29231, CustomHasher::default());
    map_macs.insert(b"002272", "American Micro-Fuel Device Corp.");
    map_macs.insert(b"00D0EF", "IGT");
//...
Run Code Online (Sandbox Code Playgroud)

构建.rs

use std::env;
use std::fs::File;
use std::io::prelude::*;
use std::io::{BufReader, BufWriter};
use std::path::Path; …
Run Code Online (Sandbox Code Playgroud)

code-generation build-script embedded-resource rust rust-cargo

6
推荐指数
1
解决办法
178
查看次数