-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
take 2 try 3 try 4 try 5 try 6 try 7 libint_maybe_unused build src split
- Loading branch information
Showing
12 changed files
with
445 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
name: BuildCM | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
|
||
jobs: | ||
build_repo: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
build_type : [ Release, Debug ] | ||
os : [ macos-latest, ubuntu-20.04 ] | ||
include: | ||
- os: ubuntu-20.04 | ||
cxx: g++-10 | ||
cc: gcc-10 | ||
- os: macos-latest | ||
cxx: clang++ | ||
cc: clang | ||
|
||
name: "Repo • ${{ matrix.os }}: ${{ matrix.cxx }} ${{ matrix.build_type }}" | ||
runs-on: ${{ matrix.os }} | ||
env: | ||
CC: ${{ matrix.cc }} | ||
CXX : ${{ matrix.cxx }} | ||
CCACHE_DIR : ${{github.workspace}}/build/.ccache | ||
CCACHE_COMPRESS : true | ||
CCACHE_COMPRESSLEVEL : 6 | ||
BUILD_CONFIG : > | ||
-G Ninja | ||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} | ||
-DBUILD_SHARED_LIBS=OFF | ||
-DMPIEXEC_PREFLAGS='--bind-to;none;--allow-run-as-root' | ||
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/build/library | ||
-DWITH_MAX_AM=2;2 | ||
-DWITH_ERI_MAX_AM=2;2 | ||
-DWITH_ERI3_MAX_AM=3;2 | ||
-DENABLE_ERI=1 | ||
-DENABLE_ERI3=1 | ||
-DENABLE_ONEBODY=1 | ||
-DDISABLE_ONEBODY_PROPERTY_DERIVS=ON | ||
-DMULTIPOLE_MAX_ORDER=2 | ||
-DLIBINT2_ENABLE_PYTHON=ON | ||
outputs: | ||
should_skip: ${{ steps.skip_check.outputs.should_skip }} | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
# fetch-depth: 0 for git history to compute version | ||
|
||
- id: skip_check | ||
name: Check if can skip | ||
uses: fkirc/skip-duplicate-actions@v5 | ||
with: | ||
cancel_others: 'true' | ||
|
||
- name: Create Build Environment | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' }} | ||
# Some projects don't allow in-source building, so create a separate build directory | ||
# We'll use this as our working directory for all subsequent commands | ||
run: | | ||
cmake -E make_directory ${{github.workspace}}/build/compiler | ||
cmake -E make_directory ${{github.workspace}}/build/library | ||
cmake -E make_directory ${{github.workspace}}/build/library_test | ||
- name: Install prerequisite MacOS packages | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' && matrix.os == 'macos-latest' }} | ||
run: | | ||
brew install ninja gcc@10 boost eigen ccache [email protected] numpy scipy | ||
echo "FC=/usr/local/bin/gfortran-10" >> $GITHUB_ENV | ||
echo "EIGEN3_INCLUDE_DIR=/usr/local/include/eigen3" >> $GITHUB_ENV | ||
- name: Install prerequisite Ubuntu packages | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' && matrix.os == 'ubuntu-20.04' }} | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install ninja-build g++-10 gfortran-10 liblapack-dev libboost-dev libeigen3-dev ccache python3-numpy python3-scipy | ||
echo "FC=/usr/bin/gfortran-10" >> $GITHUB_ENV | ||
echo "EIGEN3_INCLUDE_DIR=/usr/include/eigen3" >> $GITHUB_ENV | ||
- name: Prepare ccache timestamp | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' }} | ||
id: ccache_cache_timestamp | ||
shell: cmake -P {0} | ||
run: | | ||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) | ||
message("\"timestamp=${current_date}\" >> $GITHUB_OUTPUT") | ||
- name: Setup ccache cache files | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{github.workspace}}/build/.ccache | ||
key: ${{ matrix.config.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} | ||
restore-keys: | | ||
${{ matrix.config.name }}-ccache- | ||
- name: Generate Libint generator | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' }} | ||
# Use a bash shell so we can use the same syntax for environment variable | ||
# access regardless of the host operating system | ||
shell: bash | ||
working-directory: ${{github.workspace}}/build/compiler | ||
run: | | ||
git describe --tags | ||
cmake -S ../.. -B build $BUILD_CONFIG --log-level=DEBUG | ||
cmake --build build --target check-libint2compiler | ||
- name: Generate Libint library | ||
if: ${{ steps.skip_check.outputs.should_skip != 'true' }} | ||
shell: bash | ||
working-directory: ${{github.workspace}}/build/compiler | ||
run: | | ||
cmake --build build --target libint-library-generate | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Copyright 2020 Eduard F Valeyev | ||
# Distributed under the OSI-approved BSD 3-Clause License. | ||
# See https://opensource.org/licenses/BSD-3-Clause for details. | ||
|
||
# copy of https://github.com/BTAS/BTAS/blob/master/cmake/modules/AddCustomTargetSubproject.cmake | ||
# | ||
# add_custom_target_subproject(proj X ...) defines custom target X-proj and | ||
# - if target X already exists, makes it depend on X-proj | ||
# - else creates target X depending on X-proj | ||
# | ||
# use case: if custom target names (e.g. "check", "doc", etc.) clash | ||
# with other project's target when used as a subproject | ||
# | ||
# example: add_custom_target_subproject(myproject check USES_TERMINAL COMMAND ${CMAKE_CTEST_COMMAND} -V) | ||
# | ||
|
||
macro(add_custom_target_subproject _subproj _name) | ||
|
||
set(extra_args "${ARGN}") | ||
add_custom_target(${_name}-${_subproj} ${extra_args}) | ||
|
||
# does the newly-created target get compiled by default? | ||
list(FIND extra_args "ALL" extra_args_has_all) | ||
if (NOT (extra_args_has_all EQUAL -1)) | ||
set (target_built_by_default ON) | ||
endif() | ||
|
||
if (TARGET ${_name}) | ||
# is existing target ${_name} also compiled by default? | ||
# warn if not, but this project's target is since that | ||
# may indicate inconsistent creation of generic targets | ||
get_target_property(supertarget_not_built_by_default ${_name} EXCLUDE_FROM_ALL) | ||
if (target_built_by_default AND supertarget_not_built_by_default) | ||
message(WARNING "Created target ${_name}-${_subproj} is built by default but \"super\"-target ${_name} is not; perhaps it should be?") | ||
endif() | ||
add_dependencies(${_name} ${_name}-${_subproj}) | ||
else (TARGET ${_name}) | ||
# use ALL if given | ||
if (target_built_by_default) | ||
add_custom_target(${_name} ALL DEPENDS ${_name}-${_subproj}) | ||
else (target_built_by_default) | ||
add_custom_target(${_name} DEPENDS ${_name}-${_subproj}) | ||
endif(target_built_by_default) | ||
endif (TARGET ${_name}) | ||
|
||
endmacro() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Downloaded from | ||
# https://github.com/coderefinery/autocmake/blob/master/modules/safeguards.cmake | ||
# * changed text of in-source message | ||
|
||
#.rst: | ||
# | ||
# Provides safeguards against in-source builds and bad build types. | ||
# | ||
# Variables used:: | ||
# | ||
# PROJECT_SOURCE_DIR | ||
# PROJECT_BINARY_DIR | ||
# CMAKE_BUILD_TYPE | ||
|
||
if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR}) | ||
message(FATAL_ERROR "In-source builds not allowed. Please run CMake from top directory and specify a build directory (e.g., cmake -S. -Bbuild).") | ||
endif() | ||
|
||
string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower) | ||
string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper) | ||
|
||
if(NOT cmake_build_type_tolower STREQUAL "debug" AND | ||
NOT cmake_build_type_tolower STREQUAL "release" AND | ||
NOT cmake_build_type_tolower STREQUAL "minsizerel" AND | ||
NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") | ||
message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, MinSizeRel, RelWithDebInfo (case-insensitive).") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
add_subdirectory(bin) | ||
add_subdirectory(lib) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
add_subdirectory(libint) | ||
|
||
include(AddCustomTargetSubproject) | ||
add_custom_target_subproject( | ||
libint2compiler | ||
check | ||
USES_TERMINAL | ||
COMMAND ${CMAKE_CTEST_COMMAND} -V -R "libint2/compiler" | ||
) | ||
|
||
if (BUILD_TESTING) | ||
add_subdirectory(test_eri) | ||
# borrows main libint/test.cc from libtool layout | ||
add_subdirectory(profile) | ||
endif() |
Oops, something went wrong.