@@ -121,6 +121,8 @@ def build_requirements(self):
121121 def config_options (self ):
122122 if self .settings .os == "Windows" :
123123 del self .options .fPIC
124+ if self .settings .os == "Emscripten" :
125+ self .options .threading = "std" # Default to a supported option
124126
125127 def configure (self ):
126128 if self .options .shared :
@@ -164,14 +166,17 @@ def deploy(self):
164166 copy (self , "*" , src = os .path .join (self .package_folder , "bin" ), dst = self .install_folder )
165167
166168 def package (self ):
167- copy (self , pattern = "libnest2d_js*" , src = os .path .join (self .build_folder , "libnest2d_js" ),
168- dst = os .path .join (self .package_folder , "bin" ))
169- copy (self , f"*.d.ts" , src = self .build_folder , dst = os .path .join (self .package_folder , "bin" ), keep_path = False )
170- copy (self , f"*.js" , src = self .build_folder , dst = os .path .join (self .package_folder , "bin" ), keep_path = False )
171- copy (self , f"*.wasm" , src = self .build_folder , dst = os .path .join (self .package_folder , "bin" ), keep_path = False )
172169 packager = AutoPackager (self )
173170 packager .run ()
174171
172+ # Specifically handle the Emscripten assets
173+ if self .settings .os == "Emscripten" :
174+ bin_dir = os .path .join (self .package_folder , "bin" )
175+ build_dir = self .build_folder
176+ copy (self , "libnest2d_js.js" , build_dir , bin_dir )
177+ copy (self , "libnest2d_js.wasm" , build_dir , bin_dir )
178+ copy (self , "*.d.ts" , build_dir , bin_dir , keep_path = False )
179+
175180 # Remove the header files from options not used in this package
176181 if self .options .geometries != "clipper" :
177182 files .rmdir (self , os .path .join (self .package_folder , "include" , "libnest2d" , "backends" , "clipper" ))
@@ -192,3 +197,6 @@ def package_info(self):
192197 # npm package json for Emscripten builds
193198 if self .settings .os == "Emscripten" or self .options .get_safe ("with_js_bindings" , False ):
194199 self .python_requires ["npmpackage" ].module .conf_package_json (self )
200+ # Expose the path to the JS/WASM assets for consumers
201+ js_asset_path = os .path .join (self .package_folder , "bin" )
202+ self .conf_info .define ("user.nest2d:js_path" , js_asset_path )
0 commit comments