diff --git a/.clang-format b/.clang-format index a0f9288611ef971d55b7cae7b1220524add11df9..4f4e3965be439651cc176cb60d2b3f7d1c91ee1e 100644 --- a/.clang-format +++ b/.clang-format @@ -147,7 +147,7 @@ SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInParentheses: false SpacesInSquareBrackets: false -Standard: c++11 +Standard: c++17 StatementMacros: - Q_UNUSED - QT_REQUIRE_VERSION diff --git a/CMakeLists.txt b/CMakeLists.txt index 66df115bbbf3145033e23b1f6a3defe8d88e461f..7dc3cf51b04f6306b90403b9aaa96de6eaeb854c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,7 @@ else() endif() endif() -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/ddecal/SolutionWriter.cc b/ddecal/SolutionWriter.cc index cbdb1ae6a212c483486717a9109980ff3363efae..48c1c30cf82372f8bec9bfcdc7a989499e70ce31 100644 --- a/ddecal/SolutionWriter.cc +++ b/ddecal/SolutionWriter.cc @@ -107,12 +107,12 @@ void SolutionWriter::Write( assert(contiguous_solutions.size() == n_solutions); std::vector<schaapcommon::h5parm::AxisInfo> axes; - axes.emplace_back(schaapcommon::h5parm::AxisInfo("time", n_times)); - axes.emplace_back(schaapcommon::h5parm::AxisInfo("freq", n_channel_blocks)); - axes.emplace_back(schaapcommon::h5parm::AxisInfo("ant", n_antennas)); - axes.emplace_back(schaapcommon::h5parm::AxisInfo("dir", n_directions)); + axes.push_back({"time", static_cast<unsigned>(n_times)}); + axes.push_back({"freq", static_cast<unsigned>(n_channel_blocks)}); + axes.push_back({"ant", static_cast<unsigned>(n_antennas)}); + axes.push_back({"dir", static_cast<unsigned>(n_directions)}); if (n_pol > 1) { - axes.emplace_back(schaapcommon::h5parm::AxisInfo("pol", n_pol)); + axes.push_back({"pol", static_cast<unsigned>(n_pol)}); } int n_soltabs = 1; @@ -182,12 +182,13 @@ void SolutionWriter::Write( common::stringtools::tokenize(first_result.axes, ","); std::vector<schaapcommon::h5parm::AxisInfo> axes; - axes.emplace_back(schaapcommon::h5parm::AxisInfo( - "time", constraint_solutions.size())); + axes.push_back( + {"time", static_cast<unsigned>(constraint_solutions.size())}); for (size_t axis_index = 0; axis_index < firstaxesnames.size(); ++axis_index) { - axes.emplace_back(schaapcommon::h5parm::AxisInfo( - firstaxesnames[axis_index], first_result.dims[axis_index])); + axes.push_back( + {firstaxesnames[axis_index], + static_cast<unsigned>(first_result.dims[axis_index])}); } // Put solutions in a contiguous piece of memory @@ -279,4 +280,4 @@ void SolutionWriter::Write( } } // namespace ddecal -} // namespace dp3 \ No newline at end of file +} // namespace dp3 diff --git a/docker/ubuntu_20_04_base b/docker/ubuntu_20_04_base index 000ce6528e8a0328ade5f6f7b813fc686ada9829..4167505b3e08c0fce0156b0fbe285948d055c171 100644 --- a/docker/ubuntu_20_04_base +++ b/docker/ubuntu_20_04_base @@ -2,9 +2,9 @@ FROM ubuntu:20.04 # TODO: needs to be bumped before next DP3 release # ENV IDG_VERSION=0.8 -ENV EVERYBEAM_VERSION=v0.3.0 -ENV IDG_VERSION=6e9165fa48659485fb41a45220a0a80e70935ad4 -ENV AOFLAGGER_VERSION=0018b06a61ed202fd88dfbf2b4e0dfdfec018d7f +ENV EVERYBEAM_VERSION=a8ba1fb71d55b7a3afcd71876ad726b779dd0ff9 +ENV IDG_VERSION=6b61c038883ad3f807d20047c4f9e1a1f0b8d98a +ENV AOFLAGGER_VERSION=65d5fba4f4c12797386d3fd9cd76734956a8b233 RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \ apt-get install -y \ @@ -13,45 +13,43 @@ RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \ libboost-filesystem-dev libboost-system-dev libboost-date-time-dev \ libboost-program-options-dev libboost-test-dev \ libpng-dev pkg-config \ - libgtkmm-3.0-dev git libfftw3-dev \ + libgtkmm-3.0-dev git libfftw3-dev libgsl-dev \ gfortran flex bison wcslib-dev \ liblua5.3-dev \ casacore-dev casacore-tools pybind11-dev python3-pip \ - doxygen ninja-build clang-format-12 \ -# The formatter needs a binary named 'clang-format', not 'clang-format-12' - && ln -sf clang-format-12 /usr/bin/clang-format \ + doxygen ninja-build # Build aoflagger3 - && mkdir /aoflagger && cd /aoflagger \ +RUN mkdir /aoflagger && cd /aoflagger \ && git clone https://gitlab.com/aroffringa/aoflagger.git src \ && ( cd src/ && git checkout ${AOFLAGGER_VERSION} ) \ && mkdir build && cd build \ && cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr ../src \ && ninja install \ - && cd / && rm -rf aoflagger \ + && cd / && rm -rf aoflagger # Build IDG - && mkdir /idg && cd /idg \ +RUN mkdir /idg && cd /idg \ && git clone https://git.astron.nl/RD/idg.git src \ && ( cd src/ && git checkout ${IDG_VERSION} ) \ && mkdir build && cd build \ && cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr ../src \ && ninja install \ - && cd / && rm -rf idg \ + && cd / && rm -rf idg # Build EveryBeam - && mkdir /everybeam && cd /everybeam \ +RUN mkdir /everybeam && cd /everybeam \ && git clone https://git.astron.nl/RD/EveryBeam.git src \ && ( cd src/ && git checkout ${EVERYBEAM_VERSION} ) \ && mkdir build && cd build \ && cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr ../src -DPYTHON_EXECUTABLE=/usr/bin/python3 \ && ninja install \ - && cd / && rm -rf everybeam \ + && cd / && rm -rf everybeam # Install WSRT Measures (extra casacore data, for integration tests) # Note: The file on the ftp site is updated daily. When warnings regarding leap # seconds appear, ignore them or regenerate the docker image. - && wget -nv -O /WSRT_Measures.ztar ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar \ +RUN wget -nv -O /WSRT_Measures.ztar ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar \ && cd /var/lib/casacore/data \ && tar xfz /WSRT_Measures.ztar \ - && rm /WSRT_Measures.ztar \ + && rm /WSRT_Measures.ztar # Install pip dependencies - && pip3 install gcovr cmake-format h5py \ +RUN pip3 install gcovr h5py \ # build-doc dependencies autosemver==0.5.5 jsonschema2rst==0.1.0 sphinx sphinx-rtd-theme diff --git a/docker/ubuntu_22_04_base b/docker/ubuntu_22_04_base index abdbd9fb5bf9628a50afdc8b7be5fb343f0507cf..5e45c60391e6b63b9513659d2218918b20994b09 100644 --- a/docker/ubuntu_22_04_base +++ b/docker/ubuntu_22_04_base @@ -2,9 +2,9 @@ FROM ubuntu:22.04 # TODO: needs to be bumped before next DP3 release # ENV IDG_VERSION=0.8 -ENV EVERYBEAM_VERSION=v0.3.0 -ENV IDG_VERSION=6e9165fa48659485fb41a45220a0a80e70935ad4 -ENV AOFLAGGER_VERSION=0018b06a61ed202fd88dfbf2b4e0dfdfec018d7f +ENV EVERYBEAM_VERSION=a8ba1fb71d55b7a3afcd71876ad726b779dd0ff9 +ENV IDG_VERSION=6b61c038883ad3f807d20047c4f9e1a1f0b8d98a +ENV AOFLAGGER_VERSION=65d5fba4f4c12797386d3fd9cd76734956a8b233 RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \ apt-get install -y \ @@ -13,7 +13,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \ libboost-filesystem-dev libboost-system-dev libboost-date-time-dev \ libboost-program-options-dev libboost-test-dev \ libpng-dev pkg-config \ - libgtkmm-3.0-dev git libfftw3-dev \ + libgtkmm-3.0-dev git libfftw3-dev libgsl-dev \ gfortran flex bison wcslib-dev \ liblua5.3-dev \ casacore-dev casacore-tools pybind11-dev python3-pip \ diff --git a/external/aocommon b/external/aocommon index 87aacb1fb494503ccb03aa20c5015e03e2e3a641..415a44c78bc23509e74930f318a495ac3e4dd0ab 160000 --- a/external/aocommon +++ b/external/aocommon @@ -1 +1 @@ -Subproject commit 87aacb1fb494503ccb03aa20c5015e03e2e3a641 +Subproject commit 415a44c78bc23509e74930f318a495ac3e4dd0ab diff --git a/external/schaapcommon b/external/schaapcommon index 5522a63af55b1a8224c8d7e8775c20cdadc40868..f62867e3e52bbccd0a1dbf059f829d8a9947e968 160000 --- a/external/schaapcommon +++ b/external/schaapcommon @@ -1 +1 @@ -Subproject commit 5522a63af55b1a8224c8d7e8775c20cdadc40868 +Subproject commit f62867e3e52bbccd0a1dbf059f829d8a9947e968 diff --git a/steps/GainCal.cc b/steps/GainCal.cc index b499707ed6deb2a54453e2bbf7f602803fffba39..bb919ce08e395ddf74416f9e3ed89f8247ccfca9 100644 --- a/steps/GainCal.cc +++ b/steps/GainCal.cc @@ -954,11 +954,11 @@ void GainCal::writeSolutionsH5Parm(double) { } std::vector<AxisInfo> axes; - axes.push_back(AxisInfo("time", itsSols.size())); - axes.push_back(AxisInfo("freq", nSolFreqs)); - axes.push_back(AxisInfo("ant", info().antennaUsed().size())); + axes.push_back({"time", static_cast<unsigned>(itsSols.size())}); + axes.push_back({"freq", nSolFreqs}); + axes.push_back({"ant", static_cast<unsigned>(info().antennaUsed().size())}); if (nPol > 1) { - axes.push_back(AxisInfo("pol", nPol)); + axes.push_back({"pol", nPol}); } std::vector<SolTab> soltabs = makeSolTab(h5parm, itsMode, axes); diff --git a/steps/test/unit/tApplyCalH5.cc b/steps/test/unit/tApplyCalH5.cc index d37b3c9d83d8dfd7ea5ef77177402d1df00bacea..d937d4f25bb6c6951631ee2ea3771d0fc557ceb7 100644 --- a/steps/test/unit/tApplyCalH5.cc +++ b/steps/test/unit/tApplyCalH5.cc @@ -351,13 +351,13 @@ void createH5Parm(vector<double> times, vector<double> freqs, } h5parm.AddAntennas(antNames, antPositions); - vector<schaapcommon::h5parm::AxisInfo> axes; - axes.push_back(schaapcommon::h5parm::AxisInfo("ant", nAntennas)); + std::vector<schaapcommon::h5parm::AxisInfo> axes; + axes.push_back({"ant", static_cast<unsigned>(nAntennas)}); if (!times.empty()) { - axes.push_back(schaapcommon::h5parm::AxisInfo("time", times.size())); + axes.push_back({"time", static_cast<unsigned>(times.size())}); } if (!freqs.empty()) { - axes.push_back(schaapcommon::h5parm::AxisInfo("freq", freqs.size())); + axes.push_back({"freq", static_cast<unsigned>(freqs.size())}); } SolTab soltab = h5parm.CreateSolTab("myampl", "amplitude", axes);