conda-forge / emscripten-feedstock

A conda-smithy repository for emscripten.
BSD 3-Clause "New" or "Revised" License
2 stars 6 forks source link

Installed NODE_JS path in .emscripten causing missing node.exe error on windows #31

Open Krande opened 2 months ago

Krande commented 2 months ago

Solution to issue cannot be found in the documentation.

Issue

Hey,

when attempting to compile using emscripten on windows, it seems like there's an issue with the node executable path. I get this error:

(ada-cpp:wasm) C:\Work\code\adacpp>emcc
emcc: warning: cannot check node version: [WinError 2] The system cannot find the file specified [-Wversion-check]
emcc: warning: LLVM version for clang executable "C:/Work/code/adacpp/.pixi/envs/wasm/Library/bin\clang.exe" appears incorrect (seeing "18.1", expected "19") [-Wversion-check]
shared:INFO: (Emscripten: Running sanity checks)
emcc: error: the configured node executable (['D:\\bld\\emscripten_1725438987067\\_h_env\\node.EXE']) does not seem to work, check the paths in C:\Work\code\adacpp\.pixi\envs\wasm\Library\lib\emscripten-3.1.58\.emscripten ([WinError 2] The system cannot find the file specified)

When inspecting the .emscripten file I see this:

# Location of the node binary to use for running the JS parts of the compiler.
# This engine must exist, or nothing can be compiled.
NODE_JS = 'D:\\bld\\emscripten_1725438987067\\_h_env\\node.EXE' # executable

Where I am guessing NODE_JS is the path used by the azure devops runners?

By simply updating the NODE_JS path locally emcc and em++ seems to work as expected

Installed packages

