diff --git a/.gitexternals b/.gitexternals index 57d8cad7..ffce9f72 100644 --- a/.gitexternals +++ b/.gitexternals @@ -1,2 +1,2 @@ # -*- mode: cmake -*- -# CMake/common https://github.com/Eyescale/CMake.git bb33e3b +# CMake/common https://github.com/Eyescale/CMake.git 2b5d7f2 diff --git a/.gitsubprojects b/.gitsubprojects index 274dbfb1..8f41bbd0 100644 --- a/.gitsubprojects +++ b/.gitsubprojects @@ -1,3 +1,3 @@ # -*- mode: cmake -*- -git_subproject(Lunchbox https://github.com/Eyescale/Lunchbox.git e67f363) -git_subproject(vmmlib https://github.com/Eyescale/vmmlib.git eb372a2) +git_subproject(Lunchbox https://github.com/Eyescale/Lunchbox.git 09b404a) +git_subproject(vmmlib https://github.com/Eyescale/vmmlib.git 1201da0) diff --git a/CMake/GitExternal.cmake b/CMake/GitExternal.cmake index 42cb58b6..d0c9493e 100644 --- a/CMake/GitExternal.cmake +++ b/CMake/GitExternal.cmake @@ -29,7 +29,9 @@ # repositories, pointing to github.com//. Defaults to user # name or GIT_EXTERNAL_USER environment variable. -find_package(Git) +if(NOT GIT_FOUND) + find_package(Git QUIET) +endif() if(NOT GIT_EXECUTABLE) return() endif() @@ -65,7 +67,7 @@ function(GIT_EXTERNAL DIR REPO TAG) if(NOT OLD_TAG STREQUAL TAG) string(REPLACE "${CMAKE_SOURCE_DIR}/" "" PWD "${CMAKE_CURRENT_SOURCE_DIR}") - message(STATUS "${DIR}: already configured with ${OLD_TAG}, ignoring requested ${TAG} in ${PWD}") + git_external_message("${DIR}: already configured with ${OLD_TAG}, ignoring requested ${TAG} in ${PWD}") return() endif() else() @@ -144,12 +146,12 @@ function(GIT_EXTERNAL DIR REPO TAG) # update tag git_external_message("git rebase FETCH_HEAD") execute_process(COMMAND ${GIT_EXECUTABLE} rebase FETCH_HEAD - RESULT_VARIABLE RESULT OUTPUT_VARIABLE OUTPUT ERROR_VARIABLE OUTPUT + RESULT_VARIABLE RESULT ERROR_QUIET OUTPUT_QUIET WORKING_DIRECTORY "${DIR}") if(RESULT) message(STATUS "git rebase failed, aborting ${DIR} merge") execute_process(COMMAND ${GIT_EXECUTABLE} rebase --abort - WORKING_DIRECTORY "${DIR}") + WORKING_DIRECTORY "${DIR}" ERROR_QUIET OUTPUT_QUIET) endif() # checkout requested tag diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e1de515..b719c479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,8 @@ set(VERSION_ABI 5) set(BRION_DESCRIPTION "The Blue Brain C++ I/O library") set(BRION_ISSUES_URL "https://github.com/BlueBrain/Brion/issues") +set(COMMON_PROJECT_DOMAIN ch.epfl.bluebrain) + include(Common) include(FindPackages) # Generated by Buildyard and checked in @@ -30,5 +32,6 @@ add_subdirectory(tests) include(CPackConfig) -set(COMMON_PROJECT_DOMAIN ch.epfl.bluebrain) +set(DOXYGEN_MAINPAGE_MD README.md) +set(DOXYGEN_EXTRA_INPUT ${PROJECT_SOURCE_DIR}/README.md) include(DoxygenRule) diff --git a/README.md b/README.md index f161b628..55a8f8c2 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,57 @@ # Brion +![](doc/BBPLOGO350.jpg) + Welcome to Brion, a C++ library for read and write access to Blue Brain data structures, including BlueConfig/CircuitConfig, Circuit, CompartmentReport, Mesh, Morphology, Synapse and Target files. +Brion can be retrieved by cloning the +[source code](https://github.com/BlueBrain/Brion.git). + ## Features -Brion provides the following functionality: -* Fast and low-overhead access to read and write BBP data -* Basic data types to work with the loaded data using vmmlib, Lunchbox, Boost +Brion provides the following major features: -## Downloads +* Fast and low-overhead read access to: + * Blue configs (brion::BlueConfig) + * Circuit description (brion::Circuit) + * H5 Synapses data (brion::SynapseSummary, brion::Synapse) + * Target (brion::Target) + * BBP binary meshes (brion::Mesh) + * BBP H5 morphologies and SWC morphologies (brion::Morphology) + * Compartment reports (brion::CompartmentReport) + * Spike reports (brion::SpikeReport) +* Fast and low-overhead write access to: + * Compartment reports (brion::CompartmentReport) + * BBP binary meshes (brion::Mesh) + * BBP H5 morphologies (brion::Morphology) +* Basic [data types](@ref brion/types.h) to work with the loaded data using + [vmmlib](http://vmml.github.io/vmmlib), + [Lunchbox](http://eyescale.github.io/Lunchbox-1.8/index.html), + [Boost](http://www.boost.org/doc/libs). -* Building from source: +## Building -``` +~~~ git clone https://github.com/BlueBrain/Brion.git cd Brion make -``` +~~~ + +## ChangeLog + +To keep track of the changes between releases check the [changelog](doc/Changelog.md). + +## About + +Brion is a cross-platform library, designed to run on any modern operating +system, including all Unix variants. Brion uses CMake to create a +platform-specific build environment. The following platforms and build +environments are tested: + +* Linux: Ubuntu 14.04 and RHEL 6 (Makefile, i386, x64) + +The [latest API documentation] +(http://bluebrain.github.io/Brion-1.5/index.html) can be found on +[bluebrain.github.io](http://bluebrain.github.io). diff --git a/doc/Changelog.md b/doc/Changelog.md index 3fb3ccc1..75667d48 100644 --- a/doc/Changelog.md +++ b/doc/Changelog.md @@ -1,16 +1,29 @@ -ChangeLog {#changelog} +Changelog {#Changelog} ========= -[TOC] +## Release 1.5.0 (2015-07-07) {changelog_1_5_0} -# Brion 1.5.0 {#changelog_1_5_0} - -* New morphology plugin to read SWC morphologies. -* New morphology converter tool +* Add RESTING_VOLTAGE constant. +* Add support for binary spike reports. +* Add support for spike writer plugin. +* Add async IO support in brion::CompartmentReportMap. +* brion::CompartmentReportBinary::updateMapping() more robust. +* brion::SpikeReport API extended to support stream-based reports. A reference + implementation of a stream-based spike report plugin is also provided. +* Ensure thread-safety with non-threadsafe HDF5 library. * Morphology class implementation changed to support the Lunchbox plugin mechanism. +* New morphology plugin to read SWC morphologies. +* [#3](https://github.com/BlueBrain/Brion/pull/3): + New morphology converter tool. +* New null compartment report for benchmarks. +* New spike converter tool. +* Optimized function Circuit::get for large circuits (cut down the loading time + of the 3.1 M neuron circuit by 6.5 seconds in a Core i7-4930K @ 3.40GHz). +* Replace use of iostreams by lunchbox::MemoryMap. +* Several bugfixes and cleanups. -# Brion 1.4.0 {#changelog_1_4_0} +## Release 1.4.0 (2014-10-08) {changelog_1_4_0} * Old report readers have been adapted to be static plugins using lunchbox::IOPluginFactory. @@ -21,12 +34,10 @@ ChangeLog {#changelog} access mode deprecates the old read and write constructors. * New compartment report based on key-value stores supported by Lunchbox::PersistentMap. -* brion::SpikeReport API extended to support stream-based reports. A reference - implementation of a stream-based spike report plugin is also provided. * Spike loading has been optimized (in a 12-core GPU the expected speed-up is above 4x for large files). -## Known Bugs {#Bugs} +## Known Bugs {Bugs} The following bugs were known at release time. Please file a [Bug Report](https://github.com/BlueBrain/Brion/issues) if you find diff --git a/doc/Main.md b/doc/Main.md deleted file mode 100644 index 84187244..00000000 --- a/doc/Main.md +++ /dev/null @@ -1,62 +0,0 @@ -Brion API Documentation {#mainpage} -============ - -[TOC] - -![](BBPLOGO350.jpg) - -# Introduction {#Introduction} - -Welcome to Brion, a C++ library for read and write access to Blue Brain data -structures, including BlueConfig/CircuitConfig, Circuit, CompartmentReport, -Mesh, Morphology, Synapse and Target files. - -Brion can be retrieved by cloning the -[source code](https://github.com/BlueBrain/Brion.git). - -## Features {#Features} - -Brion provides the following major features: - -* Fast and low-overhead read access to: - * Blue configs (brion::BlueConfig) - * Circuit description (brion::Circuit) - * H5 Synapses data (brion::SynapseSummary, brion::Synapse) - * Target (brion::Target) - * BBP binary meshes (brion::Mesh) - * BBP H5 morphologies and SWC morphologies (brion::Morphology) - * Compartment reports (brion::CompartmentReport) - * Spike reports (brion::SpikeReport) -* Fast and low-overhead write access to: - * Compartment reports (brion::CompartmentReport) - * BBP binary meshes (brion::Mesh) - * BBP H5 morphologies (brion::Morphology) -* Basic [data types](@ref brion/types.h) to work with the loaded data using - [vmmlib](http://vmml.github.io/vmmlib), - [Lunchbox](http://eyescale.github.io/Lunchbox-1.8/index.html), - [Boost](http://www.boost.org/doc/libs). - -## ChangeLog {#Changelog} - -The full change log can be found [here](./changelog.html). - -- - - - -# About {#About} - -Brion is a cross-platform library, designed to run on any modern operating -system, including all Unix variants. Brion uses CMake to create a -platform-specific build environment. The following platforms and build -environments are tested: - -* Linux: Ubuntu 14.04 and RHEL 6 (Makefile, i386, x64) - -The [latest API documentation] -(http://bluebrain.github.io/Brion-1.5/index.html) can be found on -[bluebrain.github.io](http://bluebrain.github.io). - -- - - - -# Errata {#Errata} - -- - -