Vcpkg: Building package icu with path with spaces failed

Created on 22 Sep 2018  ·  5Comments  ·  Source: microsoft/vcpkg

Package: icu:x64-windows
Vcpkg version: 0.0.113-nohash
Trying to build icu, while installing tesseract package, gives:

.....
-- Acquiring MSYS2... OK
-- Acquiring MSYS Packages...
-- Acquiring MSYS Packages... OK
-- Configuring x64-windows-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:56 (message):
    Command failed: C:/Program Files/vcpkg-master/downloads/tools/msys2/msys64/usr/bin/bash.exe;--noprofile;--norc;-c;C:/Program Files/vcpkg-master/buildtrees/icu/src/icu-61.1/icu/source/runConfigureICU MSYS/MSVC --disable-samples --disable-tests --disable-static --enable-shared --host=i686-pc-mingw32 --disable-debug --enable-release --prefix=C:/Program Files/vcpkg-master/packages/icu_x64-windows
    Working Directory: C:/Program Files/vcpkg-master/buildtrees/icu/x64-windows-rel
    See logs for more information:
      C:\Program Files\vcpkg-master\buildtrees\icu\configure-x64-windows-rel-err.log

Call Stack (most recent call first):
  ports/icu/portfile.cmake:97 (vcpkg_execute_required_process)
  scripts/ports.cmake:71 (include)

Error: Building package icu:x64-windows failed with: BUILD_FAILED

There is only one line in the icu\configure-x64-windows-rel-err.log file:
/usr/bin/bash: C:/Program: No such file or directory

Looks like the script doesn't not handle properly the file name "Program Files" of the directory (two words separated by a blank)?

Thanks in advance for your help.

port-bug upstream-changes

Most helpful comment

I confirm that installing vcpkg under "C:/program files" (or any directory name made of 2 words seperated by a blank) is the cause of the problem above.
Turnaround: Put vcpkg-master directly under "C:/" and it works fine.

The script that install the icu package seems to be sensitive to the presence of blanks in the name of the directory in which vcpkg is installed, whereas it is not the case for other packages made available in vcpkg.

Hope it helps.

All 5 comments

I confirm that installing vcpkg under "C:/program files" (or any directory name made of 2 words seperated by a blank) is the cause of the problem above.
Turnaround: Put vcpkg-master directly under "C:/" and it works fine.

The script that install the icu package seems to be sensitive to the presence of blanks in the name of the directory in which vcpkg is installed, whereas it is not the case for other packages made available in vcpkg.

Hope it helps.

Not just icu. Many implementations of vcpkg ports do not consider the case with spaces in the path. This is really not a good design.

不仅仅是icu。vcpkg很多ports的实现都没考虑路径中带空格的情况。这确实不是一个好的的设计。

This is good to know!

Hi @gnu-lorien , thanks for reporting this issue!
The .mk file used in icu needs to include a header file with a space path, but makefile cannot use double quotes to solve this problem currently. So we cannot fix this issue now. :(

I confirm that installing vcpkg under "C:/program files" (or any directory name made of 2 words seperated by a blank) is the cause of the problem above.
Turnaround: Put vcpkg-master directly under "C:/" and it works fine.

The script that install the icu package seems to be sensitive to the presence of blanks in the name of the directory in which vcpkg is installed, whereas it is not the case for other packages made available in vcpkg.

Hope it helps.

or under a directory without Chinese name, haha

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pakdel picture pakdel  ·  3Comments

ghost picture ghost  ·  3Comments

ThinkalVB picture ThinkalVB  ·  3Comments

angelmixu picture angelmixu  ·  3Comments

PhilLab picture PhilLab  ·  3Comments