Skip to content

Commit d674496

Browse files
committed
Use finalize and remove unneded environment script
1 parent d7c2a3d commit d674496

File tree

7 files changed

+21
-51
lines changed

7 files changed

+21
-51
lines changed

conan_config/profiles/emsdk/.base

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ compiler.cppstd=17
55
compiler.libcxx=libc++
66
# Choose between both types of multithreading support (or none)
77
# compiler.threads=<posix|wasm_workers>
8-
compiler.version=4.0.10
8+
compiler.version=4.0.21
99
os=Emscripten
1010

1111
[tool_requires]
1212
ninja/[*]
13-
emsdk/4.0.10
13+
emsdk/4.0.21
1414

1515
[conf]
1616
tools.build:exelinkflags+=['-sALLOW_MEMORY_GROWTH=1']

conan_config/profiles/emsdk/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ This repository includes the following profiles:
8383

8484
⚠️ WASM64 caveats:
8585

86-
The latest node version `emsdk/4.0.10` installs is the `node/22.16.0`, which can not run directly wasm64 binaries.
86+
The latest node version `emsdk/4.0.21` installs is the `node/22.16.0`, which can not run directly wasm64 binaries.
8787
Also, it is not valid to compile wasm64 with `-sMIN_NODE_VERSION=221600`, see following error:
8888
```
8989
em++: warning: MIN_NODE_VERSION=221600 is not compatible with MEMORY64 (230000 or above required) [-Wcompatibility]

conan_config/profiles/emsdk/local

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
include(./.base)
22

33
[platform_tool_requires]
4-
emsdk/4.0.10
4+
emsdk/4.0.21
55

66
[conf]
77
tools.build:compiler_executables={'c':'emcc', 'cpp':'em++'}

conan_config/profiles/emsdk/wasm64

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ arch=wasm64
99
tools.build:exelinkflags+=['-sMAXIMUM_MEMORY=16GB', '-sINITIAL_MEMORY=16GB', '-sASSERTIONS']
1010
tools.build:sharedlinkflags+=['-sMAXIMUM_MEMORY=16GB', '-sINITIAL_MEMORY=16GB', '-sASSERTIONS']
1111

12-
# Node version from emsdk/4.0.10 can not run a wasm64 binary. See more details in README
12+
# Node version from emsdk/4.0.21 can not run a wasm64 binary. See more details in README

recipes/emsdk/all/conandata.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
sources:
2-
"4.0.10":
3-
url: "https://github.com/emscripten-core/emsdk/archive/4.0.10.tar.gz"
4-
sha256: "2497b55ddbba9bf9be2d18cfca3e973d40a0cfaa8d18f6caacb882a65b2faf1c"
2+
"4.0.21":
3+
url: "https://github.com/emscripten-core/emsdk/archive/4.0.21.tar.gz"
4+
sha256: "af986f9594c68df24a9dc70ba9849eec1e9fbe8ddc2e797d5458cadb58b335b7"

recipes/emsdk/all/conanfile.py

Lines changed: 12 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
from pathlib import Path
33

44
from conan import ConanFile
5-
from conan.tools.build import cross_building
6-
from conan.tools.env import Environment, VirtualBuildEnv
5+
from conan.tools.env import VirtualBuildEnv
76
from conan.tools.files import chdir, copy, get
87
from conan.tools.layout import basic_layout
98

@@ -19,39 +18,17 @@ class EmSDKConan(ConanFile):
1918
license = "MIT"
2019
package_type = "application"
2120
settings = "os", "arch"
22-
upload_policy = "skip"
23-
build_policy = "missing"
2421

2522
def layout(self):
2623
basic_layout(self, src_folder="src")
2724

2825
def source(self):
2926
get(self, **self.conan_data["sources"][self.version], destination=self.source_folder, strip_root=True)
3027

31-
@property
32-
def _relative_paths(self):
33-
return ["bin", os.path.join("bin", "upstream", "emscripten")]
34-
35-
@property
36-
def _paths(self):
37-
return [os.path.join(self.package_folder, path) for path in self._relative_paths]
38-
39-
@property
40-
def _emsdk(self):
41-
return os.path.join(self.package_folder, "bin")
42-
4328
@property
4429
def _emscripten(self):
4530
return os.path.join(self.package_folder, "bin", "upstream", "emscripten")
4631

47-
@property
48-
def _em_config(self):
49-
return os.path.join(self.package_folder, "bin", ".emscripten")
50-
51-
@property
52-
def _em_cache(self):
53-
return os.path.join(self.package_folder, "bin", ".emscripten_cache")
54-
5532
@property
5633
def _node_path(self):
5734
subfolders = [path for path in (Path(self.package_folder) / "bin" / "node").iterdir() if path.is_dir()]
@@ -77,28 +54,21 @@ def build(self):
7754
def package(self):
7855
copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
7956
copy(self, "*", src=self.source_folder, dst=os.path.join(self.package_folder, "bin"))
80-
if not cross_building(self):
81-
env = Environment()
82-
env.prepend_path("PATH", self._paths)
83-
env.define_path("EMSDK", self._emsdk)
84-
env.define_path("EMSCRIPTEN", self._emscripten)
85-
env.define_path("EM_CONFIG", self._em_config)
86-
env.define_path("EM_CACHE", self._em_cache)
87-
with env.vars(self, scope="emsdk").apply():
88-
self.run("which embuilder")
89-
self.run("embuilder build MINIMAL", env=["conanrun"]) # force cache population
90-
# Avoid cache failures in case this package is uploaded as paths in sanity.txt are absolute
91-
sanity_path = os.path.join(self._em_cache, "sanity.txt")
92-
if os.path.exists(sanity_path):
93-
os.remove(sanity_path)
57+
58+
def finalize(self):
59+
copy(self, "*", src=self.immutable_package_folder, dst=self.package_folder)
60+
embuilder = os.path.join(
61+
self._emscripten, "embuilder" if self.info.settings.os != "Windows" else "embuilder.bat"
62+
)
63+
self.run(f"{embuilder} build MINIMAL")
9464

9565
def _define_tool_var(self, value):
9666
suffix = ".bat" if self.settings.os == "Windows" else ""
9767
path = os.path.join(self._emscripten, f"{value}{suffix}")
9868
return path
9969

10070
def package_info(self):
101-
self.cpp_info.bindirs = self._relative_paths + [self._node_path]
71+
self.cpp_info.bindirs = ["bin", os.path.join("bin", "upstream", "emscripten"), self._node_path]
10272
self.cpp_info.includedirs = []
10373
self.cpp_info.libdirs = []
10474
self.cpp_info.resdirs = []
@@ -119,10 +89,10 @@ def package_info(self):
11989
)
12090
self.conf_info.prepend("tools.cmake.cmaketoolchain:user_toolchain", toolchain)
12191

122-
self.buildenv_info.define_path("EMSDK", self._emsdk)
92+
self.buildenv_info.define_path("EMSDK", os.path.join(self.package_folder, "bin"))
12393
self.buildenv_info.define_path("EMSCRIPTEN", self._emscripten)
124-
self.buildenv_info.define_path("EM_CONFIG", self._em_config)
125-
self.buildenv_info.define_path("EM_CACHE", self._em_cache)
94+
self.buildenv_info.define_path("EM_CONFIG", os.path.join(self.package_folder, "bin", ".emscripten"))
95+
self.buildenv_info.define_path("EM_CACHE", os.path.join(self.package_folder, "bin", ".emscripten_cache"))
12696

12797
compiler_executables = {
12898
"c": self._define_tool_var("emcc"),

recipes/emsdk/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
versions:
2-
"4.0.10":
2+
"4.0.21":
33
folder: all

0 commit comments

Comments
 (0)