Boost logo

Boost :

Subject: Re: [boost] sqlpp11: SQL for C++
From: Roland Bock (rbock_at_[hidden])
Date: 2013-11-15 04:21:28


On 2013-11-14 22:14, Larry Evans wrote:
> On 11/14/13 03:31, Roland Bock wrote:
>> On 2013-11-13 19:49, Larry Evans wrote:
>>> On 11/12/13 23:24, Roland Bock wrote:
>>>> On 2013-11-12 22:37, Larry Evans wrote:
>>>>> On 11/12/13 15:00, Roland Bock wrote:
>>>>>> On 2013-11-12 21:04, Larry Evans wrote:
>>>>>>> On 11/11/13 14:54, Larry Evans wrote:
>>>>>>>> On 11/11/13 14:40, Roland Bock wrote:
>>>>>>>>> On 2013-11-11 19:00, Larry Evans wrote:
>>>>>>>> [snip]
>>>>>>>>>> Is there an actual run against a real database somewhere in the
>>>>>>>>>> tests?
>>>>>>>>>> The 2 .cpp files I checked (SelectTest.cpp and UpdateTest.cpp)
>>>>>>>>>> both
>>>>>>>>>> use db of type MockDb, which doesn't seem to be connected to any
>>>>>>>>>> real
>>>>>>>>>> database.
>>>>>>>>>> [snip]
>>>>>>>>>>
>>>>>>>>>> -Larry
>>>>>>>>>
>>>>>>>>> Hi Larry,
>>>>>>>>>
>>>>>>>>> those tests are really just tests, mostly compile time test to
>>>>>>>>> ensure
>>>>>>>>> that expressions yield the right types. I will have to add
>>>>>>>>> quite a
>>>>>>>>> few
>>>>>>>>> additional ones which check the generated strings.
>>>>>>>>>
>>>>>>>>> There are two connector libraries (MySQL/MariaDb and Sqlite3)
>>>>>>>>> listed
>>>>>>>>> here:
>>>>>>>>>
>>>>>>>>> https://github.com/rbock/sqlpp11#requirements
>>>>>>>>>
>>>>>>>>> They also contain tests, and those tests actually do something,
>>>>>>>>> even
>>>>>>>>> though it is not much :-)
>>>>>>>>>
>>>>>>>> Thanks Roland. I'll try one of those next.
>>>>>>> [snip]
>>>>>>> The file:
>>>>>>> sqlpp11-connector-sqlite3/CMakeLists.txt
>>>>>>> had:
>>>>>>> include_directories("${PROJECT_SOURCE_DIR}/include")
>>>>>>> which lead to compile error because compiler wasn't looking in
>>>>>>> the sqlpp11/include. Adding the following line:
>>>>>>>
>>>>>>> include_directories("${PROJECT_SOURCE_DIR}/../sqlpp11/include")
>>>>>>> seemed to solve the problem.
>>>>>>>
>>>>>>> Is there some reason why the 2nd include_directories statment
>>>>>>> wasn't included in the CMakeLists.txt file?
>>>>>>>
>>>>>>> -regards,
>>>>>>> Larry
>>>>>> I assumed you'd be installing sqlpp11 first.
>>>>>>
>>>>> I installed each of the git clones in separate
>>>>> directories:
>>>>>
>>>>> /home/evansl/prog_dev/boost/git/sqlpp11:
>>>>> total used in directory 40 available 76979896
>>>>> drwxrwxr-x 8 evansl evansl 4096 Nov 12 04:42 .
>>>>> drwxr-xr-x 8 evansl evansl 4096 Nov 10 19:24 ..
>>>>> drwxrwxr-x 5 evansl evansl 4096 Nov 11 22:17 build
>>>>> -rw-rw-r-- 1 evansl evansl 134 Nov 11 18:21 cxxflags.txt
>>>>> -rw-rw-r-- 1 evansl evansl 61 Nov 11 18:21 cxxflags.txt~
>>>>> drwxrwxr-x 2 evansl evansl 4096 Nov 11 08:49 install
>>>>> drwxrwxr-x 3 evansl evansl 4096 Nov 11 22:19 logs
>>>>> drwxr-xr-x 6 evansl evansl 4096 Nov 10 19:26 sqlpp11
>>>>> drwxr-xr-x 6 evansl evansl 4096 Nov 12 04:42
>>>>> sqlpp11-connector-mysql
>>>>> drwxr-xr-x 6 evansl evansl 4096 Nov 11 22:17
>>>>> sqlpp11-connector-sqlite3
>>>>>
>>>>> IOW:
>>>>>
>>>>> ~/prog_dev/boost/git/sqlpp11 $ git clone
>>>>> https://github.com/rbock\/sqlpp11.git
>>>>>
>>>>> ~/prog_dev/boost/git/sqlpp11 $ git clone
>>>>> https://github.com/rbock\/sqlpp11-connector-sqlite3.git
>>>>>
>>>>> Was that not right?
>>>>>
>>>>> -regards,
>>>>> Larry
>>>>>
>>>> I meant make install :-)
>>>>
>>>> Regards,
>>>>
>>>> Roland
>>>>
>>>> PS: I' might be offline for a day or two
>>>>
>>> As shown by attached work.log, starting from a fresh clone,
>>> I tried cmake followed by make install and got an error.
>>>
>>> Could outline clearly what steps are needed to run the tests?
>>>
>>> -regards,
>>> Larry
>> cmake needs to be told the source directory. Here's what I do for
>> instance
>>
>> cmake . -DCMAKE_CXX_COMPILER=g++-4.8
>>
>> (I need to tell it the c++ compiler because cmake uses an older version
>> by default on my machine)
>>
>> HTH
>>
>> Roland
>>
> I've tried to get cmake to work; however, it only works for the:
> sqlpp11
> directory, but fails for the:
> sqlpp11-connector-sqlite3
> directory.
>
> I've attached the Makefile, and the output from `make targets_dir`.
> That target 1st clones sqlpp11, runs cmake in that directory,
> the make installs in that directory. Everything works find.
> However, with the sqlpp11-connector-sqlite3, the clone
> works, the cmake works; however, make gives a compilation
> error:
>
> /home/evansl/prog_dev/boost/git/sqlpp11/sqlpp11-connector-sqlite3/src/connection.cpp:29:31:
> fatal error: sqlpp11/exception.h: No such file or directory
> #include <sqlpp11/exception.h>
>
> caused by *not* including:
>
> -I/home/evansl/prog_dev/boost/git/sqlpp11/sqlpp11/include
>
> on the compiler command line.
>
> Is there something else I'm doing wrong?
>
> -regards,
> Larry
>
>
Hi Larry,

First of all, thank you for your patience!

As far as I can tell the problem results from your install directory not
being in the standard include path.

I have updated the CMakeLists file in the sqlpp11-connector-sqlite3
repository to default to

../sqlpp11/include (as suggested by you a few mail earlier)

This should work with your setup. I tested with your Makefile, just to
be sure :-)

If you want to use the installed version, you can specify the include
path via
-DSQLPP11_INCLUDE_DIR=<your path>

Best regards,

Roland


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