To clarify, the file renaming is only needed if you add SOCI directly to a
Visual Studio Solution. This should also affect cmake when I think of it, as
cmake can generate a Visual Studio solution file. It does not affect
boost.build.
On Mon, Dec 20, 2010 at 5:37 PM, Mateusz Loskot <[email protected]> wrote:
> On 20/12/10 14:29, Christian Auby wrote:
>
>> Sure, this would be great as we wouldn't have to keep modifying our
>> local version to be able to use SOCI with boost.build.
>>
>
> Christian,
>
> Sure thing. If you could provide patches for this feature, I will
> submit them to the repo.
>
> CMake is the main officially maintained build configuration, but
> I have no problems with having others. However, I'd rather stick to
> portable toolsets. I dropped the Autotools as this is Unix/GNU-specific.
> CMake is more portable. Boost.Build is highly portable as well and I like
> it personally (though, it's complexity makes me having headache sometimes
> :-))
>
> So, let's go for it!
>
>
> There are a couple of ways you could go to integrate it in boost.build:
>>
>> 1. One jamfile at the root of SOCI with targets for the main soci lib
>> and one for each backend
>> 2. One jamfile at root and one in each folder for each backend
>>
>> In either case you can set up aliases in the root which adds both main
>> lib and backend (since both are required).
>>
>
> Understood.
>
>
> We currently use 1 as it's a bit easier to maintain and you only have to
>> add a single file to SOCI to add boost.build integration.
>>
>
> Sounds good. Let's start with something what's already being used
> and tested.
>
>
> We currently use a SOCI checkout from February 10th 2010. The only local
>> changes are:
>>
>> 1. The addition of the jamfile, as per http://pastebin.ca/2024473
>>
>
> So, this is the only Jamfile I need to put in main/src directory?
>
>
> 2. Renamed sqlite3/blob.cpp to blob_sqlite3.cpp , same for
>> sqlite3/session.cpp and sqlite3/statement.cpp as these create object
>> naming collisions in visual studio (can't have two source files with the
>> same name, even if they are in different directories)
>> 3. Changed const char nextChar = query_[pos + placeholder.size()];
>> to
>> const char nextChar = query_.c_str()[pos + placeholder.size()];
>> In statement.cpp as the previous would throw a debug assertion if a
>> placeholder was put at the end of a query string
>>
>
> I will take a look at these two issues tonight.
>
>
> I'm not sure how many of the local changes we made are still required
>> (how much has changed since february?) but I am willing to investigate
>> this if it is of use to you.
>>
>
> Great, thanks!
>
>
> > IMO it would be in SOCI's best interest to
>
>> work out of the box on as many compilers and platforms as possible.
>>
>
> Agreed.
>
>
> Note that the jamfile above only supports the sqlite backend as that's
>> what we use. I can add the rest during Christmas break if you are
>> interested.
>>
>
> That would be fantastic, but if you use SQLite3 backend only, I see
> no problem with including Boost.Build configuration with Core + SQLite3
> only enabled. You are the developer and user of this features, so draw
> what's included. Once more folks start using it, it will extend with help
> of patches and contributions.
>
>
> Same goes for testing on the various compilers we use if
>> SOCI is heading towards a 3.1.0 release.
>>
>
> I'm hoping we are close to 3.1.0.
> In fact, I'd consider the source code as ready, the only thing
> is the documentation that needs to be updated. Work in progress.
>
>
> I've been toying with the idea of writing a tool that automatically
>> generates C++ objects with SOCI insert, update and delete support based
>> on YAML definition files. Is this something that would be interesting
>> for SOCI or is it out of scope of the project?
>>
>
> Sounds like an interesting extension to SOCI.
>
> I think it would be good to host contributed extensions within SOCI
> codebase, assuming they are not intrusive to the base code too much.
> Let's discuss it, but once the release is out. At least, I can't spend time
> on it now.
>
>
> Best regards,
> --
> Mateusz Loskot, http://mateusz.loskot.net
> Charter Member of OSGeo, http://osgeo.org
> Member of ACCU, http://accu.org
>
--
Christian
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users