Skip to content

Commit

Permalink
Merge pull request #628 from kokkos/fix-parent-install
Browse files Browse the repository at this point in the history
Cleanup installation/build of parent project builds
  • Loading branch information
ndellingwood authored Mar 12, 2020
2 parents 555a8a4 + afb8f9a commit 1f89b17
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 23 deletions.
8 changes: 3 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down
6 changes: 3 additions & 3 deletions cmake/kokkoskernels_tribits.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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)
Expand Down
24 changes: 9 additions & 15 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

#-----------------------------------------------------------------------------

Expand All @@ -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 $<BUILD_INTERFACE:${DIR}>)
ENDFOREACH()
TARGET_INCLUDE_DIRECTORIES(kokkoskernels PUBLIC $<INSTALL_INTERFACE:include>)
TARGET_INCLUDE_DIRECTORIES(kokkoskernels PUBLIC
$<INSTALL_INTERFACE:${KOKKOSKERNELS_HEADER_INSTALL_DIR}>)
ENDIF()

KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC BLAS)
Expand All @@ -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.
#

0 comments on commit 1f89b17

Please sign in to comment.