问题标签 [buck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
303 浏览

c++ - Buck中常见的平台名称有哪些?

我想cxx_library构建一个跨平台。对于不同的平台,我有不同cpp的文件。根据文档,我可以使用以下方法处理此问题platform_srcs,即:

...其中第一个元素是与平台名称匹配的未锚定正则表达式(在 java.util.regex.Pattern 语法中)的对列表”。

  • 这些平台名称是什么样的?
  • 我可以为 OSX、Windows 和 Linux 使用哪些示例正则表达式?
0 投票
1 回答
103 浏览

buck - Buck 有平台名称宏吗?

Buck 有一些有用的宏,例如$(location :rule). 它是否还有用于获取平台名称的宏?

我需要根据构建目标的平台执行一些自定义逻辑。

0 投票
1 回答
2119 浏览

c++ - buck 使用什么来实际构建 c++

我正在尝试为我的个人项目尝试降压,但查看文档,我无法找到构建阶段实际发生的情况。当我使用 cxx_ 选项设置项目时,buck 会为我生成一个 makefile 还是会生成 CMakeLists.txt?或者例如,在 Windows 上,我是否有机会创建 Visual Studio 项目文件?您也可以将我引导至文档,但我找不到此类信息。

0 投票
1 回答
505 浏览

android - Buck/OkBuck:DexGuard 集成不起作用

我一直在 Android Studio 中成功使用 DexGuard,Gradle没有任何问题。我最近尝试过OkBuck加快构建时间,这对我很有帮助。

虽然它能够为我构建调试和签名 APK,但是当我尝试使用 DexGuard 构建发布时,例如:

我收到以下错误:


提及 DexGuard 集成的细节可能是微不足道的,因为它是按照文档完成的,并且当我从 Android Studio 中构建或使用时工作正常./gradlew,但这里是:

SomeApp/build.gradle:

SomeApp/app/build.gradle:

0 投票
0 回答
59 浏览

java - 在 BUCK 中将注释处理器作为插件加载

我正在探索使用 Buck for android 的注释处理器的使用。

当 java 库中的某些内容发生变化时,它不会每次都给我带注释的元素。我已经将它用作插件 -

android_library(..., plugins = ['//processor/src_apt'], annotation_processor_deps = [...])

就在src_apt发生变化的时候,它返回了我所期待的元素。

有人在注释处理器和 Buck 上遇到过这样的问题吗?

0 投票
1 回答
89 浏览

android - 在 BUCK 中使用 java 测试访问 R.java

在将我们的构建工具迁移到 Buck 时,我们偶然发现了 Android 单元测试的以下问题:

我们对视图模型的测试需要访问 R.java 以断言正确的资源被引用。

我们使用了 java_test 规则,但似乎没有找到 R.java。有一个构建 .apk 的 robolectric_test ,但我们只希望类路径中的 R.java 文件用于单元测试。

没有 android_test 规则是否有原因。有这样做的计划吗?

我们浏览了代码,发现我们需要查看 AndroidLibraryGraphEnhancer 并构建 Android 资源。

有什么建议吗?

0 投票
1 回答
277 浏览

android - Buck - 名称“project_config”未定义。如何解决?

我不知道为什么,但巴克总是很难设置。我试图直接从 Facebook 页面为in进行入门教程。问题是当我尝试执行以下命令时出现错误:AndroidmacOSbuck build demo_app_android

错误:

注意:fbsamples/bucksamples我在 GitHub 上克隆了存储库

这是BUCK文件:

project_config如果已定义,为什么会失败?

0 投票
1 回答
621 浏览

java - Buck - java.lang.UnsatisfiedLinkError:找不到“libjni.so”。如何解决?

buck install --run demo_app_android按照教程和示例演示执行命令后发生运行时异常

然后,控制台中显示如下

最后,设备显示一条消息说Buck Demo App has stopped 应用程序已成功安装,因为我可以在应用程序列表中看到它,但它不工作

堆栈跟踪:

设备规格:

  • 本机 Android 模拟器(同样,将其运行到具有相同结果的真实设备中)
  • 连结 5 API 24

我的电脑:

  • MacBook Pro 2012 年中

注意:此外,此问题已直接报告给buck 存储库,但尚未给出解决方案

关于如何解决它的任何想法?

0 投票
1 回答
343 浏览

c++ - 是否有等效于 BUCK 的 header_namespace 的 cmake?

BUCK 构建工具允许我为库定义标头命名空间。例如,如果我有一个名为 libA 的库,其目录结构如下:

我可以将库上的 header_namespace 设置为,例如examples/liba,这样在使用 libA 的单独项目中,我可以:

这很好,因为它允许我在我的项目中保持一个简化的目录结构,同时也让我的包含以一种更具可读性的方式进行组织。

CMake 是否提供这样的功能?我还没有找到类似的东西。我的目标是拥有 BUCK 和 CMake 构建文件,以便更容易在没有 java(BUCK 的依赖项之一)的系统上构建。

0 投票
0 回答
283 浏览

mingw - 如何使用 Buck 中的 mingw 编译器将共享的 cxx_library 链接到 cxx_binary?

我正在尝试使用 Buck 交叉编译 Windows 共享库和链接到此共享库的二进制文件。我在以下位置设置工具链路径.buckconfig

这是BUCK文件:

foo.c

bar.c

bar.h

当我这样做时buck build //:foo,我收到/usr/local/bin/i686-w64-mingw32-ld: unrecognised emulation mode: ap错误(由于-map选项传递给链接器,Mac Os 链接器有它,但 GNU 链接器没有,它有-Map)。

当我添加

.buckconfig,我明白了java.lang.UnsupportedOperationException at com.facebook.buck.cxx.WindowsLinker.origin(WindowsLinker.java:88)。要么不支持,要么WINDOWS意味着 msvc 工具。

.dll是否可以使用 Buck构建 Windows 二进制文件和s?怎么做?(我不想在 Windows 上运行 Buck,用 mingw 或 mingw-w64 交叉编译就可以了)。

更新:我能够通过以下方式使其工作:

  1. 设置(文档linker_platform = GNU.buckconfig没有提到这样的选项,仅在issue中)
  2. 设置ld…-gcc而不是…-ldin .buckconfig。直接调用时ld,不支持gcc前端调用时可用的部分参数。

但是,这不是正确的解决方案:它创建没有扩展名的 PE 文件,动态链接到具有.dylib扩展名的文件。这个可执行文件可以用 Wine 运行,它会加载动态库,但这些设置仍然不正确。