Bitcoin Forum
May 13, 2024, 06:41:11 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: CMake integration  (Read 8521 times)
dkaparis (OP)
Newbie
*
Offline Offline

Activity: 53
Merit: 0


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.
1715582471
Hero Member
*
Offline Offline

Posts: 1715582471

View Profile Personal Message (Offline)

Ignore
1715582471
Reply with quote  #2

1715582471
Report to moderator
1715582471
Hero Member
*
Offline Offline

Posts: 1715582471

View Profile Personal Message (Offline)

Ignore
1715582471
Reply with quote  #2

1715582471
Report to moderator
The trust scores you see are subjective; they will change depending on who you have in your trust list.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715582471
Hero Member
*
Offline Offline

Posts: 1715582471

View Profile Personal Message (Offline)

Ignore
1715582471
Reply with quote  #2

1715582471
Report to moderator
1715582471
Hero Member
*
Offline Offline

Posts: 1715582471

View Profile Personal Message (Offline)

Ignore
1715582471
Reply with quote  #2

1715582471
Report to moderator
1715582471
Hero Member
*
Offline Offline

Posts: 1715582471

View Profile Personal Message (Offline)

Ignore
1715582471
Reply with quote  #2

1715582471
Report to moderator
dkaparis (OP)
Newbie
*
Offline Offline

Activity: 53
Merit: 0


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
Merit: 0


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
dkaparis (OP)
Newbie
*
Offline Offline

Activity: 53
Merit: 0


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
Merit: 0


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: 1072
Merit: 1174


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.

I do Bitcoin stuff.
phma
Newbie
*
Offline Offline

Activity: 11
Merit: 0


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: 1072
Merit: 1174


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?

I do Bitcoin stuff.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!