[odb-users] cmake and odt
Johannes Lochmann
johannes.lochmann at googlemail.com
Wed Sep 14 03:02:56 EDT 2011
Hi Michal, hi list,
works perfectly!
Thank you
Johannes
Am 11.09.11 23:06, schrieb Michal Snoch:
> Hi Johann,
>
> I had same problem few days before :) I'm not sure if it's the one or
> the best option to solve
> the problem but that works for me fine.
>
> First of all, you have to have var with headers which you want to
> parse with odb i.e.
>
> set(core_odb_src header1.h header2.h ... headerN.h)
>
> secondy you have to add something like this (I probably found solution
> on this group but im not sure ;) )
>
> foreach(_file ${core_odb_src})
> string(REPLACE ".h" "-odb.cpp" gencppfile ${_file})
> add_custom_command(
> OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${gencppfile}
> COMMAND /usr/local/odb/bin/odb --database pgsql --profile qt
> --hxx-suffix .hpp --ixx-suffix .ipp --cxx-suffix .cpp
> --output-dir ${CMAKE_CURRENT_SOURCE_DIR}
> --generate-query --generate-schema --schema-format embedded
> ${CMAKE_CURRENT_SOURCE_DIR}/${_file}
> -I${QT_INCLUDE_DIR}/QtCore
> -I${QT_INCLUDE_DIR}
> DEPENDS ${_file}
> COMMENT "Building odb for ${_file}"
> )
> list(APPEND core_lib_src ${gencppfile})
> endforeach()
>
> As you see I need to add some options to odb, but it's not necessary
> if you not use boost or qt. Im wondering
> if I can set some runtime option in cmake (ie -odb=pathtoodb) so i can
> do it more flexible?
>
> The last thing is adding the libraries
>
> target_link_libraries(core odb odb-pgsql odb-qt)
>
> Complete cmake file looks like this
>
> set(core_lib_src core.cpp line.cpp)
>
> set(core_lib_headers core.h)
> set(core_odb_src line.h)
>
> INCLUDE(${QT_USE_FILE})
> ADD_DEFINITIONS(${QT_DEFINITIONS})
>
> foreach(_file ${core_odb_src})
> string(REPLACE ".h" "-odb.cpp" gencppfile ${_file})
> add_custom_command(
> OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${gencppfile}
> COMMAND /usr/local/odb/bin/odb --database pgsql --profile qt
> --hxx-suffix .hpp --ixx-suffix .ipp --cxx-suffix .cpp
> --output-dir ${CMAKE_CURRENT_SOURCE_DIR}
> --generate-query --generate-schema --schema-format embedded
> ${CMAKE_CURRENT_SOURCE_DIR}/${_file}
> -I${QT_INCLUDE_DIR}/QtCore
> -I${QT_INCLUDE_DIR}
> DEPENDS ${_file}
> COMMENT "Building odb for ${_file}"
> )
> list(APPEND core_lib_src ${gencppfile})
> endforeach()
>
> add_library(core SHARED ${core_lib_src})
>
> target_link_libraries(core odb odb-pgsql odb-qt)
> target_link_libraries(core ${QT_LIBRARIES} plugins)
>
> I hope that help :)
>
> Michal
>
> Dnia 11-09-2011 o 19:40:09 Johannes Lochmann
> <johannes.lochmann at googlemail.com> napisał(a):
>
>> Hello,
>>
>> is anybody using odb in a cmake environment and can give me some
>> hints on how to handle the call to the odb compiler?
>>
>> Thank you
>>
>> Johannes
>
More information about the odb-users
mailing list