diff --git a/CMakeLists.txt b/CMakeLists.txt index bc756454..69b16ce0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,12 +109,12 @@ option(kokkos_kernels_DISABLE "Disable Kokkos Kernels" OFF) if (NOT kokkos_DISABLE) # optional packages - optional_pkg_directory(kokkos "Kokkos" 1) + optional_pkg_directory(Kokkos "Kokkos" 1) - if (${kokkos_DIR_FOUND}) - find_package_local(kokkos Kokkos) - # Used to properly setup transitive dependency in checkpointConfig.cmake.in - set(CHECKPOINT_HAS_KOKKOS_LIBRARY 1) + if (${Kokkos_DIR_FOUND}) + find_package_local(Kokkos) + # Used to properly setup transitive dependency in checkpointConfig.cmake.in + set(CHECKPOINT_HAS_KOKKOS_LIBRARY 1) else() set(CHECKPOINT_HAS_KOKKOS_LIBRARY 0) endif() @@ -124,8 +124,8 @@ if (NOT kokkos_kernels_DISABLE) # optional packages optional_pkg_directory(KokkosKernels "Kokkos kernels" 1) - if (KokkosKernels_DIR_FOUND) - find_package_local(KokkosKernels KokkosKernels) + if (${KokkosKernels_DIR_FOUND}) + find_package_local(KokkosKernels) # Used to properly setup transitive dependency in checkpointConfig.cmake.in set(CHECKPOINT_HAS_KOKKOS_KERNELS_LIBRARY 1) else() diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index 222d0b74..e97c2644 100755 --- a/ci/build_cpp.sh +++ b/ci/build_cpp.sh @@ -50,8 +50,8 @@ cmake -G "${CMAKE_GENERATOR:-Ninja}" \ -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH:-}" \ -DCMAKE_INSTALL_PREFIX="$CHECKPOINT_BUILD/install" \ -DGTEST_ROOT="${GTEST_ROOT}" \ - -Dkokkos_DIR="${KOKKOS_ROOT}" \ - -DKokkosKernels_DIR="${KOKKOS_KERNELS_ROOT}" \ + -DKokkos_ROOT="${KOKKOS_ROOT}" \ + -DKokkosKernels_ROOT="${KOKKOS_KERNELS_ROOT}" \ "$CHECKPOINT" if test "${CHECKPOINT_DOXYGEN_ENABLED:-0}" -eq 1 diff --git a/ci/docker/ubuntu-18.04-clang-cpp.dockerfile b/ci/docker/ubuntu-18.04-clang-cpp.dockerfile index 90b7aceb..51dcc564 100644 --- a/ci/docker/ubuntu-18.04-clang-cpp.dockerfile +++ b/ci/docker/ubuntu-18.04-clang-cpp.dockerfile @@ -53,11 +53,11 @@ ENV GTEST_ROOT=/pkgs/gtest/install COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 0 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install ENV MPI_EXTRA_FLAGS="" \ CMAKE_PREFIX_PATH="/lib/x86_64-linux-gnu/" \ diff --git a/ci/docker/ubuntu-18.04-gnu-cpp.dockerfile b/ci/docker/ubuntu-18.04-gnu-cpp.dockerfile index 8770e219..e9b469cf 100644 --- a/ci/docker/ubuntu-18.04-gnu-cpp.dockerfile +++ b/ci/docker/ubuntu-18.04-gnu-cpp.dockerfile @@ -57,11 +57,11 @@ ENV GTEST_ROOT=/pkgs/gtest/install COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 1 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install ENV MPI_EXTRA_FLAGS="" \ PATH=/usr/lib/ccache/:$PATH diff --git a/ci/docker/ubuntu-18.04-intel-cpp.dockerfile b/ci/docker/ubuntu-18.04-intel-cpp.dockerfile index 384c36b0..9b5a823f 100644 --- a/ci/docker/ubuntu-18.04-intel-cpp.dockerfile +++ b/ci/docker/ubuntu-18.04-intel-cpp.dockerfile @@ -55,11 +55,11 @@ ENV CC=/opt/intel/install/bin/icc \ COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 1 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install ENV MPI_EXTRA_FLAGS="" \ PATH=/usr/lib/ccache/:$PATH \ diff --git a/ci/docker/ubuntu-20.04-gnu-docs.dockerfile b/ci/docker/ubuntu-20.04-gnu-docs.dockerfile index d81078cd..8b143f4c 100644 --- a/ci/docker/ubuntu-20.04-gnu-docs.dockerfile +++ b/ci/docker/ubuntu-20.04-gnu-docs.dockerfile @@ -47,11 +47,11 @@ ENV GTEST_ROOT=/pkgs/gtest/install COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 1 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install ENV MPI_EXTRA_FLAGS="" \ CMAKE_PREFIX_PATH="/lib/x86_64-linux-gnu/" \ diff --git a/ci/docker/ubuntu-20.04-nvidia-cpp.dockerfile b/ci/docker/ubuntu-20.04-nvidia-cpp.dockerfile index f87f66c2..7acb5f4b 100644 --- a/ci/docker/ubuntu-20.04-nvidia-cpp.dockerfile +++ b/ci/docker/ubuntu-20.04-nvidia-cpp.dockerfile @@ -48,7 +48,7 @@ ENV GTEST_ROOT=/pkgs/gtest/install COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 0 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install RUN mkdir -p /nvcc_wrapper/build && \ wget https://raw.githubusercontent.com/kokkos/kokkos/master/bin/nvcc_wrapper -P /nvcc_wrapper/build && \ @@ -60,7 +60,7 @@ ENV MPI_EXTRA_FLAGS="" \ COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install FROM base as build COPY . /checkpoint diff --git a/ci/docker/ubuntu-22.04-clang-cpp.dockerfile b/ci/docker/ubuntu-22.04-clang-cpp.dockerfile index f0e751bf..8a49b31f 100644 --- a/ci/docker/ubuntu-22.04-clang-cpp.dockerfile +++ b/ci/docker/ubuntu-22.04-clang-cpp.dockerfile @@ -55,11 +55,11 @@ ENV GTEST_ROOT=/pkgs/gtest/install COPY ./ci/deps/kokkos.sh kokkos.sh RUN ./kokkos.sh 4.1.00 /pkgs 0 -ENV KOKKOS_ROOT=/pkgs/kokkos/install/lib +ENV KOKKOS_ROOT=/pkgs/kokkos/install COPY ./ci/deps/kokkos-kernels.sh kokkos-kernels.sh RUN ./kokkos-kernels.sh 4.1.00 /pkgs -ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install/lib +ENV KOKKOS_KERNELS_ROOT=/pkgs/kokkos-kernels/install ENV MPI_EXTRA_FLAGS="" \ CMAKE_PREFIX_PATH="/lib/x86_64-linux-gnu/" \ diff --git a/cmake/checkpointConfig.cmake.in b/cmake/checkpointConfig.cmake.in index 6ff50af6..c8115130 100644 --- a/cmake/checkpointConfig.cmake.in +++ b/cmake/checkpointConfig.cmake.in @@ -6,6 +6,7 @@ include(${SELF_DIR}/checkpointTargets.cmake) include(CMakeFindDependencyMacro) if (@CHECKPOINT_HAS_KOKKOS_LIBRARY@) - set (kokkos_DIR @kokkos_DIR@) - find_dependency(kokkos REQUIRED HINTS @kokkos_DIR@ NAMES Kokkos) + set (Kokkos_DIR @Kokkos_DIR@) + set (Kokkos_ROOT @Kokkos_ROOT@) + find_dependency(kokkos REQUIRED HINTS @Kokkos_DIR@ @Kokkos_ROOT@ NAMES Kokkos) endif() diff --git a/cmake/load_package.cmake b/cmake/load_package.cmake index 11f24628..3dffa41b 100644 --- a/cmake/load_package.cmake +++ b/cmake/load_package.cmake @@ -21,7 +21,7 @@ macro(require_pkg_directory pkg_name pkg_user_name) endif() endmacro(require_pkg_directory) -macro(find_package_local pkg_name pkg_other_name) +macro(find_package_local pkg_name) get_directory_property(hasParent PARENT_DIRECTORY) if(hasParent) # Skip this logic when this macro was not invoked from the @@ -35,9 +35,7 @@ macro(find_package_local pkg_name pkg_other_name) if(DEFINED ${pkg_name}_DIR AND NOT DEFINED ${pkg_name}_ROOT) set(${pkg_name}_ROOT "${${pkg_name}_DIR}" "${${pkg_name}_DIR}/cmake/${pkg_name}/" - "${${pkg_name}_DIR}/cmake/${pkg_other_name}/" "${${pkg_name}_DIR}/CMake/${pkg_name}/" - "${${pkg_name}_DIR}/CMake/${pkg_other_name}/" ) endif() @@ -45,10 +43,9 @@ macro(find_package_local pkg_name pkg_other_name) STATUS "find_package_local: pkg name=\"${pkg_name}\", ${pkg_name}_ROOT=\"${${pkg_name}_ROOT}\"" ) - # Search locally only for package based on the user's supplied path; find_package( ${pkg_name} - NAMES ${pkg_name} ${pkg_other_name} + NAMES ${pkg_name} NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_BUILDS_PATH NO_CMAKE_SYSTEM_PATH diff --git a/docs/md/checkpoint_learn_build.md b/docs/md/checkpoint_learn_build.md index c443a7ac..18403acf 100644 --- a/docs/md/checkpoint_learn_build.md +++ b/docs/md/checkpoint_learn_build.md @@ -22,7 +22,7 @@ build configuration: | CMake Variable | Default Value | Description | | ---------------------------------------------------- | ------------- | --------------------------------------------- | | `gtest_DIR` | | Install directory for googletest | -| `kokkos_DIR` | | Install directory for kokkos | +| `Kokkos_DIR` | | Install directory for kokkos | | `KokkosKernels_DIR` | | Install directory for kokkoskernels | | `checkpoint_tests_enabled` | 0 | Build *checkpoint* tests | | `checkpoint_mpi_enabled` | 0 | Build *checkpoint* with MPI for tests | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c3205d9a..a6052487 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,8 +77,8 @@ target_compile_features(${CHECKPOINT_LIBRARY} PUBLIC cxx_std_17) include(CMakePrintHelpers) -if (${kokkos_DIR_FOUND}) - if (KokkosKernels_DIR_FOUND) +if (${Kokkos_DIR_FOUND}) + if (${KokkosKernels_DIR_FOUND}) message(STATUS "Checkpoint: Kokkos kernels enabled") set(KERNELS 1) # Kokkos Kernels historically installed its EXPORT targets in the Kokkos:: namespace, and several