diff --git a/CMakeLists.txt b/CMakeLists.txt index f9384b48..5ceae772 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,25 +22,21 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.2 FATAL_ERROR) +project(sqlpp11 VERSION 0.1 LANGUAGES CXX) -# Cygwin does not define WIN32 and warn if not use with this flag -set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required - -project (sqlpp11) enable_testing() -message(STATUS "Using ${CMAKE_CXX_COMPILER} (compiler id: ${CMAKE_CXX_COMPILER_ID})") -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(CMAKE_CXX_FLAGS "-std=c++11 -Wall ${CMAKE_CXX_FLAGS}") -elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "-std=c++11 -Wall ${CMAKE_CXX_FLAGS}") -endif () -set(CMAKE_CXX_FLAGS "-Wconversion -Wpedantic -Wshadow ${CMAKE_CXX_FLAGS}") +add_library(sqlpp11 INTERFACE) + +target_include_directories(sqlpp11 INTERFACE + $ + ) + +target_compile_features(sqlpp11 INTERFACE + cxx_variadic_templates + ) -set(include_dir "${PROJECT_SOURCE_DIR}/include") -file(GLOB_RECURSE sqlpp_headers "${include_dir}/*.h") -include_directories("${include_dir}") add_subdirectory(tests) add_subdirectory(test_constraints) add_subdirectory(examples) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 589a0b52..3f6e46b5 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -22,8 +22,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -include_directories(../tests) - set(example_names #sample insert @@ -40,6 +38,7 @@ endif() create_test_sourcelist(example_sources example_main.cpp ${example_names}) add_executable(sqlpp11_examples ${example_sources}) +target_link_libraries(sqlpp11_examples PRIVATE sqlpp11 sqlpp11_testing) foreach(example IN LISTS example_names) add_test(NAME sqlpp11.examples.${example} diff --git a/test_constraints/CMakeLists.txt b/test_constraints/CMakeLists.txt index 9f388e28..87e7d197 100644 --- a/test_constraints/CMakeLists.txt +++ b/test_constraints/CMakeLists.txt @@ -22,12 +22,11 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -include_directories(../tests) - function(test_constraint name pattern) set(test sqlpp11.test_constraints.${name}) set(target sqlpp11_${name}) add_executable(${target} EXCLUDE_FROM_ALL ${name}.cpp) + target_link_libraries(${target} PRIVATE sqlpp11 sqlpp11_testing) add_test(NAME ${test} COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target ${target} ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d6a594a4..669b2b9f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -22,6 +22,10 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +add_library(sqlpp11_testing INTERFACE) +target_include_directories(sqlpp11_testing INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_options(sqlpp11_testing INTERFACE -Wall -Wextra -pedantic) + set(test_names BooleanExpression CustomQuery @@ -41,6 +45,7 @@ set(test_names create_test_sourcelist(test_sources test_main.cpp ${test_names}) add_executable(sqlpp11_tests ${test_sources}) +target_link_libraries(sqlpp11_tests PRIVATE sqlpp11 sqlpp11_testing) foreach(test IN LISTS test_names) add_test(NAME sqlpp11.tests.${test}