Bitcoin Forum
September 26, 2016, 01:54:44 PM *
News: Due to DDoS attacks, there may be periodic downtime.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: CMake integration  (Read 1671 times)
dkaparis
Jr. Member
*
Offline Offline

Activity: 53


View Profile
August 05, 2010, 12:26:36 PM
 #1

Greetings,

I have set up a mirror hg repository over at bitbucket for integrating the CMake build system:
http://bitbucket.org/dkaparis/bitcoin-cmake/

It's based on latest SVN and I'm regularly updating. My modifications are addition of build files and the fix for MSVC non-debug runtime compiling of the secure_allocator class I posted some time ago.

See the included build_cmake.txt file for more details.

Currently it's tested and works for Visual C++ 2008, both IDE and command-line builds.
Still not tested: MSVC x64, MinGW and UNIX builds.

Use it as you deem fit. Contributions are welcomed.
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
1474898084
Hero Member
*
Offline Offline

Posts: 1474898084

View Profile Personal Message (Offline)

Ignore
1474898084
Reply with quote  #2

1474898084
Report to moderator
dkaparis
Jr. Member
*
Offline Offline

Activity: 53


View Profile
August 11, 2010, 10:44:11 PM
 #2

It now builds on FreeBSD. Tested on 8.1 x64. I have no graphical environment on my test machine, so I haven't tested with wxWidgets. Volunteers are welcome.

Provided you set up all dependencies from the ports tree and have CMake installed, building Bitcoind should take only this:

hg clone https://dkaparis@bitbucket.org/dkaparis/bitcoin-cmake
cd bitcoin-cmake
mkdir build
cd build
cmake ..
make


Haven't tested on Linux yet, but it should be virtually the same. Again, volunteers are welcome.

Cheers.
pavelo
Newbie
*
Offline Offline

Activity: 2


View Profile
August 27, 2010, 06:14:28 PM
 #3

thanks for this cmake thingy

I managed to compile in on linux (uname -a = Linux unimatrix0 2.6.34-gentoo-r6 #1 SMP PREEMPT Wed Aug 25 11:27:50 CEST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz GenuineIntel GNU/Linux, if anyone wants to know)
I just needed to remove some wx libs from the linker command because it was complaining it cannot find them. As it seems to link fine without them, i guess they are not really needed, and you can remove them. I have a patch below:

Code:
# HG changeset patch
# User Pavel Labath <pavelo@centrum.sk>
# Date 1282931954 -7200
# Branch trunk
# Node ID 7d943971b02725095ceb0facb1cf457ede3bcfb3
# Parent  cb43a9fef788a4e9a9ee54fc96028d404c7fd818
Remove unneeded wxgtk libs.

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH})
 
 #find required libraries
-set(wxWidgets_USE_LIBS base core adv html tiff jpeg png zlib)
+set(wxWidgets_USE_LIBS base core adv html)
 find_package(wxWidgets)
 include(UsewxWidgets) #This will take care of wx include dirs and defines

1NJDHzoygjdj3PehEq8ALpm7uwXHDZ9JpX
dkaparis
Jr. Member
*
Offline Offline

Activity: 53


View Profile
September 06, 2010, 10:11:03 AM
 #4

thanks for this cmake thingy

I managed to compile in on linux (uname -a = Linux unimatrix0 2.6.34-gentoo-r6 #1 SMP PREEMPT Wed Aug 25 11:27:50 CEST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz GenuineIntel GNU/Linux, if anyone wants to know)
I just needed to remove some wx libs from the linker command because it was complaining it cannot find them. As it seems to link fine without them, i guess they are not really needed, and you can remove them. I have a patch below:

Code:
# HG changeset patch
# User Pavel Labath <pavelo@centrum.sk>
# Date 1282931954 -7200
# Branch trunk
# Node ID 7d943971b02725095ceb0facb1cf457ede3bcfb3
# Parent  cb43a9fef788a4e9a9ee54fc96028d404c7fd818
Remove unneeded wxgtk libs.

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH})
 
 #find required libraries
-set(wxWidgets_USE_LIBS base core adv html tiff jpeg png zlib)
+set(wxWidgets_USE_LIBS base core adv html)
 find_package(wxWidgets)
 include(UsewxWidgets) #This will take care of wx include dirs and defines

Thanks, I'll add the change. I remember just copying the lib names straight from the original makefile, I suspected not all are used.
It's also worth noticing it can build bitcoind (the headless version) without any wxWidgets libraries at all (in fact I did that on my FreeBSD system).
phma
Newbie
*
Offline Offline

Activity: 11


View Profile
April 20, 2012, 09:02:08 PM
 #5

I just cloned it and ran cmake and got this:

-- Found wxWidgets: TRUE
-- Found OpenSSL: /usr/lib/libssl.so;/usr/lib/libcrypto.so
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   system
--   filesystem
--   program_options
--   thread
--   date_time
--   regex
-- Could NOT find DB (missing:  DB_LIBRARIES)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
DB_LIB
    linked by target "bitcoin" in directory /home/phma/crypt/bitcoin-cmake
    linked by target "bitcoind" in directory /home/phma/crypt/bitcoin-cmake

-- Configuring incomplete, errors occurred!

I have several versions of db installed:

db-2.7.7nb3 =        Sleepycat Software's Berkeley DB version 2
db3-3.11.2nb4        Sleepycat Software's Berkeley DB version 3
db4-4.8.30 =         Berkeley DB version 4 from Oracle
db46-4.6.21 =        Berkeley DB version 4 from Oracle
db5-5.2.28 =         Berkeley DB version 5 from Oracle

And why is it looking for wxWidgets instead of Qt?
Pieter Wuille
Legendary
*
qt
Offline Offline

Activity: 1036


View Profile WWW
April 20, 2012, 09:50:31 PM
 #6

The previous post in this thread is 1.5 years old. We've since switched from the wx GUI ("bitcoin") to a Qt GUI ("bitcoin-qt"), and the version requirements for several libraries changed as well. We've also switched from SVN to GIT...

In any case, that cmake file will be severely outdated by now.

aka sipa, core dev team

Tips and donations: 1KwDYMJMS4xq3ZEWYfdBRwYG2fHwhZsipa
phma
Newbie
*
Offline Offline

Activity: 11


View Profile
April 24, 2012, 01:46:21 AM
 #7

Is anyone up to updating the CMake file? I'd love to get Bitcoin to build on my box, but the existing build system (or lack thereof) just doesn't work on it. I have no problem building Vidalia (a Qt app which uses CMake as build system), and I've been porting my projects to CMake, but none of them are GUI projects. I started to port Bitcoin to CMake, found that CMake doesn't have a library find module for Berkeley DB, searched for it, and landed on dkaparis's site.
Pieter Wuille
Legendary
*
qt
Offline Offline

Activity: 1036


View Profile WWW
April 24, 2012, 01:59:08 AM
 #8

What problems do you have with the current build system, and on which platform?

aka sipa, core dev team

Tips and donations: 1KwDYMJMS4xq3ZEWYfdBRwYG2fHwhZsipa
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!