Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] CMake: Replace FetchContent_Populate #135

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 17 additions & 25 deletions ExampleCodes/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14)
cmake_minimum_required(VERSION 3.24)

project( AMReX-Tutorials
DESCRIPTION "Tutorials for the AMReX adaptive mesh refinement framework"
Expand Down Expand Up @@ -51,6 +51,14 @@ if( NOT DEFINED AMReX_DIR )
set(AMReX_GIT_BRANCH "development" CACHE STRING "The AMReX branch to checkout")
set(AMReX_INSTALL "NO" CACHE INTERNAL "Disable install target for amrex")

if(AMReX_FORTRAN)
enable_language(Fortran)
endif ()

if(AMReX_GPU_BACKEND STREQUAL "CUDA")
enable_language(CUDA)
endif()

include(FetchContent)
set(FETCHCONTENT_QUIET OFF) # Verbose ON

Expand All @@ -59,14 +67,14 @@ if( NOT DEFINED AMReX_DIR )
GIT_TAG ${AMReX_GIT_BRANCH}
)

if(NOT ${amrex}_POPULATED)
FetchContent_Populate(amrex)
if(NOT ${amrex}_POPULATED)
FetchContent_MakeAvailable(amrex)

list(APPEND CMAKE_MODULE_PATH ${amrex_SOURCE_DIR}/Tools/CMake)
list(APPEND CMAKE_MODULE_PATH ${amrex_SOURCE_DIR}/Tools/CMake)

# Load amrex options here so that they are
# available to the entire project
include(AMReXOptions)
# Load amrex options here so that they are
# available to the entire project
include(AMReXOptions)

if( AMReX_SUNDIALS )
if( NOT DEFINED SUNDIALS_DIR )
Expand All @@ -86,7 +94,7 @@ if( NOT DEFINED SUNDIALS_DIR )
)

if(NOT ${sundials}_POPULATED)
FetchContent_Populate(sundials)
FetchContent_MakeAvailable(sundials)
# set(SUNDIALS_DIR ${sundials_SOURCE_DIR})
# Set build options for subproject
set(EXAMPLES_ENABLE_C OFF CACHE INTERNAL "" )
Expand Down Expand Up @@ -122,9 +130,6 @@ if( NOT DEFINED SUNDIALS_DIR )
endif ()
list(APPEND CMAKE_MODULE_PATH ${sundials_SOURCE_DIR})

# Add SUNDIALS sources to the build
add_subdirectory(${sundials_SOURCE_DIR})

# This is to use the same target name uses by the sundials exported targets
add_library(SUNDIALS::cvode ALIAS sundials_cvode_static)
add_library(SUNDIALS::arkode ALIAS sundials_arkode_static)
Expand Down Expand Up @@ -167,14 +172,7 @@ endif ()

if(AMReX_GPU_BACKEND STREQUAL "CUDA")
enable_language(CUDA)
# AMReX 21.06+ supports CUDA_ARCHITECTURES
if(CMAKE_VERSION VERSION_LESS 3.20)
include(AMReX_SetupCUDA)
endif()
endif()

# Bring the populated content into the build
add_subdirectory(${amrex_SOURCE_DIR} ${amrex_BINARY_DIR})
endif()
else()
message(STATUS "Using existing AMReX library")
Expand All @@ -184,10 +182,6 @@ else()

if(AMReX_GPU_BACKEND STREQUAL "CUDA")
enable_language(CUDA)
# AMReX 21.06+ supports CUDA_ARCHITECTURES
if(CMAKE_VERSION VERSION_LESS 3.20)
include(AMReX_SetupCUDA)
endif()
endif()
endif()

Expand All @@ -210,10 +204,8 @@ if(TUTORIAL_PYTHON)
GIT_REPOSITORY ${pyAMReX_GIT_REPO}
GIT_TAG ${pyAMReX_GIT_BRANCH}
)

if(NOT fetchedpyamrex_POPULATED)
FetchContent_Populate(fetchedpyamrex)
add_subdirectory(${fetchedpyamrex_SOURCE_DIR} ${fetchedpyamrex_BINARY_DIR})
FetchContent_MakeAvailable(fetchedpyamrex)
endif()
endif()
endif()
Expand Down
8 changes: 2 additions & 6 deletions GuidedTutorials/HeatEquation/Exec/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
# For additional CMake compile options see
# https://amrex-codes.github.io/amrex/docs_html/BuildingAMReX.html#building-with-cmake

cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.24)

## Project name and source file languages
project(HeatEquation_EX0
Expand Down Expand Up @@ -57,11 +57,7 @@ if(NOT DEFINED AMReX_ROOT)
GIT_TAG origin/development
)

FetchContent_Populate(amrex_code)

# CMake will read the files in these directories and configure, build
# and install AMReX.
add_subdirectory(${amrex_code_SOURCE_DIR} ${amrex_code_BINARY_DIR})
FetchContent_MakeAvailable(amrex_code)

else()

Expand Down
8 changes: 2 additions & 6 deletions GuidedTutorials/HeatEquation_Simple/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# For additional CMake compile options see
# https://amrex-codes.github.io/amrex/docs_html/BuildingAMReX.html#building-with-cmake

cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.24)

# Project name and source file languages
project(HeatEquation_Simple
Expand All @@ -49,11 +49,7 @@ if(NOT DEFINED AMReX_ROOT)
GIT_TAG origin/development
)

FetchContent_Populate(amrex_code)

# CMake will read the files in these directories to configure, build
# and install AMReX.
add_subdirectory(${amrex_code_SOURCE_DIR} ${amrex_code_BINARY_DIR})
FetchContent_MakeAvailable(amrex_code)

else()

Expand Down
8 changes: 2 additions & 6 deletions GuidedTutorials/HelloWorld/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@



cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.24)

# Project name and source file language
project(HelloWorld
Expand All @@ -53,11 +53,7 @@ if(NOT DEFINED AMReX_ROOT)
GIT_TAG origin/development
)

FetchContent_Populate(amrex_code)

# CMake will read the files in these directories and configure, build
# and install AMReX.
add_subdirectory(${amrex_code_SOURCE_DIR} ${amrex_code_BINARY_DIR})
FetchContent_MakeAvailable(amrex_code)

else()

Expand Down
8 changes: 2 additions & 6 deletions GuidedTutorials/MultiFab/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@



cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.24)

# Project name and source file language
project(MultiFab
Expand All @@ -53,11 +53,7 @@ if(NOT DEFINED AMReX_ROOT)
GIT_TAG origin/development
)

FetchContent_Populate(amrex_code)

# CMake will read the files in these directories and configure, build
# and install AMReX.
add_subdirectory(${amrex_code_SOURCE_DIR} ${amrex_code_BINARY_DIR})
FetchContent_MakeAvailable(amrex_code)

else()

Expand Down
Loading