Boost logo

Boost :

Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2012-12-20 13:02:40


> -----Original Message-----
> From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul A.
> Bristow
> Sent: Wednesday, December 19, 2012 5:47 PM
> To: boost_at_[hidden]
> Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
>
> > -----Original Message-----
> > From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul A.
> > Bristow
> > Sent: Tuesday, December 18, 2012 5:28 PM
> > To: boost_at_[hidden]
> > Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
> >
> > > -----Original Message-----
> > > From: boost-bounces_at_[hidden]
> > > [mailto:boost-bounces_at_[hidden]] On Behalf Of Beman Dawes
> > > Sent: Thursday, December 13, 2012 5:18 PM
> > > To: Boost Developers List
> > > Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
>
> Further to my progress report yesterday...
>
> For Pierre Talbot's GSoC checksums library checks, I've tried to follow your procedure as reported by you
> at https://svn.boost.org/trac/boost/wiki/ExtractSandbox, and it works OK using the b2 jamfile call,
>
> which is promising, but to get it to work using VS I need to provide an additional include directory
>
> I:\boost-trunk\libs\checks
>
> but it doesn't have the 'right' directory structure , as your example 'simple', mainly in lacking a folder
> /include
>
> and I don't understand how is ever could have this folder /include ?
>
> So the analogous symlink I created to
>
> I:\boost-trunk/libs/trivial/include/boost/trivial
>
> is wrong and should link instead to
>
> I:\boost-trunk\libs\checks\boost\checks
>
> from boost-trunk\checks
>
> I:\boost-trunk\boost>mklink /d checks ..\libs\checks\boost\checks symbolic link created for checks
> <<===>> ..\libs\checks\boost\checks
>
> Windows Explorer shows a link Target I:\boost-trunk\libs\checks\boost\checks
>
> and open file location opens showing folder \checks
>
> I:\boost-trunk\boost>dir checks
> Volume in drive I is Boost
> Volume Serial Number is 2772-A18A
>
> Directory of I:\boost-trunk\boost\checks
>
> 18-Dec-2012 16:13 <DIR> .
> 18-Dec-2012 16:13 <DIR> ..
> 18-Dec-2012 16:13 2,454 amex.hpp
> 18-Dec-2012 16:13 4,427 basic_checks.hpp
> …
>
> VS with a VC include directory i:\boost-trunk\ now builds OK.
>
> (Aside: the lines
>
> #include <boost/checks/some_check.hpp>
>
> all are underlined in red and say "Error: cannot open source file "boost/checks/some_check.hpp"
>
> for a long time - So this doesn't seem quite ideal but perhaps a VS feature?)
>
> I had expected, the link to point to
>
> I:\boost-trunk\libs\checks\
>
> to find
>
> #include <boost/checks/some_checks.hpp>
>
> But I'm obviously still confused by symlinks.
>
> Would this need an include directory of
>
> I:boost-trunk\boost
>
> rather than
>
> I:boost-trunk\
>
> It seems to me that keeping all the folder structures the same is really, really important (having caused
> many muddles in the past), so would it be better just to tell people to 'start afresh manually' by running a
> command file to create the directory structure (parameterised for the library name of course) moving the
> files to the right place following the simple example's layout?
>
> I'm also concerned at the potential for modifications to IDE projects that would be required to change
> when going from sandbox through acceptance to trunk and release. Most tests are developed using an
> IDE (not just VS, but also NetBeans, CodeBlocks, Eclipse …) and then run portably using bjam (or
> something). (I've had experience of this - there are hundreds of Boost.Math test projects and I have an
> IDE project for each of them - so changing from sandbox to trunk was painful :-)
>
> It will be a real nuisance to have to change all the projects include settings (especially if you have unwisely
> not use the VS collection of settings where a change can be used by all projects - as I have sometimes
> unwisely done).
>
> Before I go any further, I wanted to be quite sure that we are agreed that we have really got this right,
> because if we haven't, we could be heading for big trouble later.

Sorry to reply to self *twice*, but I just want to report using NetBeans (see netbeans.org) a portable IDE.

First Using my NetBeans default gcc 4.7.2 C++ compiler:

1 Created new project trivial (cleared makefile button as have a main in test program).

* Added existing file using the [...] browse box "I:/boost-trunk/libs/trivial/libs/checks/test/thrice_test.cpp"

* Added Project Properties, Build, C++ Compiler, General, Include directories I:\boost-trunk - my 'boost-root'

* Clicked on Run icon
* Output windows contains

g++.exe -c -g -I/I/boost-trunk -MMD -MP -MF build/Debug/mingw32-Windows/_ext/1817206218/thrice_test.o.d -o build/Debug/mingw32-Windows/_ext/1817206218/thrice_test.o /I/boost-trunk/libs/trivial/test/thrice_test.cpp

* Run window contains
No errors detected.
RUN SUCCESSFUL (total time: 139ms)
:-))

