diff --git a/science/arbor/Makefile b/science/arbor/Makefile index 2251d579cd4b..f4d1208a4f82 100644 --- a/science/arbor/Makefile +++ b/science/arbor/Makefile @@ -1,53 +1,61 @@ PORTNAME= arbor DISTVERSIONPREFIX= v -DISTVERSION= 0.10.1 -PORTREVISION= 3 +DISTVERSION= 0.11.0 CATEGORIES= science MAINTAINER= yuri@FreeBSD.org COMMENT= Multi-compartment neural network simulation library WWW= https://arbor-sim.org/ \ https://github.com/arbor-sim/arbor/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN= compilation fails with clang-19, see https://github.com/arbor-sim/arbor/issues/2424 #BROKEN_armv7= compilation fails: unknown type name 'float64x2_t' BUILD_DEPENDS= bash:shells/bash \ libfmt>0:devel/libfmt \ nlohmann-json>0:devel/nlohmann-json \ random123>0:devel/random123 \ - ${PYTHON_PKGNAMEPREFIX}svgwrite>0:graphics/py-svgwrite@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}svgwrite>0:graphics/py-svgwrite@${PY_FLAVOR} \ + tinyopt>0:devel/tinyopt BUILD_DEPENDS+= ${LOCALBASE}/lib/cmake/GTest/GTestConfig.cmake:devel/googletest # https://github.com/arbor-sim/arbor/issues/2205 LIB_DEPENDS= libhwloc.so:devel/hwloc2 \ libpugixml.so:textproc/pugixml \ libunits.so:misc/units RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}svgwrite>0:graphics/py-svgwrite@${PY_FLAVOR} -TEST_DEPENDS= googletest>=0:devel/googletest +TEST_DEPENDS= googletest>0:devel/googletest -USES= cmake compiler:c++17-lang localbase python shebangfix +USES= cmake compiler:c++20-lang localbase pkgconfig python shebangfix USE_GITHUB= yes GH_ACCOUNT= arbor-sim +GH_TUPLE= cpm-cmake:CPM.cmake:v0.39.0:cpm SHEBANG_FILES= scripts/arbor-build-catalogue CMAKE_ON= BUILD_SHARED_LIBS CMAKE_OFF= ARB_USE_BUNDLED_UNITS CMAKE_ARGS= -DPython3_EXECUTABLE=${PYTHON_CMD} +CONFIGURE_ENV= CPM_REPO=${WRKSRC_cpm} LDFLAGS+= -L${LOCALBASE}/lib -lunits OPTIONS_DEFINE= NATIVE NATIVE_CMAKE_ON= -DARB_ARCH=native NATIVE_CMAKE_OFF= -DARB_ARCH=none -TEST_TARGET= tests # tests fail to build, see https://github.com/arbor-sim/arbor/issues/2075 +TEST_TARGET= tests post-install: @${RMDIR} ${STAGEDIR}${DOCSDIR} +post-test: # run tests + @${BUILD_WRKSRC}/bin/unit + @${BUILD_WRKSRC}/bin/unit-local + @${BUILD_WRKSRC}/bin/unit-modcc + +# tests fail with LIBCPP assertion for invalid array element access, see https://github.com/arbor-sim/arbor/issues/2484 + .include diff --git a/science/arbor/distinfo b/science/arbor/distinfo index 895ebcc91640..ddd22577d041 100644 --- a/science/arbor/distinfo +++ b/science/arbor/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1724617928 -SHA256 (arbor-sim-arbor-v0.10.1_GH0.tar.gz) = 6a9a209dc20ab6edcf9847a70b0b4dbabf0c0d3c7e6e29b5bec7c00de9d7b8ae -SIZE (arbor-sim-arbor-v0.10.1_GH0.tar.gz) = 10159032 +TIMESTAMP = 1762075604 +SHA256 (arbor-sim-arbor-v0.11.0_GH0.tar.gz) = 6df68b308dd629df993eda40319676cd43407ae211d0846100b0cf42e8c9ad22 +SIZE (arbor-sim-arbor-v0.11.0_GH0.tar.gz) = 12511038 +SHA256 (cpm-cmake-CPM.cmake-v0.39.0_GH0.tar.gz) = 621cfca03a5a0fcf316f08aee37d775a71620879e768ebf74be8495773f6b578 +SIZE (cpm-cmake-CPM.cmake-v0.39.0_GH0.tar.gz) = 100981 diff --git a/science/arbor/files/patch-CMakeLists.txt b/science/arbor/files/patch-CMakeLists.txt index b813375ca016..9a056733f8ea 100644 --- a/science/arbor/files/patch-CMakeLists.txt +++ b/science/arbor/files/patch-CMakeLists.txt @@ -1,19 +1,24 @@ ---- CMakeLists.txt.orig 2024-08-09 10:22:00 UTC +--- CMakeLists.txt.orig 2025-04-24 10:33:03 UTC +++ CMakeLists.txt -@@ -40,7 +40,7 @@ check_cxx_compiler_flag("-march=native" CXX_HAS_NATIVE +@@ -60,7 +60,7 @@ check_cxx_compiler_flag("-march=native" CXX_HAS_NATIVE # Specify target architecture. check_cxx_compiler_flag("-march=native" CXX_HAS_NATIVE) -if(CXX_HAS_NATIVE) +if(FALSE AND CXX_HAS_NATIVE) set(ARB_DEFAULT_ARCH "native") else() set(ARB_DEFAULT_ARCH "none") -@@ -307,7 +307,6 @@ install(TARGETS ext-units EXPORT arbor-targets) - install(TARGETS ext-random123 EXPORT arbor-targets) - target_link_libraries(arbor-public-deps INTERFACE ext-units) - install(TARGETS ext-units EXPORT arbor-targets) --install(TARGETS units compile_flags_target EXPORT arbor-targets) +@@ -302,11 +302,7 @@ install(TARGETS ext-hwloc EXPORT arbor-targets) + endif() + install(TARGETS ext-hwloc EXPORT arbor-targets) - # Keep track of packages we need to add to the generated CMake config - # file for arbor. +-CPMFindPackage(NAME json +- GITHUB_REPOSITORY nlohmann/json +- VERSION 3.12.0 +- OPTIONS "CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON") +-install(TARGETS nlohmann_json EXPORT arbor-targets) ++find_package(nlohmann_json REQUIRED) + + add_library(ext-random123 INTERFACE) + CPMFindPackage(NAME random123 diff --git a/science/arbor/files/patch-cmake_CPM.cmake b/science/arbor/files/patch-cmake_CPM.cmake new file mode 100644 index 000000000000..5d3f5f935cac --- /dev/null +++ b/science/arbor/files/patch-cmake_CPM.cmake @@ -0,0 +1,12 @@ +--- cmake/CPM.cmake.orig 2025-04-24 10:33:03 UTC ++++ cmake/CPM.cmake +@@ -9,6 +9,9 @@ elseif(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") + elseif(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") ++elseif(DEFINED ENV{CPM_REPO}) ++ include("$ENV{CPM_REPO}/cmake/CPM.cmake") ++ return() + else() + set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") + endif() diff --git a/science/arbor/files/patch-sup_CMakeLists.txt b/science/arbor/files/patch-sup_CMakeLists.txt index 95eac6c5f7eb..7fff28ceb029 100644 --- a/science/arbor/files/patch-sup_CMakeLists.txt +++ b/science/arbor/files/patch-sup_CMakeLists.txt @@ -1,11 +1,11 @@ ---- sup/CMakeLists.txt.orig 2024-08-09 10:22:00 UTC +--- sup/CMakeLists.txt.orig 2025-04-24 10:33:03 UTC +++ sup/CMakeLists.txt @@ -3,7 +3,7 @@ set(sup-sources json_meter.cpp ) -add_library(arbor-sup ${sup-sources}) +add_library(arbor-sup STATIC ${sup-sources}) - if (ARB_USE_BUNDLED_FMT) - target_include_directories(arbor-sup + target_link_libraries(arbor-sup PRIVATE fmt::fmt-header-only) + diff --git a/science/arbor/pkg-plist b/science/arbor/pkg-plist index f7844f35709c..e01333db8354 100644 --- a/science/arbor/pkg-plist +++ b/science/arbor/pkg-plist @@ -1,124 +1,122 @@ bin/arbor-build-catalogue bin/lmorpho bin/modcc include/arbor/arb_types.h include/arbor/arb_types.hpp include/arbor/arb_types.inc include/arbor/arbexcept.hpp include/arbor/assert.hpp include/arbor/assert_macro.hpp include/arbor/benchmark_cell.hpp include/arbor/cable_cell.hpp include/arbor/cable_cell_param.hpp include/arbor/common_types.hpp include/arbor/communication/mpi_error.hpp include/arbor/communication/remote.hpp include/arbor/constants.hpp include/arbor/context.hpp include/arbor/cv_policy.hpp include/arbor/domain_decomposition.hpp include/arbor/domdecexcept.hpp include/arbor/event_generator.hpp include/arbor/export.hpp include/arbor/fvm_types.hpp -include/arbor/generic_event.hpp include/arbor/gpu/cuda_api.hpp include/arbor/gpu/gpu_api.hpp include/arbor/gpu/gpu_common.hpp include/arbor/gpu/hip_api.hpp include/arbor/gpu/math_cu.hpp include/arbor/gpu/reduce_by_key.hpp include/arbor/iexpr.hpp include/arbor/lif_cell.hpp include/arbor/load_balance.hpp include/arbor/math.hpp include/arbor/mechanism.hpp include/arbor/mechanism_abi.h include/arbor/mechcat.hpp include/arbor/mechinfo.hpp include/arbor/morph/cv_data.hpp include/arbor/morph/embed_pwlin.hpp include/arbor/morph/isometry.hpp include/arbor/morph/label_dict.hpp include/arbor/morph/locset.hpp include/arbor/morph/mcable_map.hpp include/arbor/morph/morphexcept.hpp include/arbor/morph/morphology.hpp include/arbor/morph/mprovider.hpp include/arbor/morph/place_pwlin.hpp include/arbor/morph/primitives.hpp include/arbor/morph/region.hpp include/arbor/morph/segment_tree.hpp include/arbor/morph/stitch.hpp include/arbor/network.hpp include/arbor/network_generation.hpp -include/arbor/profile/clock.hpp include/arbor/profile/meter.hpp include/arbor/profile/meter_manager.hpp include/arbor/profile/profiler.hpp include/arbor/profile/timer.hpp include/arbor/recipe.hpp include/arbor/s_expr.hpp include/arbor/sampling.hpp include/arbor/schedule.hpp include/arbor/serdes.hpp include/arbor/simd/approx.hpp include/arbor/simd/avx.hpp include/arbor/simd/avx512.hpp include/arbor/simd/generic.hpp include/arbor/simd/implbase.hpp include/arbor/simd/native.hpp include/arbor/simd/neon.hpp include/arbor/simd/simd.hpp include/arbor/simd/simd_io.hpp include/arbor/simd/sve.hpp include/arbor/simd/sve_bits.hpp include/arbor/simd/vls_sve.hpp include/arbor/simd/vls_sve_bits.hpp include/arbor/simple_sampler.hpp include/arbor/simulation.hpp include/arbor/spike.hpp include/arbor/spike_event.hpp include/arbor/spike_source_cell.hpp include/arbor/symmetric_recipe.hpp include/arbor/units.hpp include/arbor/util/any_cast.hpp include/arbor/util/any_ptr.hpp include/arbor/util/any_visitor.hpp include/arbor/util/compat.hpp include/arbor/util/expected.hpp include/arbor/util/extra_traits.hpp include/arbor/util/handle_set.hpp include/arbor/util/hash_def.hpp -include/arbor/util/lexcmp_def.hpp include/arbor/util/pp_util.hpp include/arbor/util/scope_exit.hpp include/arbor/util/typed_map.hpp include/arbor/util/uninitialized.hpp include/arbor/util/unique_any.hpp include/arbor/util/visibility.hpp include/arbor/version.hpp include/arborenv/arbenvexcept.hpp include/arborenv/concurrency.hpp include/arborenv/default_env.hpp include/arborenv/export.hpp include/arborenv/gpu_env.hpp include/arborenv/with_mpi.hpp include/arborio/cableio.hpp include/arborio/cv_policy_parse.hpp +include/arborio/debug.hpp include/arborio/export.hpp include/arborio/json_serdes.hpp include/arborio/label_parse.hpp include/arborio/loaded_morphology.hpp include/arborio/networkio.hpp include/arborio/neurolucida.hpp include/arborio/neuroml.hpp include/arborio/swcio.hpp lib/cmake/arbor/arbor-config-version.cmake lib/cmake/arbor/arbor-config.cmake lib/cmake/arbor/arbor-targets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/arbor/arbor-targets.cmake lib/libarbor.so lib/libarborenv.so lib/libarborio.so %%DATADIR%%/BuildModules.cmake