Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
c8d3d23
Created the FlexPointer class and a basic capture test
ldowen Aug 20, 2025
769bdc9
Remove unnecessary delete kernel launches
ldowen Aug 21, 2025
969cefd
Update chai submodule, changed getPointer to data, removed FlexPointe…
ldowen Aug 21, 2025
1937dfe
Switched ArtificialViscosity to ArtificialViscosityView and switched …
ldowen Aug 25, 2025
871808c
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Aug 25, 2025
98c0482
Merge with feature/gpu/kernel
ldowen Sep 16, 2025
1c8a78e
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Sep 16, 2025
7840eff
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Sep 25, 2025
e8ce27a
Create a wrapper for chai::managed_ptr and update the managed pointer…
ldowen Sep 26, 2025
d9ac58b
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 6, 2025
b97ac29
Cosmetic changes
ldowen Oct 13, 2025
cd29861
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 13, 2025
d4559dd
Mid artvisc conversion effort
ldowen Oct 15, 2025
15db5b9
Created a ArtViscBase that both the value and view inherit from, remo…
ldowen Oct 15, 2025
1809e56
Update SPH classes to use new ArtViscView, update python wrappings fo…
ldowen Oct 16, 2025
44119d0
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 16, 2025
11d17de
Art Visc mostly working but still issue with RZ and handling inherita…
ldowen Oct 17, 2025
bb76782
Simplifying member data setting for ArtVisc classes, wrapped pure vir…
ldowen Oct 21, 2025
efc1de8
ArtVisc must be a friend of MonGView
ldowen Oct 21, 2025
619f155
Moved managed pointer data routines from protected into public to res…
ldowen Oct 21, 2025
c6c5ea3
Move managed ptr functions back to being protected and add pyb11prote…
ldowen Oct 21, 2025
d641dea
Added view accessors for MonG and LimitedMonG, fixed bug where LimMon…
ldowen Oct 21, 2025
0a87e78
Added nperh member data to field view, LimitedMonG now uses an averag…
ldowen Oct 22, 2025
e0006e8
Change QPiij inputs from FieldList to FieldListViews, had to remove t…
ldowen Oct 22, 2025
506e4e4
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 22, 2025
f74e38d
Update eigen version and include rocm variant
ldowen Oct 24, 2025
8c5ed01
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 24, 2025
06e4a63
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 29, 2025
3214a5b
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 29, 2025
f0e3d62
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Oct 30, 2025
997c2d1
Added gpu-rdc compile and link flag, made eigen geometry routines, so…
ldowen Nov 5, 2025
67665a4
Temporarily commented out python wrappings for ArtViscView, added Geo…
ldowen Nov 6, 2025
edeeaa9
Change std::pow back to fastmath::square
ldowen Nov 6, 2025
6a72f54
Split the art visc view up into new file and moved some art visc valu…
ldowen Nov 7, 2025
fd722a1
Forget to add a test file
ldowen Nov 7, 2025
77949de
Fix bug in tensorav test, fix eigen to a specific release
ldowen Nov 7, 2025
7d04c0f
Remove unused vars from geometry eigen tests
ldowen Nov 7, 2025
748940c
Change compiler warning cmake options back no having spheral prefix
ldowen Nov 10, 2025
5669764
Make spheral library static when hip is enabled
ldowen Nov 12, 2025
70a3ce9
Merge with develop
ldowen Nov 12, 2025
0c86bab
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Nov 18, 2025
b289d47
Merge branch '341-patch-for-axom011' into feature/gpu/art_visc
ldowen Nov 18, 2025
cc56f38
Inlined the static FieldNames, added default values for ArtViscBase m…
ldowen Nov 21, 2025
d578769
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Nov 21, 2025
66f170c
Merge with feature/inline-tensors
ldowen Nov 21, 2025
96c9658
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Nov 24, 2025
a580df1
Merge with feature/gpu/kernel
ldowen Dec 1, 2025
19ccb78
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Dec 1, 2025
81fe050
Changed art visc View.cc to ViewInline.hh, added rdc CMake flag that …
ldowen Dec 2, 2025
d1031b1
Merge branch 'feature/gpu/kernel' into feature/gpu/art_visc
ldowen Dec 4, 2025
b4d437a
Merge branch 'develop' into feature/gpu/art_visc
ldowen Dec 10, 2025
f0419d1
[skip-ci] Update release notes
ldowen Dec 10, 2025
70bc637
Merge with develop
ldowen Dec 15, 2025
f9dd3ab
Add view inline files to the CMake header list
ldowen Dec 15, 2025
8ee7cb3
Merge branch 'develop' into feature/gpu/art_visc
ldowen Dec 16, 2025
db2cb28
Stop overwriting CMAKE_INSTALL_RPATH and simply append to it
ldowen Dec 17, 2025
d817efe
Merge with develop
ldowen Dec 17, 2025
670b661
Modify openmp variant for some TPLs
ldowen Dec 18, 2025
227848b
Merge branch 'develop' into feature/gpu/art_visc
ldowen Dec 18, 2025
98008a2
Merge branch 'feature/gpu/art_visc' into feature/gpu/eval-deriv
ldowen Dec 18, 2025
976d76b
Added openmp as an option for the cpp tests, added a loop cpp test fo…
ldowen Dec 20, 2025
ca14064
Merge branch 'develop' into feature/gpu/art_visc
ldowen Dec 20, 2025
03c43cc
Merge branch 'feature/gpu/art_visc' into feature/gpu/eval-deriv
ldowen Dec 20, 2025
e347046
Added the SPHERAL_ENABLE_OPENMP CMake variable and compiler definitio…
ldowen Jan 5, 2026
7989195
Added RAJA atomic wrappers for tensor and vector geometry classes, fi…
ldowen Jan 12, 2026
9535b97
Added ~fortran variant to silo, WIP eval deriv GPU loop
ldowen Jan 15, 2026
35cc4b9
Many nasty dev changes for hackathon purposes, switched rocm version …
ldowen Jan 28, 2026
5275bde
Update versions for ROCM, Umpire, Camp, RAJA, LEOs, and Boost, modify…
ldowen Jan 29, 2026
3c37734
Merge with develop
ldowen Jan 29, 2026
039ddf1
Merge branch 'feature/gpu/art_visc' into feature/gpu/eval-deriv
ldowen Jan 29, 2026
624f2df
Removed uncommitted tests from cmake file
ldowen Jan 29, 2026
2ff2909
Merge with 459-update-to-rocm-710
ldowen Jan 29, 2026
4b61a30
Cleaned up and removed opts in SolidSPH eval deriv impl call, fixed r…
ldowen Jan 29, 2026
fc80084
Add test that tries to reproduce segfault
ldowen Jan 29, 2026
412f938
Have new RAJA version always require c++17
ldowen Jan 30, 2026
3d268f8
Replace deprecated std::iterator
ldowen Jan 30, 2026
e8fe6c8
Merge branch '459-update-to-rocm-710' into feature/gpu/eval-deriv
ldowen Jan 30, 2026
7eb3fbf
Added fortran libraries to implicit cmake variables through spack sin…
ldowen Feb 2, 2026
1b0316c
Add the fortran libraries based on the rocmcc version, not the hip ve…
ldowen Feb 2, 2026
6d1f5ee
Merge branch '459-update-to-rocm-710' into feature/gpu/eval-deriv
ldowen Feb 2, 2026
179c8e0
Switch llvm-amdgpu to rocmcc in spheral package
ldowen Feb 2, 2026
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
7 changes: 7 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ Notable changes include:
* Added std::span (boost::span until we move to C++20) version of view classes for Field and FieldList. This allows us to avoid complicated external systems like CHAI::ManagedArray for unified memory systems.
* New CMake configuration variable SPHERAL_UNIFIED_MEMORY switches between using span or ManagedArray in the view classes (default to OFF, which means ManagedArray).
* Converted Geometry Tensor types to be entirely inlined and host/device compliant.
* ArtificialViscosity has been refactored for use on the GPU.
* ArtificialViscosity is now ArtificialViscosityView.
* ArtificialViscosityHandle is now ArtificialViscosity.
* Both inherit from ArtificialViscosityBase.
* FiniteVolumeViscosity, MonGViscosity, LimitedMonGViscosity, and TensorMonGViscosity are split into a value and view class.
* FieldNames are inlined for easier use on device.
* Silo python wrappers are now installed and accessible through the Spheral virtual python environment but currently unused.

