首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多平台预制作脚本

多平台预制作脚本
EN

Stack Overflow用户
提问于 2015-06-16 22:48:17
回答 3查看 1.9K关注 0票数 3

我是Node9的作者,这是一个托管的混合操作系统,它将Inferno和LuaJIT结合起来创建一个交互式的分布式开发环境。请参阅此处的项目:https://github.com/jvburnes/node9

我创建了一个基本的4.x预制作脚本来编译OSX的所有依赖项和主要源代码,但是现在人们要求为Linux、BSD和Windows构建配置。我有这样的代码,我想要创建预制作配置,以便在这些操作系统上构建和运行Node9。我需要设置库并包括搜索路径、编译器名称以及每个平台的定义。

  1. 有人能告诉我一个好的多平台预制作脚本吗?
  2. 我是使用"premake“并以某种方式感知本机平台,还是需要将目标平台显式地放置在命令行中,并在和platform部分中引用该平台?
  3. 我听说premake4.x是遗留的,而premake5.x是未来的解决方案。它是否稳定且可用,足以为所有这些平台构建?

我知道这是很多问题,但我想做的对。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-06-17 08:55:11

我不是多平台编译方面的专家,但以下是一些可能对您有所帮助的东西。首先,我强烈建议您切换到Premake5。它是稳定的,社区对它的工作是非常活跃的,并且您有对模块(Android :p)和许多其他很酷的特性的支持。

至于你的问题:

  1. 我做不到,但基本上应该像这样简单: 解决方案"multiplatform_solution“配置{”调试“、”发布“、”任何“} --现在,您可以定义您支持的平台{ "win32”、"win64“、"macos”、"linux86“、"linux64",项目"some_project“--现在您可以在每个平台上配置一些东西: filter {”platforms:win32 32“} --一些定义,一些特定的libs路径,特定于win 32定义{ "WIN32“}筛选器{”平台: macos“} -- macos特定配置定义{ "you_fool_”}-是的,它是一个巨魔:p -等--并像往常一样配置其余的
  2. 在调用premake gmake时,只需告诉premake为gmake构建一个makefile。如果您在Windows、MacOS和Linux上都有premake gmake,那么您可以在所有平台上使用premake gmake。当您实际构建时,您只需要指定配置和平台。我对gmake还不太了解,但看起来可能是这样的:gmake config=release platform=linux32
  3. 正如我所说的,您可能想要更新到Premake 5。我认为它足够稳定,如果出现问题,您可以在这里问问题:)
票数 2
EN

Stack Overflow用户

发布于 2015-07-16 16:44:01

有人能告诉我一个好的多平台预制作脚本吗?

如果您查看预制作源代码包,您将看到它在命名为build/gmake.windowsbuild/gmake.macosx的目录中包含多个makefile,每个平台都包含一个makefile。这是一个选择。

另一种方法是将所有内容放在一个Makefile中,如他的脚本中建议的@Citron,并在进行构建时在命令行上选择所需的配置。在这种情况下,构建命令应该如下所示:

代码语言:javascript
复制
$ make config=debug_win32

如果在预先生成的Makefile上运行help目标,它将给出所有有效配置选项的列表:

代码语言:javascript
复制
$ make help

或者,如果您不介意要求开发人员在本地安装预制件,他们可以在构建之前为他们的环境生成一个定制的makefile。在这种情况下,您的脚本可能如下所示:

代码语言:javascript
复制
solution "MySolution"
   configuration { "Debug", "Release" }

   filter { "system:Windows" }
      -- windows specific stuff

   filter { "system:MacOSX" }
      -- mac specific stuff

   filter { "system:Linux" }
      -- etc.

在本例中,运行premake5 gmake将创建针对当前环境的makefile。

票数 1
EN

Stack Overflow用户

发布于 2015-07-09 16:19:57

这是相当接近。我认为一个更接近的答案是在"system:“上使用过滤器。我认为使用premake生成多平台make与使用它构建当前平台makefile之间的区别。

这是目前为止最接近的答案,所以我会投赞成票的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30879561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档