mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-16 12:51:13 +08:00
71 lines
3.2 KiB
CMake
71 lines
3.2 KiB
CMake
# 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.
|
|
|
|
# Temporarly prepend CMAKE_MODULE_PATH with current directory to find helper scripts such as FindPackage scripts
|
|
set(CMAKE_MODULE_PATH_save ${CMAKE_MODULE_PATH})
|
|
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
include(CMakeFindDependencyMacro)
|
|
find_dependency(Threads)
|
|
find_dependency(date REQUIRED)
|
|
|
|
# Work out the set of components to load
|
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_comps ${${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS})
|
|
endif()
|
|
|
|
# Check all required components are available before trying to load any
|
|
foreach(comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_comps)
|
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED_${comp} AND NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/Sqlpp11${comp}Config.cmake)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Sqlpp11 missing required component: ${comp}")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
|
return()
|
|
endif()
|
|
endforeach()
|
|
|
|
# Add the target file
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Sqlpp11Targets.cmake)
|
|
|
|
# Load any optional components
|
|
foreach(comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_comps)
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Sqlpp11${comp}Config.cmake OPTIONAL)
|
|
endforeach()
|
|
|
|
# Import "ddl2cpp" script
|
|
if(NOT TARGET sqlpp11::ddl2cpp)
|
|
get_filename_component(sqlpp11_ddl2cpp_location "${CMAKE_CURRENT_LIST_DIR}/../../../bin/sqlpp11-ddl2cpp" REALPATH)
|
|
if(NOT EXISTS "${sqlpp11_ddl2cpp_location}")
|
|
message(FATAL_ERROR "The imported target sqlpp11::ddl2cpp references the file '${sqlpp11_ddl2cpp_location}' but this file does not exists.")
|
|
endif()
|
|
add_executable(sqlpp11::ddl2cpp IMPORTED)
|
|
set_target_properties(sqlpp11::ddl2cpp PROPERTIES
|
|
IMPORTED_LOCATION "${sqlpp11_ddl2cpp_location}"
|
|
)
|
|
unset(sqlpp11_ddl2cpp_location)
|
|
endif()
|
|
|
|
# Resture module path
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH_save})
|
|
unset(CMAKE_MODULE_PATH_save) |