* Bug fixes
Expand Down Expand Up @@ -87,6 +93,7 @@ Notable changes include:
`add_compile_definition` or `add_compile_options`.
* Compiler flags are set for HIP or CXX depending on the configuration.
* Update BLT to version 0.7.1.
* Added `CXX_LINK_FLAGS`.
* Target exporting is now being tested in the CI on the RZ.
* Updating boost function calls to std library implementations where possible.
* Switched the CZ CI to use Dane instead of Ruby.
Expand Down
1 change: 1 addition & 0 deletions cmake/CMakeDefinitions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ endif()
set(_comp_flags
ENABLE_MPI
ENABLE_HIP
ENABLE_OPENMP
ENABLE_CUDA
ENABLE_NAN_EXCEPTIONS
ENABLE_OPENSUBDIV
Expand Down
51 changes: 35 additions & 16 deletions cmake/Compilers.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
message("-- C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}")

#-------------------------------------------------------------------------------
# Optionally suppress compiler warnings
# Set compiler options
#-------------------------------------------------------------------------------

option(ENABLE_WARNINGS "show compiler warnings" ON)
Expand All @@ -16,12 +16,18 @@ if (ENABLE_HIP)
set(LANG_STR "HIP")
endif()

set(CXX_WARNING_FLAGS "")
set(CXX_COMPILE_FLAGS "")
if (ENABLE_WARNINGS)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
list(APPEND CXX_WARNING_FLAGS -fdiagnostics-show-option -Wno-unused-command-line-argument -Wno-c++17-extensions)
list(APPEND CXX_COMPILE_FLAGS -fdiagnostics-show-option -Wno-unused-command-line-argument -Wno-c++17-extensions)
if(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 18.0.0)
list(APPEND CXX_WARNING_FLAGS -Wno-enum-constexpr-conversion -Wno-deprecated-declarations -Wno-gnu-zero-variadic-macro-arguments)
list(APPEND CXX_COMPILE_FLAGS -Wno-deprecated-declarations -Wno-gnu-zero-variadic-macro-arguments)
if(CMAKE_CXX_COMPILER_VERSION LESS 20.0.0)
list(APPEND CXX_COMPILE_FLAGS -Wno-enum-constexpr-conversion)
# We build some Fortran code from outside sources (like the Helmholtz EOS) that
# cause building errors if the compiler is too picky...
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wno-missing-include-dirs")
endif()
endif()
endif()
else()
Expand All @@ -31,49 +37,62 @@ message("-- Compiler warnings ${ENABLE_WARNINGS}")

if (ENABLE_WARNINGS_AS_ERRORS)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
list(APPEND CXX_WARNING_FLAGS /W4 /WX)
list(APPEND CXX_COMPILE_FLAGS /W4 /WX)
else()
list(APPEND CXX_WARNING_FLAGS -Wall -Wextra -pedantic -Werror -Wl,--fatal-warnings)
list(APPEND CXX_COMPILE_FLAGS -Wall -Wextra -pedantic -Werror -Wl,--fatal-warnings)
endif()
message("-- Treating warnings as errors")
endif()


if (NOT ENABLE_UNUSED_VARIABLE_WARNINGS)
list(APPEND CXX_WARNING_FLAGS -Wno-unused-variable)
list(APPEND CXX_COMPILE_FLAGS -Wno-unused-variable)
endif()
message("-- Compiler unused variable warnings ${ENABLE_UNUSED_VARIABLE_WARNINGS}")


if (NOT ENABLE_UNUSED_PARAMETER_WARNINGS)
list(APPEND CXX_WARNING_FLAGS -Wno-unused-parameter)
list(APPEND CXX_COMPILE_FLAGS -Wno-unused-parameter)
endif()
message("-- Compiler unused parameter warnings ${ENABLE_UNUSED_PARAMETER_WARNINGS}")


if (NOT ENABLE_MISSING_INCLUDE_DIR_WARNINGS)
list(APPEND CXX_WARNING_FLAGS -Wno-missing-include-dirs)
list(APPEND CXX_COMPILE_FLAGS -Wno-missing-include-dirs)
endif()
message("-- Compiler missing include dir warnings ${ENABLE_MISSING_INCLUDE_DIR_WARNINGS}")

set(CUDA_WARNING_FLAGS -Xcudafe=\"--diag_suppress=esa_on_defaulted_function_ignored\")

set_property(GLOBAL PROPERTY SPHERAL_CXX_FLAGS
"$<$<COMPILE_LANGUAGE:${LANG_STR}>:${CXX_WARNING_FLAGS}>")
message("-- Using CXX warning flags ${CXX_WARNING_FLAGS}")
if (SPHERAL_ENABLE_RDC AND ENABLE_HIP)
list(APPEND CXX_COMPILE_FLAGS -fgpu-rdc)
endif()

set_property(GLOBAL PROPERTY SPHERAL_CXX_FLAGS "${SPHERAL_CXX_FLAGS}"
"$<$<COMPILE_LANGUAGE:${LANG_STR}>:${CXX_COMPILE_FLAGS}>")
message("-- Using CXX compile flags ${CXX_COMPILE_FLAGS}")

# Currently unused
set_property(GLOBAL PROPERTY SPHERAL_CUDA_FLAGS
"$<$<COMPILE_LANGUAGE:CUDA>:${CUDA_WARNING_FLAGS}>")

# We build some Fortran code from outside sources (like the Helmholtz EOS) that
# cause building errors if the compiler is too picky...
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wno-missing-include-dirs")
#-------------------------------------------------------------------------------
# Set link options
#-------------------------------------------------------------------------------

set(CXX_LINK_FLAGS "")

if (SPHERAL_ENABLE_RDC AND ENABLE_HIP)
list(APPEND CXX_LINK_FLAGS -fgpu-rdc)
endif()

set_property(GLOBAL PROPERTY SPHERAL_LINK_FLAGS "${CXX_LINK_FLAGS}")
message("-- Using link flags ${CXX_LINK_FLAGS}")

#-------------------------------------------------------------------------------
# PYB11 Target Flags
#-------------------------------------------------------------------------------
set(SPHERAL_PYB11_FLAGS ${CXX_WARNING_FLAGS})
set(SPHERAL_PYB11_FLAGS ${CXX_COMPILE_FLAGS})
list(APPEND SPHERAL_PYB11_FLAGS
-O1
-Wno-unused-local-typedefs
Expand Down
5 changes: 3 additions & 2 deletions cmake/SetupSpheral.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,14 @@ elseif(ENABLE_STATIC_CXXONLY)
endif()

if(ENABLE_MPI)
set(SPHERAL_ENABLE_MPI ON)
set(BLT_MPI_COMPILE_FLAGS -DMPICH_SKIP_MPICXX -ULAM_WANT_MPI2CPP -DOMPI_SKIP_MPICXX)
list(APPEND SPHERAL_CXX_DEPENDS mpi)
set(SPHERAL_ENABLE_MPI ON)
endif()

if(ENABLE_OPENMP)
list(APPEND SPHERAL_CXX_DEPENDS openmp)
set(SPHERAL_ENABLE_OPENMP ON)
endif()

if(ENABLE_CUDA)
Expand Down Expand Up @@ -137,7 +138,7 @@ set(CMAKE_SKIP_BUILD_RPATH FALSE)
# (but later on when installing)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)

set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib")

# add the automatically determined parts of the RPATH
# which point to directories outside the build tree to the install RPATH
Expand Down
13 changes: 8 additions & 5 deletions cmake/SpheralMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -59,20 +59,22 @@ macro(spheral_add_test)
get_property(SPHERAL_BLT_DEPENDS GLOBAL PROPERTY SPHERAL_BLT_DEPENDS)
get_property(SPHERAL_COMPILE_DEFS GLOBAL PROPERTY SPHERAL_COMPILE_DEFS)
get_property(SPHERAL_CXX_FLAGS GLOBAL PROPERTY SPHERAL_CXX_FLAGS)
get_property(SPHERAL_LINK_FLAGS GLOBAL PROPERTY SPHERAL_LINK_FLAGS)

blt_add_library(
NAME ${original_test_name}_lib
SOURCES ${TEST_LIB_SOURCE} ${SPHERAL_ROOT_DIR}/src/spheralCXX.cc
DEFINES ${SPHERAL_COMPILE_DEFS}
DEPENDS_ON ${SPHERAL_BLT_DEPENDS} ${original_deps}
SHARED False)
SHARED FALSE)

target_compile_options(${original_test_name}_lib PUBLIC ${SPHERAL_CXX_FLAGS})
target_link_options(${original_test_name}_lib PRIVATE "-Wl,--unresolved-symbols=ignore-in-object-files")
target_link_options(${original_test_name}_lib PRIVATE "-Wl,--unresolved-symbols=ignore-in-object-files" ${SPHERAL_LINK_FLAGS})

spheral_add_executable(
NAME ${original_test_name}
SOURCES ${original_src}
DEFINES ${SPHERAL_COMPILE_DEFS}
DEPENDS_ON gtest ${CMAKE_THREAD_LIBS_INIT} ${original_test_name}_lib
TEST On)

Expand All @@ -81,16 +83,17 @@ macro(spheral_add_test)
COMMAND ${TEST_DRIVER} ${original_test_name})

target_include_directories(${original_test_name} SYSTEM PRIVATE ${SPHERAL_ROOT_DIR}/tests/cpp/include)
target_compile_options(${original_test_name} PUBLIC ${SPHERAL_CXX_FLAGS})

if (${arg_DEBUG_LINKER})
target_link_options(${original_test_name} PUBLIC "-Wl,--warn-unresolved-symbols")
target_link_options(${original_test_name} PUBLIC "-Wl,--warn-unresolved-symbols" ${SPHERAL_LINK_FLAGS})
else()
target_link_options(${original_test_name} PUBLIC "-Wl,--unresolved-symbols=ignore-all")
target_link_options(${original_test_name} PUBLIC "-Wl,--unresolved-symbols=ignore-all" ${SPHERAL_LINK_FLAGS})
endif()
endif()

# If we're configuring for unified memory on Cray machines we need to fiddle with the environment
if (SPHERAL_UNIFIED_MEMORY AND ENABLE_HIP)
if (ENABLE_HIP)
set_tests_properties(${original_test_name} PROPERTIES ENVIRONMENT HSA_XNACK=1)
endif()

Expand Down
10 changes: 10 additions & 0 deletions cmake/SpheralOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ endif()
option(SPHERAL_ENABLE_STATIC "Building static C++ libraries" ${DEFAULT_STATIC})
cmake_dependent_option(SPHERAL_ENABLE_SHARED "Building shared C++ libraries" ON "NOT SPHERAL_ENABLE_STATIC" OFF)

#-------------------------------------------------------------------------------
# Experimental/unused options
#-------------------------------------------------------------------------------

cmake_dependent_option(SPHERAL_ENABLE_RDC "Build using the RDC flag. Currently broken (DO NOT USE)" OFF SPHERAL_GPU_ENABLED OFF)

if (SPHERAL_ENABLE_RDC AND SPHERAL_ENABLE_SHARED)
message(FATAL_ERROR "Must use SPHERAL_ENABLE_STATIC if enabling SPHERAL_ENABLE_RDC (once it is working)")
endif()

#-------------------------------------------------------------------------------
# Should we build sphinx documentation
#-------------------------------------------------------------------------------
Expand Down
18 changes: 11 additions & 7 deletions cmake/spheral/SpheralAddLibs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
# SPHERAL_CXX_DEPENDS : REQUIRED : List of compiler dependencies
# SPHERAL_COMPILE_DEFS : REQUIRED : List of compiler definitions
# SPHERAL_CXX_FLAGS : REQUIRED : List of C++ compiler options
# SPHERAL_LINK_FLAGS : REQUIRED : List of link options
# <package_name>_headers : OPTIONAL : List of necessary headers to include
# <package_name>_sources : OPTIONAL : List of necessary source files to include
# SPHERAL_SUBMOD_DEPENDS : REQUIRED : List of submodule dependencies
Expand All @@ -32,6 +33,8 @@ function(spheral_add_obj_library package_name obj_list_name)
get_property(SPHERAL_COMPILE_DEFS GLOBAL PROPERTY SPHERAL_COMPILE_DEFS)
# Assumes global variable SPHERAL_CXX_FLAGS exists and is filled with C++ compiler options
get_property(SPHERAL_CXX_FLAGS GLOBAL PROPERTY SPHERAL_CXX_FLAGS)
# Assumes global variable SPHERAL_LINK_FLAGS exists and is filled with linker options
get_property(SPHERAL_LINK_FLAGS GLOBAL PROPERTY SPHERAL_LINK_FLAGS)
# For including files in submodules, currently unused
get_property(SPHERAL_SUBMOD_INCLUDES GLOBAL PROPERTY SPHERAL_SUBMOD_INCLUDES)

Expand All @@ -42,6 +45,7 @@ function(spheral_add_obj_library package_name obj_list_name)
DEFINES ${SPHERAL_COMPILE_DEFS}
DEPENDS_ON ${SPHERAL_CXX_DEPENDS} ${SPHERAL_BLT_DEPENDS}
SHARED TRUE)
target_link_options(Spheral_${package_name} PUBLIC ${SPHERAL_LINK_FLAGS})
else()
blt_add_library(NAME Spheral_${package_name}
HEADERS ${${package_name}_headers}
Expand Down Expand Up @@ -82,6 +86,7 @@ endfunction()
# SPHERAL_CXX_DEPENDS : REQUIRED : List of compiler dependencies
# SPHERAL_COMPILE_DEFS : REQUIRED : List of compiler definitions
# SPHERAL_CXX_FLAGS : REQUIRED : List of C++ compiler options
# SPHERAL_LINK_FLAGS : REQUIRED : List of link options
# <package_name>_headers : OPTIONAL : List of necessary headers to include
# <package_name>_sources : OPTIONAL : List of necessary source files to include
# SPHERAL_SUBMOD_DEPENDS : REQUIRED : List of submodule dependencies
Expand All @@ -104,6 +109,8 @@ function(spheral_add_cxx_library package_name _cxx_obj_list)
get_property(SPHERAL_COMPILE_DEFS GLOBAL PROPERTY SPHERAL_COMPILE_DEFS)
# Assumes global variable SPHERAL_CXX_FLAGS exists and is filled with C++ compiler options
get_property(SPHERAL_CXX_FLAGS GLOBAL PROPERTY SPHERAL_CXX_FLAGS)
# Assumes global variable SPHERAL_LINK_FLAGS exists and is filled with linker options
get_property(SPHERAL_LINK_FLAGS GLOBAL PROPERTY SPHERAL_LINK_FLAGS)
# For including files in submodules, currently unused
get_property(SPHERAL_SUBMOD_INCLUDES GLOBAL PROPERTY SPHERAL_SUBMOD_INCLUDES)
# Convert package name to lower-case for export target name
Expand All @@ -124,11 +131,12 @@ function(spheral_add_cxx_library package_name _cxx_obj_list)

# Add compile options
target_compile_options(Spheral_${package_name} PRIVATE ${SPHERAL_CXX_FLAGS})
target_link_options(Spheral_${package_name} PRIVATE ${SPHERAL_LINK_FLAGS})
endif()

target_include_directories(Spheral_${package_name} SYSTEM PRIVATE ${SPHERAL_SUBMOD_INCLUDES})

if(ENABLE_CUDA)
if(ENABLE_CUDA AND SPHERAL_ENABLE_RDC)
set_target_properties(Spheral_${package_name} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
endif()

Expand All @@ -139,9 +147,6 @@ function(spheral_add_cxx_library package_name _cxx_obj_list)

# Export Spheral target
install(EXPORT ${export_target_name} DESTINATION lib/cmake)

# Set the r-path of the C++ lib such that it is independent of the build dir when installed
set_target_properties(Spheral_${package_name} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endfunction()

#----------------------------------------------------------------------------------------
Expand Down Expand Up @@ -285,8 +290,7 @@ function(spheral_add_pybind11_library package_name module_list_name)
DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral)

set_property(GLOBAL APPEND PROPERTY ${module_list_name} ${package_name})

# Set the r-path of the C++ lib such that it is independent of the build dir when installed
set_target_properties(${MODULE_NAME} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
get_property(SPHERAL_LINK_FLAGS GLOBAL PROPERTY SPHERAL_LINK_FLAGS)
target_link_options(Spheral${package_name} PUBLIC ${SPHERAL_LINK_FLAGS})

endfunction()
10 changes: 5 additions & 5 deletions scripts/spack/configs/toss_4_x86_64_ib_cray/compilers.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
compilers::
- compiler:
spec: rocmcc@=6.2.0
spec: rocmcc@=7.1.0
paths:
cc: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/bin/amdclang
cxx: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/bin/amdclang++
f77: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/bin/amdflang
fc: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/bin/amdflang
cc: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/bin/amdclang
cxx: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/bin/amdclang++
f77: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/bin/amdflang
fc: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/bin/amdflang
flags: {}
operating_system: rhel8
target: x86_64
Expand Down
40 changes: 20 additions & 20 deletions scripts/spack/configs/toss_4_x86_64_ib_cray/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,45 +29,45 @@ packages:
cray-mpich:
buildable: false
externals:
- spec: cray-mpich@8.1.31%rocmcc@6.2.0
prefix: /usr/tce/packages/cray-mpich/cray-mpich-8.1.31-rocmcc-6.2.0-magic
- spec: cray-mpich@9.0.1%rocmcc@7.1.0
prefix: /usr/tce/packages/cray-mpich/cray-mpich-9.0.1-rocmcc-7.1.0-magic

hip:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: hip@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/
- spec: hip@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/
llvm-amdgpu:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: llvm-amdgpu@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocmcc-6.2.0-magic/llvm
- spec: llvm-amdgpu@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocmcc-7.1.0-magic/llvm
hsa-rocr-dev:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: hsa-rocr-dev@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocm-6.2.0-magic/
- spec: hsa-rocr-dev@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocm-7.1.0-magic/
rocminfo:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: rocminfo@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocm-6.2.0-magic/
- spec: rocminfo@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocm-7.1.0-magic/
rocm-device-libs:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: rocm-device-libs@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocm-6.2.0-magic/
- spec: rocm-device-libs@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocm-7.1.0-magic/
rocprim:
version: [6.2.0]
version: [7.1.0]
buildable: false
externals:
- spec: rocprim@6.2.0%rocmcc@6.2.0
prefix: /usr/tce/packages/rocmcc/rocm-6.2.0-magic/
- spec: rocprim@7.1.0%rocmcc@7.1.0
prefix: /usr/tce/packages/rocmcc/rocm-7.1.0-magic/

# ------ SYSTEM LIBS -------
py-decorator:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ spack:
view: false
concretizer:
unify: false
reuse: false
develop:
spheral:
path: ../../../../
Expand Down
Loading
Loading