diff --git a/CMakeLists.txt b/CMakeLists.txt index 46da4a9668..32f4ffdf4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,17 +39,15 @@ ENDIF() INCLUDE(GNUInstallDirs) IF (KOKKOSKERNELS_HAS_TRILINOS) SET(TRILINOS_INCDIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}) - SET(KOKKOSKERNELS_HEADER_DIR ${TRILINOS_INCDIR}) + SET(KOKKOSKERNELS_HEADER_INSTALL_DIR ${TRILINOS_INCDIR}) SET(KOKKOS_ENABLE_CUDA_UVM ${Kokkos_ENABLE_CUDA_UVM}) ELSEIF(KOKKOSKERNELS_HAS_PARENT) - SET(KOKKOSKERNELS_HEADER_DIR "${CMAKE_INSTALL_INCLUDEDIR}/kokkos-kernels") - SET(KOKKOS_DEPENDENCY_NAME kokkos) #depend directly on library + SET(KOKKOSKERNELS_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/kokkos-kernels") SET(KOKKOS_ENABLE_CUDA_UVM ${Kokkos_ENABLE_CUDA_UVM}) ELSE() FIND_PACKAGE(Kokkos REQUIRED) MESSAGE(STATUS "Found Kokkos at ${Kokkos_DIR}") - SET(KOKKOSKERNELS_HEADER_DIR "${CMAKE_INSTALL_INCLUDEDIR}") - SET(KOKKOS_DEPENDENCY_NAME Kokkos::kokkos) #depend on installed library + SET(KOKKOSKERNELS_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") KOKKOS_CHECK(OPTIONS CUDA_UVM RETURN_VALUE KOKKOS_ENABLE_CUDA_UVM) ENDIF() diff --git a/cmake/kokkoskernels_tribits.cmake b/cmake/kokkoskernels_tribits.cmake index 9b7c5e7452..6ec672e86a 100644 --- a/cmake/kokkoskernels_tribits.cmake +++ b/cmake/kokkoskernels_tribits.cmake @@ -10,7 +10,7 @@ ENDIF() MACRO(KOKKOSKERNELS_PACKAGE_POSTPROCESS) IF (KOKKOSKERNELS_HAS_TRILINOS) TRIBITS_PACKAGE_POSTPROCESS() - ELSEIF(NOT KOKKOSKERNELS_HAS_PARENT) + ELSE() INCLUDE(CMakePackageConfigHelpers) configure_package_config_file(cmake/KokkosKernelsConfig.cmake.in "${KokkosKernels_BINARY_DIR}/KokkosKernelsConfig.cmake" @@ -106,13 +106,13 @@ INSTALL( INSTALL( FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + DESTINATION ${KOKKOSKERNELS_HEADER_INSTALL_DIR} COMPONENT ${PACKAGE_NAME} ) INSTALL( FILES ${PARSE_HEADERS} - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + DESTINATION ${KOKKOSKERNELS_HEADER_INSTALL_DIR} ) ENDFUNCTION(KOKKOSKERNELS_INTERNAL_ADD_LIBRARY LIBRARY_NAME) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0bb0722f89..008466360d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -110,7 +110,6 @@ IF (KOKKOSKERNELS_INST_EXECSPACE_CUDA) ENDIF() LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h) -#LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_ETIHelperMacros.h) #----------------------------------------------------------------------------- @@ -120,15 +119,22 @@ KOKKOSKERNELS_ADD_LIBRARY( SOURCES ${SOURCES} ) +# It does not seem to be possible to automatically have headers installed +# in the correct subdirectory structure using HEADERS and ADD_LIBRARY with tribits +# Force the specializations to be installed in a subdirectory +APPEND_GLOB(HEADERS_GENERATED ${CMAKE_CURRENT_SOURCE_DIR}/impl/generated_specializations_hpp/*.hpp) +INSTALL(FILES ${HEADERS_GENERATED} DESTINATION ${KOKKOSKERNELS_HEADER_INSTALL_DIR}/generated_specializations_hpp/) + IF (KOKKOSKERNELS_HAS_TRILINOS) #no linking commands required - tribits does this ELSE() ADD_LIBRARY(Kokkos::kokkoskernels ALIAS kokkoskernels) - TARGET_LINK_LIBRARIES(kokkoskernels PUBLIC ${KOKKOS_DEPENDENCY_NAME}) + TARGET_LINK_LIBRARIES(kokkoskernels PUBLIC Kokkos::kokkos) FOREACH(DIR ${KK_INCLUDE_DIRS}) TARGET_INCLUDE_DIRECTORIES(kokkoskernels PUBLIC $) ENDFOREACH() - TARGET_INCLUDE_DIRECTORIES(kokkoskernels PUBLIC $) + TARGET_INCLUDE_DIRECTORIES(kokkoskernels PUBLIC + $) ENDIF() KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC BLAS) @@ -141,15 +147,3 @@ KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC MKL) KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC CUBLAS) KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC CUSPARSE) # Not yet here KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC MAGMA) - -KOKKOSKERNELS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/impl/generated_specializations_hpp) -APPEND_GLOB(HEADERS_GENERATED ${CMAKE_CURRENT_SOURCE_DIR}/impl/generated_specializations_hpp/*.hpp) -INSTALL(FILES ${HEADERS_GENERATED} DESTINATION ${KOKKOSKERNELS_HEADER_DIR}/generated_specializations_hpp/) - -# -# Make a trivial change here if you add a file either to this -# directory, or to the impl/ subdirectory. Keep making changes -# whenever you add or remove a .cpp or .hpp file, and everything will -# be OK. Here is another such change, and here is yet another. -# -