mirror of https://github.com/Qiskit/qiskit-aer.git
61 lines
2.1 KiB
CMake
61 lines
2.1 KiB
CMake
# This code is part of Qiskit.
|
|
#
|
|
# (C) Copyright IBM 2020
|
|
#
|
|
# This code is licensed under the Apache License, Version 2.0. You may
|
|
# obtain a copy of this license in the LICENSE.txt file in the root directory
|
|
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
|
|
#
|
|
# Any modifications or derivative works of this code must retain this
|
|
# copyright notice, and modified files need to carry a notice indicating
|
|
# that they have been altered from the originals.
|
|
|
|
|
|
macro(setup_dependencies)
|
|
# Defines AER_DEPENDENCY_PKG alias which refers to either conan-provided or system libraries.
|
|
if(DISABLE_CONAN)
|
|
_use_system_libraries()
|
|
else()
|
|
include(conan_utils)
|
|
setup_conan()
|
|
endif()
|
|
endmacro()
|
|
|
|
macro(_use_system_libraries)
|
|
# Use system libraries
|
|
_import_aer_system_dependency(nlohmann_json 3.1.1)
|
|
_import_aer_system_dependency(spdlog 1.9.2)
|
|
|
|
if(AER_THRUST_BACKEND AND NOT AER_THRUST_BACKEND STREQUAL "CUDA")
|
|
string(TOLOWER ${AER_THRUST_BACKEND} THRUST_BACKEND)
|
|
_import_aer_system_dependency(Thrust 1.9.5)
|
|
endif()
|
|
|
|
if(BUILD_TESTS)
|
|
_import_aer_system_dependency(Catch2 2.13.6)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
# Fix linking. See https://stackoverflow.com/questions/54068035
|
|
link_directories(/usr/local/lib) #brew
|
|
link_directories(/opt/local/lib) #ports
|
|
endif()
|
|
endmacro()
|
|
|
|
macro(_import_aer_system_dependency package version)
|
|
# Arguments:
|
|
# package: name of package to search for using find_package()
|
|
# version: version of package to search for
|
|
|
|
find_package(${package} ${version} EXACT QUIET)
|
|
if(NOT ${package}_FOUND)
|
|
message(STATUS "${package} ${version} NOT found! Looking for any other version available.")
|
|
find_package(${package} REQUIRED)
|
|
message(STATUS "${package} version found: ${${package}_VERSION}. WARNING: This version may not work!!!")
|
|
endif()
|
|
string(TOLOWER ${package} PACKAGE_LOWER) # Conan use lowercase for every lib
|
|
add_library(AER_DEPENDENCY_PKG::${PACKAGE_LOWER} INTERFACE IMPORTED)
|
|
target_link_libraries(AER_DEPENDENCY_PKG::${PACKAGE_LOWER} PUBLIC INTERFACE ${package})
|
|
message(STATUS "Using system-provided ${PACKAGE_LOWER} library")
|
|
endmacro()
|