Skip to content
Merged
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
46 changes: 6 additions & 40 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,46 +10,12 @@ on:
pull_request:

jobs:
linux:
name: Linux (GCC)
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Install raylib build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libasound2-dev libx11-dev libxrandr-dev libxi-dev \
libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev \
libxinerama-dev libxkbcommon-dev

- name: Configure
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug

- name: Build
run: cmake --build build -j

- name: Run tests
run: ctest --test-dir build --output-on-failure

macos:
name: macOS (Clang)
runs-on: macos-latest
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Configure
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug

- name: Build
run: cmake --build build -j

- name: Run tests
run: ctest --test-dir build --output-on-failure

# NOTE: CI is intentionally scoped to Windows for now. The seeded universe /
# N-body sandbox is not yet bit-reproducible across compilers (the seed->genome
# pipeline still calls platform libm), so the tier verification diverges on
# Linux/GCC and macOS/Clang. Until that determinism work lands, Windows is the
# single reference platform; the Linux and macOS jobs were removed deliberately,
# not lost.
windows:
name: Windows (MSVC)
runs-on: windows-latest
Expand Down
203 changes: 203 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ function(worldline_apply_warnings target_name)
endfunction()

include(FetchContent)
# raylib 5.0 declares a cmake_minimum_required below 3.5, which CMake 4.x (now on
# the macOS/Windows CI runners) rejects outright. Raise the policy floor so the
# fetched dependency still configures on newer toolchains. Harmless on the older
# CMake (< 3.31) used elsewhere, where the variable is simply ignored.
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
FetchContent_Declare(
raylib
GIT_REPOSITORY https://github.com/raysan5/raylib.git
Expand Down Expand Up @@ -197,6 +202,204 @@ target_link_libraries(worldline_cosmos_particledata_tests PRIVATE worldline_cosm
worldline_apply_warnings(worldline_cosmos_particledata_tests)
add_test(NAME cosmos_particledata_verification COMMAND worldline_cosmos_particledata_tests)

add_executable(worldline_cosmos_quantum_tests tests/cosmos_quantum_verification.cpp)
target_include_directories(worldline_cosmos_quantum_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_quantum_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_quantum_tests)
add_test(NAME cosmos_quantum_verification COMMAND worldline_cosmos_quantum_tests)

add_executable(worldline_cosmos_planckscale_tests tests/cosmos_planckscale_verification.cpp)
target_include_directories(worldline_cosmos_planckscale_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_planckscale_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_planckscale_tests)
add_test(NAME cosmos_planckscale_verification COMMAND worldline_cosmos_planckscale_tests)

add_executable(worldline_cosmos_standardmodel_tests tests/cosmos_standardmodel_verification.cpp)
target_include_directories(worldline_cosmos_standardmodel_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_standardmodel_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_standardmodel_tests)
add_test(NAME cosmos_standardmodel_verification COMMAND worldline_cosmos_standardmodel_tests)

add_executable(worldline_cosmos_hadronization_tests tests/cosmos_hadronization_verification.cpp)
target_include_directories(worldline_cosmos_hadronization_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_hadronization_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_hadronization_tests)
add_test(NAME cosmos_hadronization_verification COMMAND worldline_cosmos_hadronization_tests)

add_executable(worldline_cosmos_quantumvacuum_tests tests/cosmos_quantumvacuum_verification.cpp)
target_include_directories(worldline_cosmos_quantumvacuum_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_quantumvacuum_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_quantumvacuum_tests)
add_test(NAME cosmos_quantumvacuum_verification COMMAND worldline_cosmos_quantumvacuum_tests)

add_executable(worldline_cosmos_quantumstats_tests tests/cosmos_quantumstats_verification.cpp)
target_include_directories(worldline_cosmos_quantumstats_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_quantumstats_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_quantumstats_tests)
add_test(NAME cosmos_quantumstats_verification COMMAND worldline_cosmos_quantumstats_tests)

add_executable(worldline_cosmos_quantumgenesis_tests tests/cosmos_quantumgenesis_verification.cpp)
target_include_directories(worldline_cosmos_quantumgenesis_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_quantumgenesis_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_quantumgenesis_tests)
add_test(NAME cosmos_quantumgenesis_verification COMMAND worldline_cosmos_quantumgenesis_tests)

add_executable(worldline_cosmos_spin_tests tests/cosmos_spin_verification.cpp)
target_include_directories(worldline_cosmos_spin_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_spin_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_spin_tests)
add_test(NAME cosmos_spin_verification COMMAND worldline_cosmos_spin_tests)

add_executable(worldline_cosmos_qedscattering_tests tests/cosmos_qedscattering_verification.cpp)
target_include_directories(worldline_cosmos_qedscattering_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_qedscattering_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_qedscattering_tests)
add_test(NAME cosmos_qedscattering_verification COMMAND worldline_cosmos_qedscattering_tests)

add_executable(worldline_cosmos_latticeqcd_tests tests/cosmos_latticeqcd_verification.cpp)
target_include_directories(worldline_cosmos_latticeqcd_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_latticeqcd_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_latticeqcd_tests)
add_test(NAME cosmos_latticeqcd_verification COMMAND worldline_cosmos_latticeqcd_tests)

add_executable(worldline_cosmos_neutrino_tests tests/cosmos_neutrino_verification.cpp)
target_include_directories(worldline_cosmos_neutrino_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_neutrino_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_neutrino_tests)
add_test(NAME cosmos_neutrino_verification COMMAND worldline_cosmos_neutrino_tests)

add_executable(worldline_cosmos_nucleardata_tests tests/cosmos_nucleardata_verification.cpp)
target_include_directories(worldline_cosmos_nucleardata_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nucleardata_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nucleardata_tests)
add_test(NAME cosmos_nucleardata_verification COMMAND worldline_cosmos_nucleardata_tests)

add_executable(worldline_cosmos_nuclearshell_tests tests/cosmos_nuclearshell_verification.cpp)
target_include_directories(worldline_cosmos_nuclearshell_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nuclearshell_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nuclearshell_tests)
add_test(NAME cosmos_nuclearshell_verification COMMAND worldline_cosmos_nuclearshell_tests)

add_executable(worldline_cosmos_nucleardecay_tests tests/cosmos_nucleardecay_verification.cpp)
target_include_directories(worldline_cosmos_nucleardecay_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nucleardecay_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nucleardecay_tests)
add_test(NAME cosmos_nucleardecay_verification COMMAND worldline_cosmos_nucleardecay_tests)

add_executable(worldline_cosmos_decaychains_tests tests/cosmos_decaychains_verification.cpp)
target_include_directories(worldline_cosmos_decaychains_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_decaychains_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_decaychains_tests)
add_test(NAME cosmos_decaychains_verification COMMAND worldline_cosmos_decaychains_tests)

add_executable(worldline_cosmos_nuclearreactions_tests tests/cosmos_nuclearreactions_verification.cpp)
target_include_directories(worldline_cosmos_nuclearreactions_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nuclearreactions_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nuclearreactions_tests)
add_test(NAME cosmos_nuclearreactions_verification COMMAND worldline_cosmos_nuclearreactions_tests)

add_executable(worldline_cosmos_stellarburning_tests tests/cosmos_stellarburning_verification.cpp)
target_include_directories(worldline_cosmos_stellarburning_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_stellarburning_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_stellarburning_tests)
add_test(NAME cosmos_stellarburning_verification COMMAND worldline_cosmos_stellarburning_tests)

add_executable(worldline_cosmos_nucleosynthesis_tests tests/cosmos_nucleosynthesis_verification.cpp)
target_include_directories(worldline_cosmos_nucleosynthesis_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nucleosynthesis_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nucleosynthesis_tests)
add_test(NAME cosmos_nucleosynthesis_verification COMMAND worldline_cosmos_nucleosynthesis_tests)

add_executable(worldline_cosmos_nuclearstructure_tests tests/cosmos_nuclearstructure_verification.cpp)
target_include_directories(worldline_cosmos_nuclearstructure_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nuclearstructure_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nuclearstructure_tests)
add_test(NAME cosmos_nuclearstructure_verification COMMAND worldline_cosmos_nuclearstructure_tests)

add_executable(worldline_cosmos_betadecay_tests tests/cosmos_betadecay_verification.cpp)
target_include_directories(worldline_cosmos_betadecay_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_betadecay_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_betadecay_tests)
add_test(NAME cosmos_betadecay_verification COMMAND worldline_cosmos_betadecay_tests)

add_executable(worldline_cosmos_fissionphysics_tests tests/cosmos_fissionphysics_verification.cpp)
target_include_directories(worldline_cosmos_fissionphysics_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_fissionphysics_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_fissionphysics_tests)
add_test(NAME cosmos_fissionphysics_verification COMMAND worldline_cosmos_fissionphysics_tests)

add_executable(worldline_cosmos_nuclearmoments_tests tests/cosmos_nuclearmoments_verification.cpp)
target_include_directories(worldline_cosmos_nuclearmoments_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nuclearmoments_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nuclearmoments_tests)
add_test(NAME cosmos_nuclearmoments_verification COMMAND worldline_cosmos_nuclearmoments_tests)

add_executable(worldline_cosmos_nuclearmatter_tests tests/cosmos_nuclearmatter_verification.cpp)
target_include_directories(worldline_cosmos_nuclearmatter_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_nuclearmatter_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_nuclearmatter_tests)
add_test(NAME cosmos_nuclearmatter_verification COMMAND worldline_cosmos_nuclearmatter_tests)

add_executable(worldline_cosmos_atomicstructure_tests tests/cosmos_atomicstructure_verification.cpp)
target_include_directories(worldline_cosmos_atomicstructure_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_atomicstructure_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_atomicstructure_tests)
add_test(NAME cosmos_atomicstructure_verification COMMAND worldline_cosmos_atomicstructure_tests)

add_executable(worldline_cosmos_periodictable_tests tests/cosmos_periodictable_verification.cpp)
target_include_directories(worldline_cosmos_periodictable_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_periodictable_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_periodictable_tests)
add_test(NAME cosmos_periodictable_verification COMMAND worldline_cosmos_periodictable_tests)

add_executable(worldline_cosmos_atomicspectra_tests tests/cosmos_atomicspectra_verification.cpp)
target_include_directories(worldline_cosmos_atomicspectra_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_atomicspectra_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_atomicspectra_tests)
add_test(NAME cosmos_atomicspectra_verification COMMAND worldline_cosmos_atomicspectra_tests)

add_executable(worldline_cosmos_ionization_tests tests/cosmos_ionization_verification.cpp)
target_include_directories(worldline_cosmos_ionization_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_ionization_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_ionization_tests)
add_test(NAME cosmos_ionization_verification COMMAND worldline_cosmos_ionization_tests)

add_executable(worldline_cosmos_atomicgenesis_tests tests/cosmos_atomicgenesis_verification.cpp)
target_include_directories(worldline_cosmos_atomicgenesis_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_atomicgenesis_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_atomicgenesis_tests)
add_test(NAME cosmos_atomicgenesis_verification COMMAND worldline_cosmos_atomicgenesis_tests)

add_executable(worldline_cosmos_multielectron_tests tests/cosmos_multielectron_verification.cpp)
target_include_directories(worldline_cosmos_multielectron_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_multielectron_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_multielectron_tests)
add_test(NAME cosmos_multielectron_verification COMMAND worldline_cosmos_multielectron_tests)

add_executable(worldline_cosmos_lightmatter_tests tests/cosmos_lightmatter_verification.cpp)
target_include_directories(worldline_cosmos_lightmatter_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_lightmatter_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_lightmatter_tests)
add_test(NAME cosmos_lightmatter_verification COMMAND worldline_cosmos_lightmatter_tests)

add_executable(worldline_cosmos_finestructure_tests tests/cosmos_finestructure_verification.cpp)
target_include_directories(worldline_cosmos_finestructure_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_finestructure_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_finestructure_tests)
add_test(NAME cosmos_finestructure_verification COMMAND worldline_cosmos_finestructure_tests)

add_executable(worldline_cosmos_exoticatoms_tests tests/cosmos_exoticatoms_verification.cpp)
target_include_directories(worldline_cosmos_exoticatoms_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_exoticatoms_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_exoticatoms_tests)
add_test(NAME cosmos_exoticatoms_verification COMMAND worldline_cosmos_exoticatoms_tests)

add_executable(worldline_cosmos_atomiccollisions_tests tests/cosmos_atomiccollisions_verification.cpp)
target_include_directories(worldline_cosmos_atomiccollisions_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_atomiccollisions_tests PRIVATE worldline_cosmos)
worldline_apply_warnings(worldline_cosmos_atomiccollisions_tests)
add_test(NAME cosmos_atomiccollisions_verification COMMAND worldline_cosmos_atomiccollisions_tests)

add_executable(worldline_cosmos_cosmostats_tests tests/cosmos_cosmostats_verification.cpp)
target_include_directories(worldline_cosmos_cosmostats_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(worldline_cosmos_cosmostats_tests PRIVATE worldline_cosmos)
Expand Down
Loading
Loading