BitShares Forum

Main => Technical Support => Topic started by: maqifrnswa on September 22, 2014, 12:33:28 pm

Title: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 22, 2014, 12:33:28 pm
I'm trying to do an out-of-tree build:
Code: [Select]
mkdir -p obj-x86_64-linux-gnu
cd obj-x86_64-linux-gnu
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DINCLUDE_QT_WALLET=ON -DCMAKE_INSTALL_PREFIX=/usr/bi

But get:
make[3]: *** No rule to make target `programs/qt_wallet/images/splash_screen.jpg', needed by `programs/qt_wallet/qrc_bitshares.cpp'.  Stop.

and programs/qt_wallet/images/splash_screen.jpg is found in tree but not in:
obj-x86_64-linux-gnu/programs/qt_wallet/images/splash_screen.jpg

thanks
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: arhag on September 22, 2014, 01:42:35 pm
Yeah, I ran into this bug as well. I just posted this a few minutes ago:

I had the same problem on Linux. Are you compiling in a separate build folder? Read my submitted GitHub issue here (https://github.com/BitShares/qt_wallet/issues/52). You can work around it by either compiling in the source folder or copying the folder from "bitsharesx/programs/qt_wallet/images" to "$(BUILD_FOLDER)/programs/qt_wallet/images".

Not sure what exactly is going wrong with the CMake script though.
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: emf on September 22, 2014, 04:32:59 pm
This is probably fixed (although untested) in the repository
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: arhag on September 22, 2014, 07:21:40 pm
This is probably fixed (although untested) in the repository

Just to point out the fix to anyone interested: https://github.com/BitShares/qt_wallet/commit/6cb3742a3d1e2ac896a018bc1d93bea2e2927390 (https://github.com/BitShares/qt_wallet/commit/6cb3742a3d1e2ac896a018bc1d93bea2e2927390). I tried it out on my machine (Ubuntu 14.04) and it fixed the problem.
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: xeroc on September 22, 2014, 07:24:45 pm
+5%
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 22, 2014, 09:42:42 pm
excellent! now I'm running into another weird error, when building in parallel the Russian translation doesn't finish getting compiled before it is needed by the code:

Code: [Select]
Generating ru_RU.qm
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/lib/i386-linux-gnu/qt5/bin/lrelease /build/buildd/bitsharesx-0.4.16+a/programs/qt_wallet/translations/ru_RU.ts -qm /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/ru_RU.qm
Generating bitshares.qrc
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.16+a/programs/qt_wallet/images/tray_icon.png /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/images
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.16+a/programs/qt_wallet/bitshares.qrc /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/
/usr/bin/cmake -E cmake_progress_report /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/CMakeFiles
/usr/bin/cmake -E cmake_progress_report /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/CMakeFiles 2
[ 94%] [ 95%] Generating images/splash_screen.jpg
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/images
Generating images/qtapp.ico
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/images
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.16+a/programs/qt_wallet/images/splash_screen.jpg /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/images
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.16+a/programs/qt_wallet/images/qtapp.ico /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/images
/usr/bin/cmake -E cmake_progress_report /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/CMakeFiles 1
[ 96%] Generating qrc_bitshares.cpp
cd /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet && /usr/lib/i386-linux-gnu/qt5/bin/rcc -name bitshares -o /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/qrc_bitshares.cpp /build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/bitshares.qrc
RCC: Error in '/build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/bitshares.qrc': Cannot find file 'ru_RU.qm'
make[5]: *** [programs/qt_wallet/qrc_bitshares.cpp] Error 1
make[5]: *** Waiting for unfinished jobs....
Updating '/build/buildd/bitsharesx-0.4.16+a/obj-i686-linux-gnu/programs/qt_wallet/ru_RU.qm'...
    Generated 20 translation(s) (20 finished and 0 unfinished)
    Ignored 70 untranslated source text(s)

it's funny - it can't find the file and the very next line it generates it
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 23, 2014, 03:54:14 am
Same build problem in v0.4.17

Code: [Select]
/usr/bin/cmake -E cmake_progress_report "/build/buildd/bitsharesx-0.4.17~RC1+a/build/CMakeFiles"
make[5]: *** No rule to make target `programs/qt_wallet/images/splash_screen.jpg', needed by `programs/qt_wallet/qrc_bitshares.cpp'.  Stop.
make[5]: *** Waiting for unfinished jobs....
[ 96%] [ 96%] Generating ru_RU.qm
Generating qrc_htdocs.cpp
cd "/build/buildd/bitsharesx-0.4.17~RC1+a/build/programs/qt_wallet" && /usr/lib/x86_64-linux-gnu/qt5/bin/rcc -name htdocs -o "/build/buildd/bitsharesx-0.4.17~RC1+a/build/programs/qt_wallet/qrc_htdocs.cpp" "/build/buildd/bitsharesx-0.4.17~RC1+a/programs/qt_wallet/htdocs.qrc"
cd "/build/buildd/bitsharesx-0.4.17~RC1+a/build/programs/qt_wallet" && /usr/lib/x86_64-linux-gnu/qt5/bin/lrelease "/build/buildd/bitsharesx-0.4.17~RC1+a/programs/qt_wallet/translations/ru_RU.ts" -qm "/build/buildd/bitsharesx-0.4.17~RC1+a/build/programs/qt_wallet/ru_RU.qm"
Updating '/build/buildd/bitsharesx-0.4.17~RC1+a/build/programs/qt_wallet/ru_RU.qm'...
    Generated 20 translation(s) (20 finished and 0 unfinished)
    Ignored 70 untranslated source text(s)

https://launchpadlibrarian.net/185540179/buildlog_ubuntu-trusty-amd64.bitsharesx_0.4.17~RC1%2Ba-0ubuntu1~ppa2_FAILEDTOBUILD.txt.gz

EDIT: I see the fix from _toolkit just wasn't merged in to dacsunlimited yet
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: emf on September 23, 2014, 01:57:52 pm
Let me know if it doesn't work once the fix is merged.  I'm not set up to do out-of-source linux builds and it works fine in win32.  It could be that we need to add an explicit dependency to ru_RU.qm, probably changing line 183 in CMakeLists.txt to:

Code: [Select]
foreach(static_file IN LISTS static_bitshares_resource_files_in_binary_directory QM_FILES)
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 24, 2014, 03:06:54 pm
Let me know if it doesn't work once the fix is merged.  I'm not set up to do out-of-source linux builds and it works fine in win32.  It could be that we need to add an explicit dependency to ru_RU.qm, probably changing line 183 in CMakeLists.txt to:

Code: [Select]
foreach(static_file IN LISTS static_bitshares_resource_files_in_binary_directory QM_FILES)

Yes, it works in 0.4.17~RC2. There does need to be an explicit dependency to ru_RU.qm, that is now failing the builds. I need to do out of tree builds for some of the cross building in the PPA (otherwise amd64 doesn't work for some reason, probably because I was building the web_wallet on a i386 machine).
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 24, 2014, 05:26:27 pm
I lied, it still doesn't work in 0.4.17-RC2. I'm trying out the patch here:
https://github.com/BitShares/qt_wallet/commit/6cb3742a3d1e2ac896a018bc1d93bea2e2927390.patch
with emf's suggestion:
foreach(static_file IN LISTS static_bitshares_resource_files_in_binary_directory QM_FILES)
Title: Re: BitSharesX compiling: do out of tree builds work?
Post by: maqifrnswa on September 24, 2014, 05:59:36 pm
It's getting closer, but there seems to be some race condition with ru_RU.qm

The following is with the fixed patch and with emf's suggestion of
foreach(static_file IN LISTS static_bitshares_resource_files_in_binary_directory QM_FILES)

Code: [Select]
Generating qrc_htdocs.cpp
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/lib/x86_64-linux-gnu/qt5/bin/rcc -name htdocs -o "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/qrc_htdocs.cpp" "/build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/htdocs.qrc"
Generating ru_RU.qm
Generating bitshares.qrc
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/lib/x86_64-linux-gnu/qt5/bin/lrelease "/build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/translations/ru_RU.ts" -qm "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/ru_RU.qm"
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/images/tray_icon.png /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/images
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/bitshares.qrc /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/
/usr/bin/cmake -E cmake_progress_report "/build/buildd/bitsharesx-0.4.17~RC2/build/CMakeFiles"
/usr/bin/cmake -E cmake_progress_report "/build/buildd/bitsharesx-0.4.17~RC2/build/CMakeFiles" 2
[ 95%] [ 95%] Generating images/qtapp.ico
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/images
Generating images/splash_screen.jpg
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E make_directory /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/images
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/images/qtapp.ico /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/images
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/bin/cmake -E copy_if_different /build/buildd/bitsharesx-0.4.17~RC2/programs/qt_wallet/images/splash_screen.jpg /build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/images
/usr/bin/cmake -E cmake_progress_report "/build/buildd/bitsharesx-0.4.17~RC2/build/CMakeFiles" 1
[ 96%] Generating qrc_bitshares.cpp
cd "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet" && /usr/lib/x86_64-linux-gnu/qt5/bin/rcc -name bitshares -o "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/qrc_bitshares.cpp" "/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/bitshares.qrc"
RCC: Error in '/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/bitshares.qrc': Cannot find file 'ru_RU.qm'
make[5]: *** [programs/qt_wallet/qrc_bitshares.cpp] Error 1
make[5]: *** Waiting for unfinished jobs....
Updating '/build/buildd/bitsharesx-0.4.17~RC2/build/programs/qt_wallet/ru_RU.qm'...
    Generated 90 translation(s) (90 finished and 0 unfinished)