(ada-cpp:wasm) C:\Work\code\adacpp>mamba list
# packages in environment at C:\Work\code\adacpp\.pixi\envs\wasm:
#
# Name                    Version                   Build  Channel
binaryen                  118                  he0c23c2_1    conda-forge
bzip2                     1.0.8                h2466b09_7    conda-forge
ca-certificates           2024.8.30            h56e8100_0    conda-forge
cairo                     1.18.0               h32b962e_3    conda-forge
cgal-cpp                  5.6.1                hb7ee40c_1    conda-forge
clang                     18.1.8          default_hec978fc_4    conda-forge
clang-18                  18.1.8          default_hec7ea82_4    conda-forge
clangxx                   18.1.8          default_hf03c572_4    conda-forge
cmake                     3.30.3               h400e5d1_0    conda-forge
eigen                     3.4.0                h91493d7_0    conda-forge
emscripten                3.1.58               hc790b64_3    conda-forge
expat                     2.6.3                he0c23c2_0    conda-forge
fltk                      1.3.9                h27fc217_1    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_2    conda-forge
fontconfig                2.14.2               hbde0cde_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freeimage                 3.18.0              h2b56e36_20    conda-forge
freetype                  2.12.1               hdaf720e_2    conda-forge
gmsh                      4.12.2               hcc95203_0    conda-forge
hdf5                      1.14.3          nompi_h2b43c12_105    conda-forge
icu                       75.1                 he0c23c2_0    conda-forge
ifcopenshell              0.8.0           py312h2a1a271_0    conda-forge
imath                     3.1.11               h12be248_0    conda-forge
intel-openmp              2024.2.1          h57928b3_1083    conda-forge
jxrlib                    1.1                  hcfcfb64_3    conda-forge
krb5                      1.21.3               hdf4eb48_0    conda-forge
lcms2                     2.16                 h67d730c_0    conda-forge
lerc                      4.0.0                h63175ca_0    conda-forge
libaec                    1.1.3                h63175ca_0    conda-forge
libblas                   3.9.0              23_win64_mkl    conda-forge
libboost                  1.84.0               h444863b_6    conda-forge
libboost-devel            1.84.0               h91493d7_6    conda-forge
libboost-headers          1.84.0               h57928b3_6    conda-forge
libcblas                  3.9.0              23_win64_mkl    conda-forge
libcurl                   8.9.1                h18fefc2_0    conda-forge
libdeflate                1.21                 h2466b09_0    conda-forge
libexpat                  2.6.3                he0c23c2_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libglib                   2.80.3               h7025463_2    conda-forge
libhwloc                  2.11.1          default_h8125262_1000    conda-forge
libiconv                  1.17                 hcfcfb64_2    conda-forge
libintl                   0.22.5               h5728263_3    conda-forge
libjpeg-turbo             3.0.0                hcfcfb64_1    conda-forge
liblapack                 3.9.0              23_win64_mkl    conda-forge
libllvm18                 18.1.8               h2a44499_2    conda-forge
libpng                    1.6.43               h19919ed_0    conda-forge
libraw                    0.21.1               h5557f11_2    conda-forge
libsqlite                 3.46.1               h2466b09_0    conda-forge
libssh2                   1.11.0               h7dfc565_0    conda-forge
libtiff                   4.6.0                hb151862_4    conda-forge
libuv                     1.48.0               hcfcfb64_0    conda-forge
libwebp-base              1.4.0                hcfcfb64_0    conda-forge
libxcb                    1.16                 h013a479_1    conda-forge
libxml2                   2.12.7               h0f24e4e_4    conda-forge
libzlib                   1.3.1                h2466b09_1    conda-forge
lld                       18.1.8               hd91d51b_0    conda-forge
llvm-tools                18.1.8               h2a44499_2    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
mkl                       2024.1.0           h66d3029_694    conda-forge
mpfr                      4.2.1                h64bf75a_1    conda-forge
mpir                      3.0.0             he025d50_1002    conda-forge
msys2-conda-epoch         20160418                      1    conda-forge
nodejs                    22.8.0               h57928b3_0    conda-forge
numpy                     2.1.1           py312h49bc9c5_0    conda-forge
occt                      7.7.2           novtk_hdfb195f_101    conda-forge
openexr                   3.2.2                h72640d8_1    conda-forge
openjpeg                  2.5.2                h3d672ee_0    conda-forge
openssl                   3.3.2                h2466b09_0    conda-forge
pcre2                     10.44                h3d7b363_2    conda-forge
pixman                    0.43.4               h63175ca_0    conda-forge
pthread-stubs             0.4               hcd874cb_1001    conda-forge
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
python                    3.12.5          h889d299_0_cpython    conda-forge
python_abi                3.12                    5_cp312    conda-forge
rapidjson                 1.1.0.post20240409      he0c23c2_1    conda-forge
tbb                       2021.13.0            hc790b64_0    conda-forge
tinygltf                  2.8.21               hd8ed1ab_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tzdata                    2024a                h8827d51_1    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
vc                        14.3                h8a93ad2_20    conda-forge
vc14_runtime              14.40.33810         hcc2c482_20    conda-forge
vs2015_runtime            14.40.33810         h3bf8584_20    conda-forge
xorg-fixesproto           5.0               hcd874cb_1002    conda-forge
xorg-kbproto              1.0.7             hcd874cb_1002    conda-forge
xorg-libice               1.1.1                hcd874cb_0    conda-forge
xorg-libsm                1.2.4                hcd874cb_0    conda-forge
xorg-libx11               1.8.9                h0076a8d_1    conda-forge
xorg-libxau               1.0.11               hcd874cb_0    conda-forge
xorg-libxdmcp             1.1.3                hcd874cb_0    conda-forge
xorg-libxext              1.3.4                hcd874cb_2    conda-forge
xorg-libxfixes            5.0.3             hcd874cb_1004    conda-forge
xorg-libxrender           0.9.11               hcd874cb_0    conda-forge
xorg-renderproto          0.11.1            hcd874cb_1002    conda-forge
xorg-xextproto            7.3.0             hcd874cb_1003    conda-forge
xorg-xproto               7.0.31            hcd874cb_1007    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
zlib                      1.3.1                h2466b09_1    conda-forge
zstd                      1.5.6                h0ea2cb4_0    conda-forge

Environment info

(base) C:\Work\code\adacpp>conda info

     active environment : C:\Work\code\adacpp\.pixi\envs\wasm
    active env location : C:\Work\code\adacpp\.pixi\envs\wasm
            shell level : 1
       user config file : C:\Users\Kristoffer\.condarc
 populated config files : C:\Work\Miniforge3\.condarc
                          C:\Users\Kristoffer\.condarc
          conda version : 24.5.0
    conda-build version : not installed
         python version : 3.10.14.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.5.0=0
                          __cuda=12.6=0
                          __win=0=0
       base environment : C:\Work\Miniforge3  (writable)
      conda av data dir : C:\Work\Miniforge3\etc\conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : C:\Work\Miniforge3\pkgs
                          C:\Users\Kristoffer\.conda\pkgs
                          C:\Users\Kristoffer\AppData\Local\conda\conda\pkgs
       envs directories : C:\Work\Miniforge3\envs
                          C:\Users\Kristoffer\.conda\envs
                          C:\Users\Kristoffer\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/24.5.0 requests/2.31.0 CPython/3.10.14 Windows/10 Windows/10.0.22631 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8
          administrator : False
             netrc file : None
           offline mode : False
h-vetinari commented 2 months ago

There may be several issues, but you definitely need clang 19 (not sure if >= or exactly), which is currently only available when using -c conda-forge/label/llvm_rc.