Skip to content

improve build scripts#8

Merged
8kpx merged 47 commits into
eXperiencePoints:developfrom
Naruto:feature/add_appveyor_script
Mar 9, 2018
Merged

improve build scripts#8
8kpx merged 47 commits into
eXperiencePoints:developfrom
Naruto:feature/add_appveyor_script

Conversation

@Naruto

@Naruto Naruto commented Dec 19, 2017

Copy link
Copy Markdown
Contributor

Purposes

  • fix XP-Qt and XPd build options and scripts for current version macOS, Linux and Windows(MSVC).
  • make sense build document. dropped
  • Build scripts can running on Cloud CI Service. dropped
  • change default db library from bdb to leveldb. using bdb

Status

  • macOS
    • XPd
    • XP-Qt
    • release build
  • Windows
    • XPd
    • XP-Qt
    • release build
  • Linux

Changes

@Himan2001

Copy link
Copy Markdown

For Windows improvement please modify the scripts for building ALL static, so no more external libs needed.
This is often a problem on different Windows-Version with the .dll files.

Comment thread xp.pro Outdated

isEmpty(QRENCODE_INCLUDE_PATH) {
macx:QRENCODE_INCLUDE_PATH=/usr/local/opt/qrencode/include
widnwos:QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo:

  • widnwos:QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
    means windows - not widnwos :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't worry. I will fix typo when will support windows build

@Naruto

Naruto commented Dec 20, 2017

Copy link
Copy Markdown
Contributor Author

@Himan2001
I will use same library type as other cryptocurrency implementation.
Other cryptocurrency such as bitcoin or litecoin use static library?

@Himan2001

Copy link
Copy Markdown

Syncing leveldb for linux AND windows is a nice move, but the .dll shared problems needs still to be fixed.
I have with this fork exactly the same issues as with CharlieChaplinCoin. The build scripts needs
more revised to build ENTIRE static for the windows version. By using mxe as cross tool, this is usualy
no problem - but for that a "configure" with an "--prefix=" option is missing for the regulary makefiles.

There are to many native default linux-libs still in use. Only the paths for boost, qt, libdb and qt are coverd by the makefiles. When cross compiling for windows this is an importent factor to not mix the linux-libs/headers with the versions that the cross-tool (can) use. One of this quick fixes is, to put all needed libs and headers in other directorys and modify the PATH enviroment to no longer uses /usr/lib and /usr/include, but this has to many side effects.

My advice is, to use the "depends" subdir, that actual BTG, MONA, LTC, etc. have. This makes sure, that you can build with specific versions of all libs for any platform and cross compiling is very well working ;-)

One more aspect is the combination of: USE_ASM and USE_SSE2 - this is not always clear. Later Forks don´t have this options any longer - so my hint is: just remove this option and use the fast version for actual hardware. Last but not least: Remove the scrypt-code, that is no longer needed.

And my last point is a hint of switching to qt5.x - compared with PowerCoin, where qt4 was originaly used, i build with success a 1:1 qt5 version. On XP-fork just a few lines for qt calls need adopted, and qt4 can be retired ;-)

@Himan2001

Copy link
Copy Markdown

@Naruto: yes, it does. Only 3-4 year old forks has this windows .dll stuff. In the last 2 years i saw no longer windows binarys with more then one .exe file ;-)

As i stated above, switching to configure and use "depends" dir solve all this problems, because the mxe-tool build ALL needed libs dynamic and static for any platform. By using mxe and the existing versions you have the darwin support included by the way. And of course: 32 and 64 bit destination code for windows are much more easy buildable.

I noted, when i use generally under linux the "depends"-Version for Doge, BTG and MONA, the entire things can be static - including x11 and qt5 libs. so the maximum that is needed are only 4 system-libs
from the glibc6 itself. You have maximum compatibility for many linuxes then.

I see in older fork-code mostly dynamic code for libboost and qtX - reason is, that on ubuntu the static (.a)libs are not part of the distribution, so the linker cannot build this parts static inside the final file.
The problem on libboost is, that nearly every linux uses a different version. Main problems are, that libs not found for many end-users later. (boost 1.58 on ubuntu 16, newer on 17.x, and mxe uses 1.60+, etc...)

Before you now hardcode specific versions for every hardware... better switch to "depends-system" and
get rid of all this issues at once. ;-)

@Naruto Naruto force-pushed the feature/add_appveyor_script branch 3 times, most recently from 8fec978 to 0637d98 Compare December 28, 2017 07:45
@Naruto Naruto force-pushed the feature/add_appveyor_script branch from 0637d98 to 01abbc8 Compare January 28, 2018 08:56
@Naruto Naruto force-pushed the feature/add_appveyor_script branch from 01abbc8 to f15d7fe Compare February 22, 2018 13:03
@Naruto Naruto changed the base branch from master to develop February 22, 2018 13:12
@Naruto Naruto force-pushed the feature/add_appveyor_script branch 2 times, most recently from ddc7cc9 to d4ebeb7 Compare February 22, 2018 13:28
@Naruto Naruto force-pushed the feature/add_appveyor_script branch from 0204fe9 to e251db0 Compare March 3, 2018 05:55
@Naruto

Naruto commented Mar 7, 2018

Copy link
Copy Markdown
Contributor Author

@mauriciosl
@Himan2001
support windows. please review.

@Naruto Naruto changed the title [WIP] improve build scripts improve build scripts Mar 8, 2018
Comment thread MSVC/XP-Qt.bat
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
cd %BASEDIR%
nmake distclean
C:\Qt\5.10.1\msvc2015\bin\qmake.exe -spec win32-msvc || exit /b 1

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line had to be changed for my build for some reason it installed at 5.10.1 inside a subfolder
C:\Qt\Qt5.10.1\5.10.1\msvc2015\bin\windeployqt --release output\XP-Qt\XP-Qt.exe || exit /b 1

Comment thread MSVC/XP-Qt.bat
rmdir /S/Q output\XP-Qt
mkdir output\XP-Qt
copy release\XP-Qt.exe output\XP-Qt
C:\Qt\5.10.1\msvc2015\bin\windeployqt --release output\XP-Qt\XP-Qt.exe || exit /b 1

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line had to be changed for my build for some reason it installed at 5.10.1 inside a subfolder
C:\Qt\Qt5.10.1\5.10.1\msvc2015\bin\windeployqt --release output\XP-Qt\XP-Qt.exe || exit /b 1
Compiled perfect after that

@SOELexicon SOELexicon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after making a few changes to one of the .bats due to my qt path being different it compiled perfect.

@Naruto

Naruto commented Mar 8, 2018

Copy link
Copy Markdown
Contributor Author

@SOELexicon
Would you have idea that avoids Qt path problem?
If you don't have it, you should consider solution at next phase.
Currently, I don't have time for resolving this problem.

@8kpx 8kpx merged commit bd20604 into eXperiencePoints:develop Mar 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants