diff --git a/CMakeLists.txt b/CMakeLists.txt index c9dfa8bb..58ab3755 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,13 +39,14 @@ if(NOT EXISTS ${DATE_INCLUDE_DIR}/date.h) message(" - download and unzip a current version from https://github.com/howardhinnant/date to ${DATE_INCLUDE_DIR}") message(" - set DATE_INCLUDE_DIR to point to the dir containing date.h from the date library") message("") -else() - target_include_directories(sqlpp11 INTERFACE - $ - $ - ) endif() +target_include_directories(sqlpp11 INTERFACE + $ + $ + $ + ) + if (NOT MSVC) target_compile_features(sqlpp11 INTERFACE cxx_alias_templates @@ -70,12 +71,51 @@ target_compile_features(sqlpp11 INTERFACE ) endif () +install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/sqlpp11" + DESTINATION include +) + +install(TARGETS sqlpp11 + EXPORT Sqlpp11Targets +) + +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/cmake/Sqlpp11ConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +export(EXPORT Sqlpp11Targets + FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/Sqlpp11Targets.cmake" +) + +configure_file(cmake/Sqlpp11Config.cmake + "${CMAKE_CURRENT_BINARY_DIR}/cmake/Sqlpp11Config.cmake" + COPYONLY +) + +set(ConfigPackageLocation lib/cmake/Sqlpp11) +install(EXPORT Sqlpp11Targets + FILE + Sqlpp11Targets.cmake + DESTINATION + ${ConfigPackageLocation} +) + +install( + FILES + cmake/Sqlpp11Config.cmake + "${CMAKE_CURRENT_BINARY_DIR}/cmake/Sqlpp11ConfigVersion.cmake" + DESTINATION + ${ConfigPackageLocation} +) + + add_subdirectory(tests) add_subdirectory(test_types) add_subdirectory(test_serializer) add_subdirectory(test_static_asserts) add_subdirectory(test_constraints) add_subdirectory(examples) - -install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/sqlpp11" DESTINATION include) - diff --git a/cmake/Sqlpp11Config.cmake b/cmake/Sqlpp11Config.cmake new file mode 100644 index 00000000..033d7f4b --- /dev/null +++ b/cmake/Sqlpp11Config.cmake @@ -0,0 +1,26 @@ +# Copyright (c) 2016, Christian David +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (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("${CMAKE_CURRENT_LIST_DIR}/Sqlpp11Targets.cmake")