# Copyright (c) 2007-2017 Hartmut Kaiser # Copyright (c) 2014-2015 Thomas Heller # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) # We explicitly disable ibverbs and ipc for now as they don't work currently set(parcelport_plugins) if(HPX_WITH_NETWORKING) set(parcelport_plugins ${parcelport_plugins} libfabric verbs mpi tcp) endif() set(HPX_STATIC_PARCELPORT_PLUGINS "" CACHE INTERNAL "" FORCE ) set(HPX_STATIC_PARCELPORT_PLUGINS_HEADERS "" CACHE INTERNAL "" FORCE ) set(HPX_STATIC_PARCELPORT_PLUGINS_SOURCES "" CACHE INTERNAL "" FORCE ) set(HPX_STATIC_PARCELPORT_PLUGINS_PROPERTIES "" CACHE INTERNAL "" FORCE ) foreach(type ${parcelport_plugins}) add_hpx_pseudo_target(plugins.parcelport.${type}) add_subdirectory(${type}) add_hpx_pseudo_dependencies(plugins.parcelport plugins.parcelport.${type}) endforeach() hpx_debug("creating static_parcelports.hpp: " ${HPX_STATIC_PARCELPORT_PLUGINS}) # add_subdirectory is called before to insure HPX_STATIC_PARCELPORT_PLUGINS # cache variable is filled set(_parcelport_export) set(_parcelport_init) foreach(parcelport ${HPX_STATIC_PARCELPORT_PLUGINS}) set(_parcelport_export "${_parcelport_export}HPX_EXPORT hpx::plugins::parcelport_factory_base *${parcelport}_factory_init(\n" ) set(_parcelport_export "${_parcelport_export} std::vector& factories);\n" ) set(_parcelport_init "${_parcelport_init} ${parcelport}_factory_init(factories);\n" ) endforeach() configure_file( "${PROJECT_SOURCE_DIR}/cmake/templates/static_parcelports.hpp.in" "${PROJECT_BINARY_DIR}/hpx/runtime/parcelset/static_parcelports.hpp" @ONLY ) # ------------------------------------------------------------------------------ # Write parcelport_defines.hpp # ------------------------------------------------------------------------------ # write config to build dir write_config_defines_file( TEMPLATE "" NAMESPACE "parcelport" FILENAME "${PROJECT_BINARY_DIR}/hpx/config/parcelport_defines.hpp" ) # write config to install dir write_config_defines_file( TEMPLATE "" NAMESPACE "parcelport" FILENAME "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hpx/config/parcelport_defines.hpp" )