问题标签 [omake]
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.
c++ - 带有子目录的 OMake 编译
纵观 OMake 文档,似乎每当使用来自子目录的源时——它们总是首先编译成静态库。这总是必要的吗?我可以在不构建库的情况下编译和链接所有内容吗?我一直在尝试为此编写 OMakefiles,但没有成功。
示例目录结构:
我的项目:OMakeroot、OMakefile、main.cpp
我的项目/标题:file1.h
我的项目/src:file1.cpp
myproject OMakeroot 内容:
开放构建/C
.子目录:。
myproject Omakefile 内容:
CXX = g++
CXXFLAGS = -墙
包括 += 标头 src
CXXProgram(myapp, main file1)
headers 和 src 目录中的 OMakefiles 是空的,不确定其中是否需要任何内容。
当我运行 omake myapp 时出现错误:
不知道如何构建“myapp”所需的“file1.o”
post-build - 使用 omake 进行构建后测试
有没有办法将构建后命令添加到 omakefile?我希望它在每次构建成功时自动运行单元测试,但不确定执行此操作的最佳方法。
build-system - 构建目标列表生成器时如何在 OMake 中处理具有未知目标的构建规则
我有一个使用 OMake 构建系统的项目,我正在尝试处理一个相当棘手的极端情况。
我有一些定义文件和一个可以获取这些定义文件并创建 GraphViz 文件的工具。但是有两个问题:
- 每个定义文件可以产生多个图形,它可以产生的图形列表被编码在文件中。我的转储工具确实有一个
-list
选项,它列出了定义文件将生成的所有图形。 - 此转储工具内置于源代码树中。
- 我希望这个列表在 OMakefile 中可用,这样我就可以使用其他规则将 DOT 文件转换为 SVG,并且有一个依赖于所有 SVG 的虚假目标(目标:构建我所有图形的 SVG 描述的单个构建命令)。
如果我只有第一个问题,那就很容易了——我会运行该工具来构建一个列表,然后使用该列表来构建一个目标,该目标调用转储程序来输出 GraphViz 文件。但是,我宁愿在需要之前强制构建转储工具。
如果是这样make
,我只会make
递归地运行来构建转储工具。但是,OMake 不允许递归调用,并且该build
函数只能从osh
.
有什么建议可以很好地解决这个问题吗?
msbuild - omake 和 nmake 的区别
请告诉我omake和nmake之间的区别。当我们推出 clearcase 时,我们希望从 omake 迁移到 nmake。请解释从omake迁移到nmake的过程?另外,如果有一些并发症,请告诉我。
path - 如何确保在 OMake 中引用了目录名称?
我有一套相对复杂的 OMake 文件,专为在特定平台上进行交叉编译而设计。我的源代码是 C++。
我是从 Windows 构建的,我需要将包含名称中包含空格的目录传递给编译器。插入到命令行中以编译文件的包含字符串的创建方式是:
在 OMake 文件中的其他一些地方,我有如下一行:
在命令行的中间,这扩展为:
我希望它扩展到:
如果可能的话,除了“INCLUDES += ...”行之外,我不想更改任何内容,尽管修改该文件中的其他内容也可以。我不想更改 PREFIXED_INCLUDES 的定义之类的事情,因为它位于一组 OMake 文件中,这些文件是 SDK 的一部分,可能会在我下面发生变化。这可能吗?如果是这样,我该怎么做?如果不是,我可以通过什么方式确保通过修改小makefile代码(希望是一行)来引用其中包含空格的内容?
makefile - 我的 Makefile 中有硬编码路径 - 如何使用 ocamlfind 消除这些路径?(或如何使用 ocamlbuild 或 omake 代替)
我正在尝试构建一个需要 camlp4 扩展的 ocaml 项目(在本例中为 pa_deriving)。这是我的Makefile:
这个 Makefile 有效;它完成了工作,但问题是我上面有硬编码的路径,例如: /home/p/godi-3.12.1.0/lib/ocaml/site-lib/deriving-ocsigen/pa_deriving.cma 指的是我的 OCaml 的 godi 安装。我想摆脱这些,以便我可以分发代码和 Makefile,以便任何人都可以使用它进行构建。
我应该为此使用 omake 还是 ocamlbuild ?我想使用 omake 并且为此使用了 OMakefile ,但没有任何工作 - 任何建议将不胜感激。
更新:我尝试将 ocamlbuild 与以下 _tags 文件一起使用:
使用以下 ocamlbuild 命令:ocamlbuild -use-ocamlfind test_logic.native -classic-display
我得到:
我需要在 _tags 文件中添加什么来纠正这个问题?
makefile - 是否有“omake -P”(服务器模式)的替代方案?
omake 构建系统具有称为“服务器模式”的令人敬畏的功能,使用命令行开关“omake -P”调用。这将导致 omake 监视文件系统的任何文件更改——当有文件更改时,它将启动适当的构建操作。
不幸的是,omake 似乎不再得到积极维护,并且 -P 功能在 Ubuntu 12.04 上存在严重问题。(如果有人关心,我可以详细讨论这些)。
有谁知道像 make/omake 这样具有类似于 omake -P 的功能的构建系统?
visual-studio-2010 - 如何为 Visual Studio 2010 项目使用 Omake 构建系统
我有一个项目,在VS-2010
. 并且运行良好。但我想make-file
通过使用创建一个Omake
. 如何在Omake
. 我已经浏览了 的所有文档Omake
,但没有说明如何制作。我的VS-2010
项目也包含.c, .cpp, .h, .rc
MFC many subdirectories
。
regex - 试图在 omake 中获得不贪婪的正则表达式
我在一个 omake 文件中工作,并有一个字符串表示一个路径。我正在尝试删除第一个目录。
这是我的字符串:
我写了这个正则表达式:
但结果是 util. 虽然我想收到的是这个字符串:\Common\noa\common\util
我尝试使用"?"
不贪婪,但在这里不起作用(omake文件)
有人知道怎么做吗?
ocaml - (OCamlfind) 构建依赖于 Core 的库
我正在尝试构建一个依赖于 Core 和 Core_extended 的小型库。我按照在 OCaml 中在哪里放置共享实用程序模块下的说明进行操作?并在 ocamlfind 中安装了库(在 META 文件中声明对 Core_extended 和 Core 的依赖)。现在在顶层使用它可以正常工作。
但是,当我尝试使用此库构建测试文件时,它不会自动检测到 Core 和 Core_extend 的依赖关系。使用这些编译指令
ocamlfind ocamlopt -c -g -package my_lib -thread -o file.cmx file.ml
ocamlfind ocamlopt -g -linkpkg -package my_lib -thread file.cmx -o file.native
我收到以下错误:
错误:没有为以下模块提供实现:
如果我使用额外的参数“-package core_extended”编译文件,那么它会编译,但是这是非常不切实际的。
有没有办法让这个依赖对编译过程透明,这样“-package my_lib”会自动加载到 Core 和 Core_extended 中?
编辑:这是我的元文件的内容:
编辑2:
在 META 文件中将“depends”重命名为“requires”解决了这个问题!