问题标签 [fpmake]

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 回答
2871 浏览

delphi - Free Pascal 可以从 Apache Maven 之类的东西中受益吗?

Apache Maven是 Java 开源生态圈中非常流行的构建和依赖管理工具。我做了一些测试,看看它是否可以处理编译的Free Pascal / Delphi 单元,并发现它很容易实现。所以有可能

  • 在公共 Maven 存储库中发布为 Free Pascal(或 Delphi)预编译的开源库
  • 在此存储库中包含包含依赖信息的元数据
  • 在命令行使用Maven从公共仓库下载开源库,并自动解析所有依赖
  • 本地存储库,作为代理,可用于缓存常用的二进制文件
  • 自动校验和生成和验证(由 Maven 提供)将降低下载损坏的二进制文件的风险
  • 源代码甚至文档文件都可以随二进制文件一起提供
  • 可以提供带有或不带有调试信息的二进制文件
  • HudsonTeamCityCruiseControl等持续集成服务器可用于在将更改提交到源代码控制系统时构建项目,并通知开发人员构建错误

这种依赖管理方式对于使用许多具有复杂依赖关系的第三方库的开源项目可能非常有益。它将避免使用错误版本引起的典型冲突。

对于开发人员来说,编辑和构建项目的工作流程将减少到最低限度:

  • 从内部版本控制系统签出项目源代码
  • 编辑源文件
  • 运行mvn package以自动下载所有必需的第三方库(预编译单元)(如果它们尚未在工作站的本地存储库中)
  • 编译运行

项目文件夹中唯一需要的 Apache Maven 附加文件是包含项目信息的 POM.XML 文件。

编辑:虽然 Maven 可用于一些必需的任务,但在本机 Free Pascal 中实现像 Maven 这样的解决方案将有一些优势:不需要 Java SDK,支持所有可以使用 Free Pascal 的开发平台,在 Pascal 中进行维护和插件开发。

使用类似 Maven 的工具仅对开源项目没有帮助 - 商业项目也可以以相同的方式访问和使用公共 Maven 存储库中的工件。

Maven 特性列在http://maven.apache.org/maven-features.html


更新:

一个用例可能是 Lazarus 的构建,其中 Maven 将下载所有必需的库并使用必要的构建路径参数调用编译器。对较低级别的依赖项的更改将自动传播到父构建。

可能的好处:

  • 设置新工作站所需的时间更少,无需手动安装第三方库
  • 更少由错误库版本引起的错误,检测版本冲突(例如,如果两个库依赖于第三个库的不同版本)
  • 内部创建的工件可以添加到本地 maven 存储库并在开发人员和项目之间共享,所有工件与元数据的中央存储
  • 构建是可重现的,只需使用相同的源和项目元数据文件 (pom.xml)
  • 可以减少开发时间并增加项目稳定性

更新#2:FPMake

Free Pascal的FPMake构建系统似乎是一个很有潜力的工具,在许多细节上它与 Maven 非常相似:

  • FPMake 是为 FPC 开发和分发的基于 Pascal 的构建系统
  • FPMake 通过定义一些限制(如标准目录)来标准化构建
  • 该命令fppkg <packagename>将在数据库中查找包,将其解压缩,然后编译 fpmake.pp 并运行它
  • 它有标准的构建目标(清理、构建、安装……)
  • 它可以创建一个适合导入存储库的“清单”文件(如mvn deploymvn install),清单是一个 XML 文件,看起来非常类似于 Maven 中的 pom.xml:

FPMake清单文件:

0 投票
1 回答
217 浏览

freepascal - fpmake.pp 使用了什么,现在还在使用吗?

我用过一次,不是很好,因为我发现很难通过一些像样的示例/文档获得,但这是完成环境的好方法。

它仍然是一个标准还是被放弃了?

我在哪里可以找到初学者的操作方法和高级方法,以便我可以在使用中成长?

谢谢。

0 投票
0 回答
101 浏览

python - fpm --python-install-data 不起作用

我正在尝试为我的 python 项目获取数据文件以安装在特定位置。

我正在尝试--python-install-data location-to-install-data-files生成 rpm 的 fpm 命令中的选项。当我这样做时rpm -i package-path.rpm,我希望将数据文件安装在 fpm 命令中指定的位置。然而这并没有发生。可能是什么问题呢?

0 投票
1 回答
70 浏览

rpmbuild - fpm:发布打包二进制文件

使用 Fpm 打包的二进制文件似乎与原始文件具有不同的校验和。结果无法执行。我阅读了整个文档并尝试“玩”压缩格式,但没有成功。