mirror of
https://github.com/cuberite/SQLiteCpp.git
synced 2025-08-04 09:46:02 -04:00
Now build the provided copy of SQLite3 C library instead of using the Linux sqlite3-dev package
- for ease of use and cross-platform/linux distribution compatibility
This commit is contained in:
parent
8f28c4c58f
commit
a573c8c6b1
@ -12,18 +12,8 @@ project(SQLiteCpp)
|
|||||||
# Define useful variables to handle OS differences:
|
# Define useful variables to handle OS differences:
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(DEV_NULL "NUL")
|
set(DEV_NULL "NUL")
|
||||||
# build the SQLite3 C library for Windows (for ease of use)
|
|
||||||
set(SQLITECPP_INTERNAL_SQLITE_DEFAULT ON)
|
|
||||||
set(SQLITE_ENABLE_COLUMN_METADATA_DEFAULT ON)
|
|
||||||
else (WIN32) # UNIX
|
else (WIN32) # UNIX
|
||||||
set(DEV_NULL "/dev/null")
|
set(DEV_NULL "/dev/null")
|
||||||
# do not build the SQLite3 C library, but uses the Linux/Mac OS X sqlite3-dev package
|
|
||||||
set(SQLITECPP_INTERNAL_SQLITE_DEFAULT OFF)
|
|
||||||
if (APPLE)
|
|
||||||
set(SQLITE_ENABLE_COLUMN_METADATA_DEFAULT OFF)
|
|
||||||
else (APPLE)
|
|
||||||
set(SQLITE_ENABLE_COLUMN_METADATA_DEFAULT ON)
|
|
||||||
endif (APPLE)
|
|
||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
# then Compiler/IDE differences:
|
# then Compiler/IDE differences:
|
||||||
@ -40,10 +30,11 @@ if (MSVC)
|
|||||||
else (MSVC)
|
else (MSVC)
|
||||||
set(CPPLINT_ARG_OUTPUT "--output=eclipse")
|
set(CPPLINT_ARG_OUTPUT "--output=eclipse")
|
||||||
set(CPPCHECK_ARG_TEMPLATE "--template=gcc")
|
set(CPPCHECK_ARG_TEMPLATE "--template=gcc")
|
||||||
|
# Useful compile flags and extra warnings
|
||||||
|
#add_compile_options() is not supported with CMake 2.8.7 of Ubuntu 12.04 on Travis-CI
|
||||||
|
add_definitions(-fstack-protector -Wall -Winit-self -Wswitch-enum -Wshadow -Winline)
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX)
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
# GCC flags
|
# GCC flags
|
||||||
#add_compile_options() is not supported with CMake 2.8.7 of Ubuntu 12.04 on Travis-CI
|
|
||||||
add_definitions(-rdynamic -fstack-protector-all -Wall -Wextra -pedantic -Wformat-security -Winit-self -Wswitch-default -Wswitch-enum -Wfloat-equal -Wshadow -Wcast-qual -Wconversion -Wlogical-op -Winline)
|
|
||||||
if (SQLITECPP_USE_GCOV AND CMAKE_COMPILER_IS_GNUCXX)
|
if (SQLITECPP_USE_GCOV AND CMAKE_COMPILER_IS_GNUCXX)
|
||||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
message (STATUS "Using GCov instrumentation")
|
message (STATUS "Using GCov instrumentation")
|
||||||
@ -53,9 +44,6 @@ else (MSVC)
|
|||||||
add_definitions (-fprofile-arcs -ftest-coverage)
|
add_definitions (-fprofile-arcs -ftest-coverage)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||||
endif ()
|
endif ()
|
||||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
||||||
# Clang flags
|
|
||||||
add_definitions(-fstack-protector-all -Wall -Wextra -pedantic -Wformat-security -Winit-self -Wswitch-default -Wswitch-enum -Wfloat-equal -Wshadow -Wcast-qual -Wconversion -Winline)
|
|
||||||
endif (CMAKE_COMPILER_IS_GNUCXX)
|
endif (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
endif (MSVC)
|
endif (MSVC)
|
||||||
# and then common variables
|
# and then common variables
|
||||||
@ -65,7 +53,7 @@ set(CPPLINT_ARG_LINELENGTH "--linelength=120")
|
|||||||
|
|
||||||
# Options relative to SQLite and SQLiteC++ functions
|
# Options relative to SQLite and SQLiteC++ functions
|
||||||
|
|
||||||
option(SQLITE_ENABLE_COLUMN_METADATA "Enable Column::getName(). Require support from sqlite3 library." ${SQLITE_ENABLE_COLUMN_METADATA_DEFAULT})
|
option(SQLITE_ENABLE_COLUMN_METADATA "Enable Column::getName(). Require support from sqlite3 library." ON)
|
||||||
if (SQLITE_ENABLE_COLUMN_METADATA)
|
if (SQLITE_ENABLE_COLUMN_METADATA)
|
||||||
# Enable the use of SQLite column metadata and Column::getName() method,
|
# Enable the use of SQLite column metadata and Column::getName() method,
|
||||||
# Require that the sqlite3 library is also compiled with this flag (default under Debian/Ubuntu, but not on Mac OS X).
|
# Require that the sqlite3 library is also compiled with this flag (default under Debian/Ubuntu, but not on Mac OS X).
|
||||||
@ -79,7 +67,7 @@ if (SQLITE_ENABLE_ASSERT_HANDLER)
|
|||||||
endif (SQLITE_ENABLE_ASSERT_HANDLER)
|
endif (SQLITE_ENABLE_ASSERT_HANDLER)
|
||||||
|
|
||||||
|
|
||||||
## Core source code ##
|
## Build the C++ Wrapper ##
|
||||||
|
|
||||||
# adding a new file require explicittly modifing the CMakeLists.txt
|
# adding a new file require explicittly modifing the CMakeLists.txt
|
||||||
# so that CMake knows that it should rebuild the project (it is best practice)
|
# so that CMake knows that it should rebuild the project (it is best practice)
|
||||||
@ -155,11 +143,11 @@ if (UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Cla
|
|||||||
endif (UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
|
endif (UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
|
||||||
|
|
||||||
|
|
||||||
# SQLite3 library (mostly usefull under Windows)
|
## Build provided copy of SQLite3 C library ##
|
||||||
|
|
||||||
option(SQLITECPP_INTERNAL_SQLITE "Add the internal SQLite3 source to the project." ${SQLITECPP_INTERNAL_SQLITE_DEFAULT})
|
option(SQLITECPP_INTERNAL_SQLITE "Add the internal SQLite3 source to the project." ON)
|
||||||
if (SQLITECPP_INTERNAL_SQLITE)
|
if (SQLITECPP_INTERNAL_SQLITE)
|
||||||
# build the SQLite3 C library for Windows (for ease of use) versus Linux sqlite3-dev package
|
# build the SQLite3 C library (for ease of use/compatibility) versus Linux sqlite3-dev package
|
||||||
add_subdirectory(sqlite3)
|
add_subdirectory(sqlite3)
|
||||||
include_directories("${PROJECT_SOURCE_DIR}/sqlite3")
|
include_directories("${PROJECT_SOURCE_DIR}/sqlite3")
|
||||||
endif (SQLITECPP_INTERNAL_SQLITE)
|
endif (SQLITECPP_INTERNAL_SQLITE)
|
||||||
@ -218,6 +206,13 @@ if (SQLITECPP_BUILD_EXAMPLES)
|
|||||||
# add the basic example executable
|
# add the basic example executable
|
||||||
add_executable(SQLiteCpp_example1 ${SQLITECPP_EXAMPLES})
|
add_executable(SQLiteCpp_example1 ${SQLITECPP_EXAMPLES})
|
||||||
target_link_libraries(SQLiteCpp_example1 SQLiteCpp sqlite3)
|
target_link_libraries(SQLiteCpp_example1 SQLiteCpp sqlite3)
|
||||||
|
# Link target with pthread and dl for linux
|
||||||
|
if (UNIX)
|
||||||
|
target_link_libraries(SQLiteCpp_example1 pthread)
|
||||||
|
if (NOT APPLE)
|
||||||
|
target_link_libraries(SQLiteCpp_example1 dl)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
else (SQLITECPP_BUILD_EXAMPLES)
|
else (SQLITECPP_BUILD_EXAMPLES)
|
||||||
message(STATUS "SQLITECPP_BUILD_EXAMPLES OFF")
|
message(STATUS "SQLITECPP_BUILD_EXAMPLES OFF")
|
||||||
endif (SQLITECPP_BUILD_EXAMPLES)
|
endif (SQLITECPP_BUILD_EXAMPLES)
|
||||||
@ -238,6 +233,10 @@ if (SQLITECPP_BUILD_TESTS)
|
|||||||
# add the unit test executable
|
# add the unit test executable
|
||||||
add_executable(SQLiteCpp_tests ${SQLITECPP_TESTS})
|
add_executable(SQLiteCpp_tests ${SQLITECPP_TESTS})
|
||||||
target_link_libraries(SQLiteCpp_tests gtest_main SQLiteCpp sqlite3)
|
target_link_libraries(SQLiteCpp_tests gtest_main SQLiteCpp sqlite3)
|
||||||
|
# Link target with dl for linux
|
||||||
|
if (UNIX AND NOT APPLE)
|
||||||
|
target_link_libraries(SQLiteCpp_tests dl)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# add a "test" target:
|
# add a "test" target:
|
||||||
enable_testing()
|
enable_testing()
|
||||||
@ -261,7 +260,7 @@ else (NOT BIICODE)
|
|||||||
# Include base block dir
|
# Include base block dir
|
||||||
ADD_BIICODE_TARGETS()
|
ADD_BIICODE_TARGETS()
|
||||||
|
|
||||||
# Link target with dl for linux
|
# Link target with pthread and dl for linux
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
target_link_libraries(${BII_BLOCK_TARGET} INTERFACE pthread)
|
target_link_libraries(${BII_BLOCK_TARGET} INTERFACE pthread)
|
||||||
if (NOT APPLE)
|
if (NOT APPLE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user