mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-07 07:02:53 +03:00
jom (parallel nmake) build for openssl windows
Summary: X-link: https://github.com/facebookincubator/zstrong/pull/1084 openssl build on windows is slow due to nmake being single threaded fortunately the Qt developers had the same problem and produced jom - a nmake compatible make that adds the /j<parallelism> flag add a jom manifest and use it for the openssl build on windows Reviewed By: bigfootjon Differential Revision: D66818562 fbshipit-source-id: 88938dbc862da18ae7f75df51aa99bb669aae71a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
cd821146ab
commit
8f72b80c14
@@ -1165,9 +1165,14 @@ class OpenSSLBuilder(BuilderBase):
|
|||||||
perl = typing.cast(str, path_search(env, "perl", "perl"))
|
perl = typing.cast(str, path_search(env, "perl", "perl"))
|
||||||
|
|
||||||
make_j_args = []
|
make_j_args = []
|
||||||
|
extra_args = []
|
||||||
if self.build_opts.is_windows():
|
if self.build_opts.is_windows():
|
||||||
make = "nmake.exe"
|
# jom is compatible with nmake, adds the /j argument for parallel build
|
||||||
|
make = "jom.exe"
|
||||||
|
make_j_args = ["/j%s" % self.num_jobs]
|
||||||
args = ["VC-WIN64A-masm", "-utf-8"]
|
args = ["VC-WIN64A-masm", "-utf-8"]
|
||||||
|
# fixes "if multiple CL.EXE write to the same .PDB file, please use /FS"
|
||||||
|
extra_args = ["/FS"]
|
||||||
elif self.build_opts.is_darwin():
|
elif self.build_opts.is_darwin():
|
||||||
make = "make"
|
make = "make"
|
||||||
make_j_args = ["-j%s" % self.num_jobs]
|
make_j_args = ["-j%s" % self.num_jobs]
|
||||||
@@ -1200,11 +1205,14 @@ class OpenSSLBuilder(BuilderBase):
|
|||||||
"no-unit-test",
|
"no-unit-test",
|
||||||
"no-tests",
|
"no-tests",
|
||||||
]
|
]
|
||||||
|
+ extra_args
|
||||||
)
|
)
|
||||||
|
# show the config produced
|
||||||
|
self._run_cmd([perl, "configdata.pm", "--dump"], env=env)
|
||||||
make_build = [make] + make_j_args
|
make_build = [make] + make_j_args
|
||||||
self._run_cmd(make_build)
|
self._run_cmd(make_build, env=env)
|
||||||
make_install = [make, "install_sw", "install_ssldirs"]
|
make_install = [make, "install_sw", "install_ssldirs"]
|
||||||
self._run_cmd(make_install)
|
self._run_cmd(make_install, env=env)
|
||||||
|
|
||||||
|
|
||||||
class Boost(BuilderBase):
|
class Boost(BuilderBase):
|
||||||
|
15
build/fbcode_builder/manifests/jom
Normal file
15
build/fbcode_builder/manifests/jom
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# jom is compatible with MSVC nmake, but adds the /j<number of jobs> argment which
|
||||||
|
# speeds up openssl build a lot
|
||||||
|
[manifest]
|
||||||
|
name = jom
|
||||||
|
|
||||||
|
# see https://download.qt.io/official_releases/jom/changelog.txt for latest version
|
||||||
|
[download.os=windows]
|
||||||
|
url = https://download.qt.io/official_releases/jom/jom_1_1_4.zip
|
||||||
|
sha256 = d533c1ef49214229681e90196ed2094691e8c4a0a0bef0b2c901debcb562682b
|
||||||
|
|
||||||
|
[build.os=windows]
|
||||||
|
builder = nop
|
||||||
|
|
||||||
|
[install.files.os=windows]
|
||||||
|
. = bin
|
@@ -31,4 +31,5 @@ builder = openssl
|
|||||||
subdir = openssl-3.0.15
|
subdir = openssl-3.0.15
|
||||||
|
|
||||||
[dependencies.os=windows]
|
[dependencies.os=windows]
|
||||||
|
jom
|
||||||
perl
|
perl
|
||||||
|
Reference in New Issue
Block a user