mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Search for VexCL and create an imported target.
Unfortunately, we cannot us the imported targets. They add some compile parameters using generator expressions based on the CXX_COMPILER_ID. While we are using the system CXX compiler for most of the stuff, some cuda code is compiled with nvcc which at least for some versions does not support -Wno-catch-value (which gets passed as normal compiler option).
This commit is contained in:
parent
d45f9d08f7
commit
adc2bf46b9
@ -226,6 +226,25 @@ if(amgcl_FOUND)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(OpenCL_FOUND)
|
||||
find_package(VexCL)
|
||||
if(VexCL_FOUND)
|
||||
set(HAVE_VEXCL 1)
|
||||
# generator expressions in vexcl do not seem to work and therefore
|
||||
# we cannot use the imported target. Hence we exract the needed info
|
||||
# from the targets
|
||||
get_property(VEXCL_INCLUDE_DIRS TARGET VexCL::Common PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_property(VEXCL_LINK_LIBRARIES TARGET VexCL::Common PROPERTY INTERFACE_LINK_LIBRARIES)
|
||||
get_property(VEXCL_COMPILE_DEFINITIONS TARGET VexCL::OpenCL PROPERTY INTERFACE_COMPILE_DEFINITIONS)
|
||||
set(VEXCL_LINK_LIBRARIES "${VEXCL_LINK_LIBRARIES};OpenCL::OpenCL")
|
||||
add_library(OPM::VexCL::OpenCL INTERFACE IMPORTED)
|
||||
set_target_properties(OPM::VexCL::OpenCL PROPERTIES
|
||||
INTERFACE_COMPILE_DEFINITIONS "${VEXCL_COMPILE_DEFINITIONS}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${VEXCL_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${VEXCL_LINK_LIBRARIES}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# read the list of components from this file (in the project directory);
|
||||
# it should set various lists with the names of the files to include
|
||||
include (CMakeLists_files.cmake)
|
||||
@ -541,6 +560,9 @@ if(OpenCL_FOUND)
|
||||
target_link_libraries( opmsimulators PUBLIC ${OpenCL_LIBRARIES} )
|
||||
endif()
|
||||
|
||||
if(VexCL_FOUND)
|
||||
target_link_libraries( opmsimulators PUBLIC OPM::VexCL::OpenCL )
|
||||
endif()
|
||||
if(HAVE_FPGA)
|
||||
add_dependencies(opmsimulators FPGA_library)
|
||||
ExternalProject_Get_Property(FPGA_library binary_dir)
|
||||
|
@ -9,6 +9,7 @@ set (opm-simulators_CONFIG_VAR
|
||||
HAVE_OPENCL
|
||||
HAVE_FPGA
|
||||
HAVE_AMGCL
|
||||
HAVE_VEXCL
|
||||
HAVE_SUITESPARSE_UMFPACK_H
|
||||
HAVE_DUNE_ISTL
|
||||
DUNE_ISTL_VERSION_MAJOR
|
||||
|
@ -43,6 +43,9 @@
|
||||
#include <amgcl/relaxation/cusparse_ilu0.hpp>
|
||||
#endif
|
||||
|
||||
#if HAVE_VEXCL
|
||||
#include <amgcl/backend/vexcl.hpp>
|
||||
#endif
|
||||
namespace bda
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user