Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[draco] build failure #30732

Closed
bitsauce opened this issue Apr 8, 2023 · 2 comments
Closed

[draco] build failure #30732

bitsauce opened this issue Apr 8, 2023 · 2 comments
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team.

Comments

@bitsauce
Copy link

bitsauce commented Apr 8, 2023

Package: draco[core]:wasm32-emscripten -> 1.5.3

Host Environment

  • Host: x64-windows
  • Compiler: Clang 17.0.0
  • vcpkg-tool version: 2023-02-16-12e657924d99511514c0287ca5ce46882d3657c7
    vcpkg-scripts version: 217194c 2023-04-07 (20 hours ago)

Steps to reproduce the behavior

1. Install latest emsdk (3.1.35) and run `source emsdk_env.sh`
2. Run `./vcpkg install draco --triplet wasm32-emscripten`

Failure logs

[1/2] "C:/Program Files/CMake/bin/cmake.exe" -E chdir ".." "C:/Program Files/CMake/bin/cmake.exe" "C:/Programming/vcpkg/buildtrees/draco/src/1.5.3-f6cecd9b35.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/Programming/vcpkg/packages/draco_wasm32-emscripten" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DCMAKE_SYSTEM_NAME=Emscripten" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" "-DVCPKG_TARGET_TRIPLET=wasm32-emscripten" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Programming/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=wasm32" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Programming/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Programming/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
FAILED: ../CMakeCache.txt 
"C:/Program Files/CMake/bin/cmake.exe" -E chdir ".." "C:/Program Files/CMake/bin/cmake.exe" "C:/Programming/vcpkg/buildtrees/draco/src/1.5.3-f6cecd9b35.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/Programming/vcpkg/packages/draco_wasm32-emscripten" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DCMAKE_SYSTEM_NAME=Emscripten" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" "-DVCPKG_TARGET_TRIPLET=wasm32-emscripten" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Programming/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=wasm32" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Programming/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Programming/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
-- Found PythonInterp: C:/Python310/python.exe (found version "3.10.2") 
CMake Error at cmake/draco_emscripten.cmake:27 (message):
  The EMSCRIPTEN environment variable must be set.  See README.md.
Call Stack (most recent call first):
  cmake/draco_build_definitions.cmake:175 (draco_check_emscripten_environment)
  CMakeLists.txt:80 (draco_set_build_definitions)


-- Configuring incomplete, errors occurred!
See also "C:/Programming/vcpkg/buildtrees/draco/wasm32-emscripten-rel/CMakeFiles/CMakeOutput.log".
[2/2] "C:/Program Files/CMake/bin/cmake.exe" -E chdir "../../wasm32-emscripten-dbg" "C:/Program Files/CMake/bin/cmake.exe" "C:/Programming/vcpkg/buildtrees/draco/src/1.5.3-f6cecd9b35.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=C:/Programming/vcpkg/packages/draco_wasm32-emscripten/debug" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DCMAKE_SYSTEM_NAME=Emscripten" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" "-DVCPKG_TARGET_TRIPLET=wasm32-emscripten" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Programming/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=wasm32" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Programming/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Programming/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
FAILED: ../../wasm32-emscripten-dbg/CMakeCache.txt 
"C:/Program Files/CMake/bin/cmake.exe" -E chdir "../../wasm32-emscripten-dbg" "C:/Program Files/CMake/bin/cmake.exe" "C:/Programming/vcpkg/buildtrees/draco/src/1.5.3-f6cecd9b35.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=C:/Programming/vcpkg/packages/draco_wasm32-emscripten/debug" "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" "-DCMAKE_SYSTEM_NAME=Emscripten" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" "-DVCPKG_TARGET_TRIPLET=wasm32-emscripten" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Programming/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=wasm32" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Programming/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Programming/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
-- Found PythonInterp: C:/Python310/python.exe (found version "3.10.2") 
CMake Error at cmake/draco_emscripten.cmake:27 (message):
  The EMSCRIPTEN environment variable must be set.  See README.md.
Call Stack (most recent call first):
  cmake/draco_build_definitions.cmake:175 (draco_check_emscripten_environment)
  CMakeLists.txt:80 (draco_set_build_definitions)


-- Configuring incomplete, errors occurred!
See also "C:/Programming/vcpkg/buildtrees/draco/wasm32-emscripten-dbg/CMakeFiles/CMakeOutput.log".
ninja: build stopped: subcommand failed.

Additional context

This error occurs because draco is, for some reason, expecting an environment variable called EMSCRIPTEN to be defined and pointing to the $EMSDK/upstream/emscripten path.

This environment variable is:

  1. Not defined when calling source emsdk_env.sh (probably deprecated?)
  2. Even if I set it manually on my system, it is not propagated to CMake when called from vcpkg (which seems to be how vcpkg works)

Not sure what the best solution is, any suggestions?

@bitsauce bitsauce added the category:port-bug The issue is with a library, which is something the port should already support label Apr 8, 2023
@bitsauce
Copy link
Author

bitsauce commented Apr 8, 2023

I tried applying this patch:

diff --git a/cmake/draco_emscripten.cmake b/cmake/draco_emscripten.cmake
index 08c58d6..68cb784 100644
--- a/cmake/draco_emscripten.cmake
+++ b/cmake/draco_emscripten.cmake
@@ -23,10 +23,10 @@ macro(draco_check_emscripten_environment)
       FATAL_ERROR
         "Python required for Emscripten builds, but cmake cannot find it.")
   endif()
-  if(NOT EXISTS "$ENV{EMSCRIPTEN}")
+  if(NOT EXISTS "${EMSCRIPTEN_ROOT_PATH}")
     message(
       FATAL_ERROR
-        "The EMSCRIPTEN environment variable must be set. See README.md.")
+        "The EMSCRIPTEN_ROOT_PATH variable must be set. See README.md.")
   endif()
 endmacro()
 
@@ -119,7 +119,7 @@ macro(draco_generate_emscripten_glue)
 
   # Generate the glue source.
   execute_process(COMMAND ${PYTHON_EXECUTABLE}
-                          $ENV{EMSCRIPTEN}/tools/webidl_binder.py
+                          ${EMSCRIPTEN_ROOT_PATH}/tools/webidl_binder.py
                           ${glue_INPUT_IDL} ${glue_OUTPUT_PATH})
   if(NOT EXISTS "${glue_OUTPUT_PATH}.cpp")
     message(FATAL_ERROR "JS glue generation failed for ${glue_INPUT_IDL}.")
@@ -128,7 +128,7 @@ macro(draco_generate_emscripten_glue)
   # Create a dependency so that it regenerated on edits.
   add_custom_command(OUTPUT "${glue_OUTPUT_PATH}.cpp"
                      COMMAND ${PYTHON_EXECUTABLE}
-                             $ENV{EMSCRIPTEN}/tools/webidl_binder.py
+                             ${EMSCRIPTEN_ROOT_PATH}/tools/webidl_binder.py
                              ${glue_INPUT_IDL} ${glue_OUTPUT_PATH}
                      DEPENDS ${draco_js_dec_idl}
                      COMMENT "Generating ${glue_OUTPUT_PATH}.cpp."

Which seeminly made it build but now it fails on the install step with:
ninja: error: unknown target 'install'

@Cheney-W Cheney-W removed their assignment Apr 10, 2023
@Cheney-W Cheney-W added category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. and removed category:port-bug The issue is with a library, which is something the port should already support labels Apr 10, 2023
@JonLiu1993
Copy link
Member

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team.
Projects
None yet
Development

No branches or pull requests

3 participants