diff --git a/CMakeLists.txt b/CMakeLists.txt index e94438ab..1670d13f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 @@ -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 ) @@ -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() diff --git a/cmake/gauxc-config.cmake.in b/cmake/gauxc-config.cmake.in index d7fcb9f1..260d3acb 100644 --- a/cmake/gauxc-config.cmake.in +++ b/cmake/gauxc-config.cmake.in @@ -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 ) @@ -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) \ No newline at end of file diff --git a/cmake/gauxc-dep-versions.cmake b/cmake/gauxc-dep-versions.cmake index b53af5b4..4230bc60 100644 --- a/cmake/gauxc-dep-versions.cmake +++ b/cmake/gauxc-dep-versions.cmake @@ -1,5 +1,5 @@ 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 ) @@ -7,8 +7,8 @@ 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 ) diff --git a/cmake/gauxc-linalg-modules.cmake b/cmake/gauxc-linalg-modules.cmake index 97ca026f..d53dfe3a 100644 --- a/cmake/gauxc-linalg-modules.cmake +++ b/cmake/gauxc-linalg-modules.cmake @@ -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() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 21d8ff7f..96e08d5b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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 ) @@ -47,9 +50,12 @@ configure_file( target_link_libraries( gauxc PUBLIC ExchCXX::ExchCXX IntegratorXX::IntegratorXX - OpenMP::OpenMP_CXX ) +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()