
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Paul A. Bristow Sent: Wednesday, December 19, 2012 5:47 PM To: boost@lists.boost.org Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Paul A. Bristow Sent: Tuesday, December 18, 2012 5:28 PM To: boost@lists.boost.org Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] 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@hetp.u-net.com> 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@hetp.u-net.com