2 Created new project checks (cleared makefile button as have a main in test program).

* Added existing file using the [...] browse box I:\boost-trunk\libs\checks\libs\checks\test\test_checks.cpp
* Added Project Properties, Build, C++ Compiler, General, Include directories I:\boost-trunk - my 'boost-root'
* Clicked on Run icon.

8 Output windows contains

g++.exe -c -g -I/I/boost-trunk -MMD -MP -MF build/Debug/mingw32-Windows/_ext/776286597/test_checks.o.d -o build/Debug/mingw32-Windows/_ext/776286597/test_checks.o /I/boost-trunk/libs/checks/libs/checks/test/test_checks.cpp

* Run window contains
Running 12 test cases...
*** No errors detected
RUN SUCCESSFUL (total time: 229ms)

Using clang 3.1

clang++.exe -c -g -I/I/boost-trunk -MMD -MP -MF build/dbg_clang/MinGW_Clang-Windows/_ext/776286597/test_checks.o.d -o build/dbg_clang/MinGW_Clang-Windows/_ext/776286597/test_checks.o /I/boost-trunk/libs/checks/libs/checks/test/test_checks.cpp

and 2 warnings, but runs OK.

And finally re-ran checks using Visual Studio but
using VS 2010 compiler (from NetBeans with an add-on)

* Added Project Properties, Build, Linker, Libraries, used [...] browse box to add one library file:
libboost_unit_test_framework-vc100-mt-s-1_53.lib

(Sadly autolinking doesn't work)

msvc_caller.exe -c -Od -W3 -I /I/boost-trunk -Fobuild/dbg_vs/VCC4N-Windows/_ext/776286597/test_checks.o /I/boost-trunk/libs/checks/libs/checks/test/test_checks.cpp
test_checks.cpp
Linking to lib file: libboost_unit_test_framework-vc100-mt-s-1_53.lib
mkdir -p dist/dbg_vs/VCC4N-Windows
msvc_caller.exe -OUT:dist/dbg_vs/VCC4N-Windows/checks build/dbg_vs/VCC4N-Windows/_ext/776286597/test_checks.o /I/boost-trunk/stage/lib/libboost_unit_test_framework-vc100-mt-s-1_53.lib

Run window is OK (as other compilers).

So these 'sandbox' projects all seem to work OK with the symlinks set up before.

However, I still think that some confirmation from others that the directory structure and symlinks is what we want for 'sandbox' projects, and how we will transition any accepted into 'official' Boost and finally into release.

Paul

PS NetBeans has Git (and subversion) built in, so I committed a small change to the test_checks.cpp source file.

==[IDE]== 20-Dec-2012 17:32:18 Committing...
Git Commit
----------
git add I:\boost-trunk\libs\checks\libs\checks\test\test_checks.cpp
git commit -m Working with NetBeans I:\boost-trunk\libs\checks\libs\checks\test\test_checks.cpp
Commit Log
revision : 5b8d04584e1b2fdd7acaf4863130ed8c94729c9a
author : Paul Bristow <pbristow_at_[hidden]>
date : 20-Dec-2012 17:32:18
summary : Working with NetBeans

INFO: End of Commit

==[IDE]== 20-Dec-2012 17:32:18 Committing... finished.

Neat?

> ---
> Paul A. Bristow,
> Prizet Farmhouse, Kendal LA8 8AB UK
> +44 1539 561830 07714330204
> pbristow_at_[hidden]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk