Skip to content
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ set( FETCHCONTENT_UPDATES_DISCONNECTED ON CACHE BOOL "Disable FC Updates" )
project( GauXC VERSION 0.0.1 LANGUAGES C CXX )

# Place local modules in the path
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules )
list(PREPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
list(PREPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules )
include( gauxc-linalg-modules )

# Populate BUILD_TESTING prior to dependencies to avoid clash
Expand All @@ -19,6 +19,7 @@ endif()

# GauXC Options
option( GAUXC_ENABLE_HOST "Enable Host Integrator" ON )
option( GAUXC_ENABLE_OPENMP "Enable OpenMP" ON )
option( GAUXC_ENABLE_CUDA "Enable CUDA Bindings" OFF )
option( GAUXC_ENABLE_MAGMA "Enable MAGMA Linear Algebra" ON )
option( GAUXC_ENABLE_NCCL "Enable NCCL Collectives " OFF )
Expand Down Expand Up @@ -53,3 +54,10 @@ add_subdirectory( src )
if( CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND GAUXC_ENABLE_TESTS AND BUILD_TESTING )
add_subdirectory( tests )
endif()

list(REMOVE_AT CMAKE_MODULE_PATH 0)
list(REMOVE_AT CMAKE_MODULE_PATH 0)

if( linalg-cmake-modules_POPULATED )
list(REMOVE_AT CMAKE_MODULE_PATH 0)
endif()
16 changes: 9 additions & 7 deletions cmake/gauxc-config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,25 @@ cmake_minimum_required(VERSION 3.17 FATAL_ERROR) # Require CMake 3.17+

get_filename_component(GauXC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)

list(APPEND CMAKE_MODULE_PATH ${GauXC_CMAKE_DIR} )
list(APPEND CMAKE_MODULE_PATH ${GauXC_CMAKE_DIR}/linalg-cmake-modules )
list(PREPEND CMAKE_MODULE_PATH ${GauXC_CMAKE_DIR} )
list(PREPEND CMAKE_MODULE_PATH ${GauXC_CMAKE_DIR}/linalg-cmake-modules )
include(CMakeFindDependencyMacro)

# Always Required Dependencies
find_dependency( IntegratorXX )
find_dependency( ExchCXX )
find_dependency( OpenMP )


set( GAUXC_ENABLE_HOST @GAUXC_ENABLE_HOST@ )
set( GAUXC_ENABLE_OPENMP @GAUXC_ENABLE_OPENMP@ )
set( GAUXC_ENABLE_CUDA @GAUXC_ENABLE_CUDA@ )
set( GAUXC_ENABLE_MAGMA @GAUXC_ENABLE_MAGMA@ )
set( GAUXC_ENABLE_NCCL @GAUXC_ENABLE_NCCL@ )
set( GAUXC_ENABLE_MPI @GAUXC_ENABLE_MPI@ )
set( GAUXC_ENABLE_GAU2GRID @GAUXC_ENABLE_GAU2GRID@ )

if(GAUXC_ENABLE_OPENMP)
find_dependency( OpenMP )
endif()

if( GAUXC_ENABLE_HOST )
find_dependency( LAPACK )
Expand All @@ -42,11 +44,11 @@ if( GAUXC_ENABLE_MPI )
find_dependency( MPI )
endif()

list(REMOVE_AT CMAKE_MODULE_PATH -1)
list(REMOVE_AT CMAKE_MODULE_PATH -1)

if(NOT TARGET gauxc::gauxc)
include("${GauXC_CMAKE_DIR}/gauxc-targets.cmake")
endif()

set(GauXC_LIBRARIES gauxc::gauxc)

list(REMOVE_AT CMAKE_MODULE_PATH 0)
list(REMOVE_AT CMAKE_MODULE_PATH 0)
6 changes: 3 additions & 3 deletions cmake/gauxc-dep-versions.cmake
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
set( GAUXC_LINALG_MODULES_REPOSITORY https://github.com/wavefunction91/linalg-cmake-modules.git )
set( GAUXC_LINALG_MODULES_REVISION 89c82b78505f60657ef33b5bf38e5da059dff7f2 )
set( GAUXC_LINALG_MODULES_REVISION ab47b9e329b524cab3855861c7c70f26cd8c3704 )

set( GAUXC_CEREAL_REPOSITORY https://github.com/USCiLab/cereal.git )
set( GAUXC_CEREAL_REVISION v1.3.0 )

set( GAUXC_CUB_REPOSITORY https://github.com/NVIDIA/cub.git )
set( GAUXC_CUB_REVISION 1.10.0 )

set( GAUXC_EXCHCXX_REPOSITORY https://github.com/wavefunction91/ExchCXX.git )
set( GAUXC_EXCHCXX_REVISION 8966c818fe7531f3e85c0d8bc600bc310a99ba65 )
set( GAUXC_EXCHCXX_REPOSITORY https://github.com/dmejiar/ExchCXX.git )
set( GAUXC_EXCHCXX_REVISION master )

set( GAUXC_GAU2GRID_REPOSITORY https://github.com/dgasmith/gau2grid.git )
set( GAUXC_GAU2GRID_REVISION v2.0.6 )
Expand Down
2 changes: 1 addition & 1 deletion cmake/gauxc-linalg-modules.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ FetchContent_Declare( linalg-cmake-modules
FetchContent_GetProperties( linalg-cmake-modules )
if( NOT linalg-cmake-modules_POPULATED )
FetchContent_Populate( linalg-cmake-modules )
list( APPEND CMAKE_MODULE_PATH ${linalg-cmake-modules_SOURCE_DIR} )
list( INSERT CMAKE_MODULE_PATH 0 ${linalg-cmake-modules_SOURCE_DIR} )
endif()
10 changes: 8 additions & 2 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Parallelism
find_package( OpenMP REQUIRED )
if( GAUXC_ENABLE_OPENMP )
find_package( OpenMP REQUIRED )
endif()

if( GAUXC_ENABLE_MPI )
message( STATUS "GauXC Enabling MPI" )
find_package( MPI REQUIRED )
Expand Down Expand Up @@ -47,9 +50,12 @@ configure_file(
target_link_libraries( gauxc PUBLIC
ExchCXX::ExchCXX
IntegratorXX::IntegratorXX
OpenMP::OpenMP_CXX
)
Comment thread
wavefunction91 marked this conversation as resolved.

if(GAUXC_ENABLE_OPENMP)
target_link_libraries( gauxc PUBLIC OpenMP::OpenMP_CXX)
endif()

if( GAUXC_ENABLE_MPI )
target_link_libraries( gauxc PUBLIC MPI::MPI_C )
endif()
Expand Down