Initial commit
This commit is contained in:
+118
@@ -0,0 +1,118 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(WFR-lib_odb CXX)
|
||||
|
||||
|
||||
# cmake options
|
||||
OPTION(USE_BUILDIN_ODB "Use buildin odb" ON)
|
||||
|
||||
|
||||
# Check whether we are called by another script
|
||||
get_directory_property(hasParent PARENT_DIRECTORY)
|
||||
|
||||
# Include libsqlite3
|
||||
add_subdirectory(sqlite3)
|
||||
# Provide some variables to parent script
|
||||
if(hasParent)
|
||||
set(Sqlite3_INCLUDE_DIR "${Sqlite3_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Sqlite3_LIBRARY_DIR "${Sqlite3_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Sqlite3_LIBRARIES "${Sqlite3_LIBRARIES}" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# Let's build our own copy of odb
|
||||
if (USE_BUILDIN_ODB)
|
||||
include(ExternalProject)
|
||||
|
||||
# Set odb version
|
||||
if(hasParent)
|
||||
set(odb_version "2.4.0" PARENT_SCOPE)
|
||||
set(odb_version "2.4.0")
|
||||
else()
|
||||
set(odb_version "2.4.0")
|
||||
endif()
|
||||
|
||||
set(libodb_common_CPPFLAGS "")
|
||||
set(libodb_common_CPPFLAGS "")
|
||||
set(libodb_common_DEPENDS "")
|
||||
set(libodb_common_include "-I${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/include")
|
||||
set(libodb_common_lib "-L${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/lib")
|
||||
|
||||
set(libodb_sqlite_CPPFLAGS "${libodb_common_include} -I${Sqlite3_INCLUDE_DIR}")
|
||||
set(libodb_sqlite_LDFLAGS "${libodb_common_lib} -L${Sqlite3_LIBRARY_DIR}")
|
||||
set(libodb_sqlite_DEPENDS "libodb_common")
|
||||
set(libodb_sqlite_include "-I${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/include -I${Sqlite3_INCLUDE_DIR}")
|
||||
set(libodb_sqlite_lib "-L${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/lib")
|
||||
|
||||
set(libodb_sqlite_DEPENDS ${libodb_sqlite_DEPENDS} sqlite3)
|
||||
|
||||
# How to build libodb-common
|
||||
ExternalProject_Add(libodb_common
|
||||
DEPENDS ${libodb_common_DEPENDS}
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libodb-${odb_version}
|
||||
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/libodb-${odb_version}/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install --libdir=${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/lib "CPPFLAGS=${libodb_common_CPPFLAGS}" "LDFLAGS=${libodb_common_LDFLAGS}"
|
||||
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libodb_common
|
||||
BUILD_COMMAND make install
|
||||
)
|
||||
|
||||
# How to build libodb-sqlite
|
||||
ExternalProject_Add(libodb_sqlite
|
||||
DEPENDS ${libodb_sqlite_DEPENDS}
|
||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libodb-sqlite-${odb_version}
|
||||
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/libodb-sqlite-${odb_version}/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install --libdir=${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/lib "CPPFLAGS=${libodb_sqlite_CPPFLAGS}" "LDFLAGS=${libodb_sqlite_LDFLAGS}" LIBS=-ldl
|
||||
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite
|
||||
BUILD_COMMAND make install
|
||||
)
|
||||
|
||||
# Where to install odb
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/include DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/lib DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/include DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/lib DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/odb-${odb_version}-x86_64-linux-gnu/ USE_SOURCE_PERMISSIONS DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/odb-config.cmake DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
# Provide some variables to parent script
|
||||
if(hasParent)
|
||||
set(Odb_Bin "${CMAKE_CURRENT_SOURCE_DIR}/odb-${odb_version}-x86_64-linux-gnu/bin/odb")
|
||||
set(Odb_Bin "${Odb_Bin}" PARENT_SCOPE)
|
||||
set(Libodb_common_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/include")
|
||||
set(Libodb_common_INCLUDE_DIR "${Libodb_common_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_INCLUDE_DIRS "${Libodb_common_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libodb_common/install/lib")
|
||||
set(Libodb_common_LIBRARY_DIR "${Libodb_common_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARY_DIRS "${Libodb_common_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARIES "${Libodb_common_LIBRARY_DIR}/libodb.a" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/include")
|
||||
set(Libodb_sqlite_INCLUDE_DIR "${Libodb_sqlite_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_INCLUDE_DIRS "${Libodb_sqlite_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libodb_sqlite/install/lib")
|
||||
set(Libodb_sqlite_LIBRARY_DIR "${Libodb_sqlite_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARY_DIRS "${Libodb_sqlite_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARIES "${Libodb_sqlite_LIBRARY_DIR}/libodb-sqlite.a" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
add_custom_target(libodb) # Dummy target for add_dependencies
|
||||
add_dependencies(libodb libodb_common libodb_sqlite)
|
||||
|
||||
|
||||
# Let's use an existing copy of odb
|
||||
else()
|
||||
add_custom_target(libodb) # Dummy target for add_dependencies
|
||||
find_package(ODB REQUIRED)
|
||||
if(hasParent)
|
||||
set(ODB_INCLUDE_DIR "${ODB_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(ODB_LIBRARY_DIR "${ODB_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(ODB_LIBRARIES "${ODB_LIBRARIES}" PARENT_SCOPE)
|
||||
set(Libodb_common_INCLUDE_DIR "${ODB_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_INCLUDE_DIRS "${Libodb_common_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARY_DIR "${ODB_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARY_DIRS "${Libodb_common_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_common_LIBRARIES "${Libodb_common_LIBRARIES}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_INCLUDE_DIR "${ODB_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_INCLUDE_DIRS "${Libodb_sqlite_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARY_DIR "${ODB_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARY_DIRS "${Libodb_sqlite_LIBRARY_DIR}" PARENT_SCOPE)
|
||||
set(Libodb_sqlite_LIBRARIES "${Libodb_sqlite_LIBRARIES}" PARENT_SCOPE)
|
||||
set(Odb_Bin "${Odb_Bin}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
Reference in New Issue
Block a user