Skip to content

I could't build on windows 10  #72

Open
@ozerkon

Description

@ozerkon

Hi, Following the instructions here I wanted to install the qtwebdriver but failed.

ozer@Lenovo MINGW64 /
$ git clone https://chromium.googlesource.com/external/gyp
Cloning into 'gyp'...
remote: Total 18491 (delta 11523), reused 18491 (delta 11523)
Receiving objects: 100% (18491/18491), 12.00 MiB | 1.10 MiB/s, done.
Resolving deltas: 100% (11523/11523), done.

ozer@Lenovo MINGW64 /
$ git clone https://github.com/cisco-open-source/qtwebdriver
Cloning into 'qtwebdriver'...
remote: Enumerating objects: 15448, done.
remote: Total 15448 (delta 0), reused 0 (delta 0), pack-reused 15448
Receiving objects: 100% (15448/15448), 144.16 MiB | 1016.00 KiB/s, done.
Resolving deltas: 100% (8949/8949), done.

ozer@Lenovo MINGW64 /
$ cd qtwebdriver

ozer@Lenovo MINGW64 /qtwebdriver (WD_1.X_dev)
$ cp qt5_sample_config.gypi wd.gypi

ozer@Lenovo MINGW64 /qtwebdriver (WD_1.X_dev)
$ cat wd.gypi
{
  'variables': {
    'QT5': '1',
    'WD_CONFIG_QWIDGET_BASE': '1',
# If Qt >= 5.6 set 'WD_CONFIG_WEBKIT' : '0'
    'WD_CONFIG_WEBKIT': '1',
    'WD_CONFIG_QUICK': '1',
    'WD_CONFIG_PLAYER': '0',
    'WD_CONFIG_ONE_KEYRELEASE': '0',
    'QT_INC_PATH': 'C:\Qt\5.15.2\mingw81_64\include',
    'QT_BIN_PATH': 'C:\Qt\5.15.2\mingw81_64\bin',
    'QT_LIB_PATH': 'C:\Qt\5.15.2\mingw81_64\lib'
  },
}

ozer@Lenovo MINGW64 /qtwebdriver (WD_1.X_dev)
$ ./build.sh ./out
Traceback (most recent call last):
  File "C:\Program Files\Git\qtwebdriver\generate_wdversion.py", line 14, in <module>
    versionfile.write("extern const char kLastChanges[] = \"" + data.strip() + "\";\n")
TypeError: can only concatenate str (not "bytes") to str
./build.sh: line 51: make: command not found

Here is the "C:\Program Files\Git\qtwebdriver\generate_wdversion.py" file


import subprocess as sp

filename = "./src/webdriver/webdriver_version.cc"
p = sp.Popen(["git", "describe" , "--abbrev=10", "--dirty", "--always"], stdin=sp.PIPE, stdout=sp.PIPE)

data = p.stdout.readline()

versionfile = open (filename, 'w')
versionfile.write("namespace webdriver {\n")
versionfile.write("extern const char kProductName[] = \"WebDriver-cisco-cmt\";\n")
versionfile.write("extern const char kVersionNumber[] = \"1.3.3\";\n")
versionfile.write("extern const char kBuildTime[] = __TIME__;\n")
versionfile.write("extern const char kBuildDate[] = __DATE__;\n")
versionfile.write("extern const char kLastChanges[] = \"" + data.strip() + "\";\n")
versionfile.write("}")
versionfile.close()

p.stdout.close()
p.stdin.close()

And here is the "C:\Program Files\Git\qtwebdriver\build.sh" file:

#!/usr/bin/env bash
output_gen=$1
platform=$2
mode=$3
qt_dir=$4

root_dir=`pwd`
if [ -z $output_gen ];
then
  output_gen=`pwd`/out
  platform="desktop"
fi

output_gen=`readlink -m ${output_gen}`
base_output_gen=`dirname ${output_gen}`

if [ -z $platform ];
then
  platforms="desktop"
else
  platforms=$platform
fi
if [ -z $mode ];
then
  modes="release"
else
  modes=$mode
fi

OUT_STATIC_LIB_FILES="libchromium_base.a libWebDriver_core.a libWebDriver_extension_qt_base.a libWebDriver_extension_qt_web.a libWebDriver_extension_qt_quick.a libWebDriver_extension_qt_quick_web.a"
OUT_SHARED_LIB_FILES="libchromium_base.so libWebDriver_core.so libWebDriver_extension_qt_base.so libWebDriver_extension_qt_web.so libWebDriver_extension_qt_quick.so libWebDriver_extension_qt_quick_web.so libAndroidWD_QML.so libAndroidWD_Widgets.so"
OUT_BIN_FILES="WebDriver WebDriver_noWebkit WebDriver_noWebkit_sharedLibs"

#generate wdversion.cc
python generate_wdversion.py

for platform in $platforms
do
  for mode in $modes
  do
    cd $root_dir

    OUTPUT_DIR=${output_gen}/$platform/$mode
    OUTPUT_DIR_OUT=${OUTPUT_DIR}/Default
    DIST_DIR=${output_gen}/dist/$platform/$mode

    gyp --depth . -G output_dir=. -D platform=$platform -D mode=$mode -D ROOT_PATH=${base_output_gen} -D QT_DIR=${qt_dir} --generator-output=${output_gen}/$platform/$mode wd.gyp
    [ $? -ne 0 ] && exit 1
    cd $OUTPUT_DIR
    [ $? -ne 0 ] && echo "**** ERROR: Can't access to $OUTPUT_DIR" && exit 1
    make
    [ $? -ne 0 ] && exit 1
    mkdir -p ${DIST_DIR}/{bin,libs,h,Test}
    [ $? -ne 0 ] && echo "**** ERROR: Can't create $DIST_DIR" && exit 1

    # copy libraries
    for file in $OUT_STATIC_LIB_FILES; do cp -f $OUTPUT_DIR_OUT/$file $DIST_DIR/libs 2>/dev/null; done
    for file in $OUT_SHARED_LIB_FILES; do cp -f $OUTPUT_DIR_OUT/lib.target/$file $DIST_DIR/libs 2>/dev/null; done

    # copy headers
    cp -rf $root_dir/inc/* $DIST_DIR/h 2>/dev/null;
    cp -rf $root_dir/src/Test $DIST_DIR 2>/dev/null;

    # copy test binaries
    for file in $OUT_BIN_FILES
    do
      if [ -f $OUTPUT_DIR_OUT/$file ]
      then
        cp -f $OUTPUT_DIR_OUT/$file $DIST_DIR/bin 2>/dev/null
      fi
    done
    
  done
done

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions