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

Rewrite of the build system and working docker image creation #4

Merged
merged 36 commits into from
Dec 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
fac1ea2
feat: updated dockerfile with custom config
Dec 22, 2024
217bb24
fix: docker build order
Dec 22, 2024
5ac76a7
debug: remove direction of autodiff build output
Dec 22, 2024
d51841c
fix: seems like a few of the arch codes are too new for CUDA
Dec 22, 2024
b72c8d3
fix: seems like a few of the arch codes are too new for CUDA
Dec 22, 2024
ca3a2c8
fix: use lto for build of dealii, use CUDA_ARCHITECTURES CMake flag
Dec 22, 2024
22737c5
fix: default arguments for docker arguments
Dec 22, 2024
58743cf
fix: scripts for external builds should be now callable from everywhere!
Dec 22, 2024
ef22ace
fix: missing semicolons in update_DiFfRG.sh
Dec 22, 2024
79483c5
fix: updated rmm
Dec 22, 2024
17807ec
fix: rewrite part of the build system,so that paths are not linked to…
Dec 23, 2024
b10dffb
fix: build script needs more work
Dec 23, 2024
bdae5e9
fix: build script needs more work
Dec 23, 2024
fa164ad
fix: build script needs more work
Dec 23, 2024
55dd25a
fix: build script needs more work
Dec 23, 2024
cfe2f11
fix: build script needs more work
Dec 23, 2024
0df8d78
fix: build script needs more work
Dec 23, 2024
268dfeb
fix: build script needs more work
Dec 23, 2024
26f04d5
fix: build script needs more work
Dec 23, 2024
84e8e45
fix: build script needs more work
Dec 23, 2024
447f64f
fix: build script needs more work
Dec 23, 2024
526f10e
fix: build script needs more work
Dec 24, 2024
1113fd8
fix: build script needs more work
Dec 24, 2024
2eceb0c
fix: build script needs more work
Dec 24, 2024
429dcd7
fix: Forgot to symlink external data directory
Dec 28, 2024
d7aacdf
feat: Complete rebuild of the build system. CPM is now used for most …
Dec 31, 2024
595f685
feat: third-party licenses are automatically exported.
Dec 31, 2024
cfed3bf
fix: formatting of cmake files
Dec 31, 2024
26ffe98
fix: deal.ii platform introspection configurable
Dec 31, 2024
76e1aa6
fix: remove unnecessary OpenMP dependency
Dec 31, 2024
0f21c49
feat: add autoformatting target
Dec 31, 2024
3b8938d
fix: some problems with cuda architectures
Dec 31, 2024
d93ea93
fix: formatting
Dec 31, 2024
66efa8d
fix: installation instructions
Dec 31, 2024
a80966d
fix: some more docker fixes
Dec 31, 2024
ba9eafe
fix: the docker setup fully works.
Dec 31, 2024
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
27 changes: 3 additions & 24 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,39 +1,18 @@
[submodule "external/autodiff"]
path = external/autodiff
url = https://github.com/autodiff/autodiff.git
[submodule "external/sundials"]
path = external/sundials
url = https://github.com/LLNL/sundials.git
[submodule "external/Catch2"]
path = external/Catch2
url = https://github.com/catchorg/Catch2.git
[submodule "external/rapidcsv"]
path = external/rapidcsv
url = https://github.com/d99kris/rapidcsv.git
[submodule "external/kokkos"]
path = external/kokkos
url = https://github.com/kokkos/kokkos.git
[submodule "external/rmm"]
path = external/rmm
url = https://github.com/rapidsai/rmm.git
[submodule "external/dealii"]
path = external/dealii
url = https://github.com/dealii/dealii.git
[submodule "external/boost"]
path = external/boost
url = https://github.com/boostorg/boost.git
[submodule "external/spdlog"]
path = external/spdlog
url = https://github.com/gabime/spdlog.git
[submodule "external/eigen"]
path = external/eigen
url = https://gitlab.com/libeigen/eigen
[submodule "external/qmc"]
path = external/qmc
url = https://github.com/mppmu/qmc.git
[submodule "external/thread-pool"]
path = external/thread-pool
url = https://github.com/bshoshany/thread-pool.git
[submodule "external/doxygen-awesome-css"]
path = external/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
[submodule "external/oneTBB"]
path = external/oneTBB
url = https://github.com/uxlfoundation/oneTBB.git
47 changes: 46 additions & 1 deletion DiFfRG/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ if(DiFfRG_BUILD_DOCUMENTATION AND DOXYGEN_FOUND)

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/documentation
DESTINATION ${CMAKE_INSTALL_PREFIX}) # target directory
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/documentation/html/index.html ${CMAKE_INSTALL_PREFIX}/Documentation.html SYMBOLIC)")
install(
CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/documentation/html/index.html ${CMAKE_INSTALL_PREFIX}/Documentation.html SYMBOLIC)"
)

elseif(DiFfRG_BUILD_DOCUMENTATION AND DOXYGEN_FOUND)
message("Doxygen needs to be installed to generate the doxygen documentation")
Expand Down Expand Up @@ -102,3 +104,46 @@ install(
"${CMAKE_CURRENT_BINARY_DIR}/DiFfRGConfigVersion.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/DiFfRGTargets.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/DiFfRG")

# ##############################################################################
# licenses
# ##############################################################################

set(CPM_PACKAGE_deal.II_SOURCE_DIR
${CMAKE_CURRENT_SOURCE_DIR}/../external/dealii)
set(CPM_PACKAGE_sundials_SOURCE_DIR
${CMAKE_CURRENT_SOURCE_DIR}/../external/sundials)
set(CPM_PACKAGE_boost_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../external/boost)

# Add CPMLicenses for disclaimers
cpmaddpackage(NAME CPMLicenses.cmake GITHUB_REPOSITORY
cpm-cmake/CPMLicenses.cmake VERSION 0.0.5)

message("deal.II source directory: ${deal.II_SOURCE_DIR}")

message("packages: ${CPM_PACKAGES};deal.II;sundials;boost")

cpm_licenses_create_disclaimer_target(
write-licenses "${CMAKE_CURRENT_SOURCE_DIR}/../third_party.txt"
"${CPM_PACKAGES};deal.II;sundials;boost")

# ##############################################################################
# other scripts
# ##############################################################################

cpmaddpackage("gh:StableCoder/cmake-scripts#24.04")

include(${cmake-scripts_SOURCE_DIR}/formatting.cmake)

file(GLOB_RECURSE headers CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/include/*.hh")
file(GLOB_RECURSE sources CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/source/*.cc")
file(GLOB_RECURSE cuda_sources CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/source/*.cu")

clang_format(TARGET_NAME ${headers} ${sources} ${cuda_sources})

file(GLOB_RECURSE CMAKE_FILES CMakeLists.txt)

cmake_format(TARGET_NAME ${CMAKE_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/setup_build_system.cmake)
2 changes: 1 addition & 1 deletion DiFfRG/Config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ set(DiFfRG_CMAKE_DIR @CMAKE_INSTALL_PREFIX@/cmake)

set(DiFfRG_USE_CUDA @USE_CUDA@)

include(${CMAKE_CURRENT_LIST_DIR}/DiFfRGTargets.cmake)
include(${DiFfRG_CMAKE_DIR}/setup_build_system.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/DiFfRGTargets.cmake)
7 changes: 4 additions & 3 deletions DiFfRG/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
configure_file(setup_build_system.cmake ${CMAKE_CURRENT_BINARY_DIR}/setup_build_system.cmake COPYONLY)
install(FILES setup_build_system.cmake
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake")
configure_file(setup_build_system.cmake
${CMAKE_CURRENT_BINARY_DIR}/setup_build_system.cmake COPYONLY)
install(FILES setup_build_system.cmake CPM.cmake
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake")
Loading
Loading