From e03636cefa28d82ada87d95afca48a6e09934e37 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Thu, 8 Feb 2024 10:43:25 -0800 Subject: [PATCH 01/13] Updated README.md and updated required packages to include mio --- README.md | 17 ++++++++++++++++- tests/CMakeLists.txt | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5809b04..7ee06b4 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,31 @@ The C++ implementations to the memory-mapped tractography file format. ## Installation + ### Dependencies + - c++11 compiler / cmake - libzip - nlohmann::json - Eigen3 - spdlog - GTest (optional) +- mio ### Installing + `cmake . && make` ## How to use -COMING SOON + +* Install all dependencies (after either cloning github repo or downloading) using these commands + * `mkdir build` + * `cd build` + * `cmake ..` + * `make` + * `make install` +* clone into this repo using `git clone https://github.com/tee-ar-ex/trx-cpp.git` +* To run trx_cpp: + * `cmake -B build` + * `cd build` + * `make` diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 847dc83..0b252e5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,6 +16,7 @@ find_package (Eigen3 CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) find_package(spdlog CONFIG REQUIRED) find_package(GTest CONFIG REQUIRED) +find_package(mio REQUIRED) enable_testing() From fc97c42b7885baaf55256a543c3b468b3f18ee9f Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Fri, 9 Feb 2024 13:40:26 -0800 Subject: [PATCH 02/13] Updated README.md with links to dowload the dependencies --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7ee06b4..2b77254 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,12 @@ The C++ implementations to the memory-mapped tractography file format. ### Dependencies - c++11 compiler / cmake -- libzip -- nlohmann::json -- Eigen3 -- spdlog +- libzip (version 1.10.1 downloaded from https://libzip.org/download/) +- nlohmann::json(version 3.11.3 cloned from https://github.com/nlohmann/json) +- Eigen3(version 3.4.0 from https://eigen.tuxfamily.org/index.php?title=Main_Page ) +- spdlog(spd) [version: 1.13.0 cloned from https://github.com/gabime/spdlog) - GTest (optional) -- mio +- mio (cloned from fhttps://github.com/vimpunk/mio/tree/master) ### Installing From 7a9ce852b89b1b74df0157c69794fa9d241261da Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 14:33:47 -0800 Subject: [PATCH 03/13] Added install dependencies and build workflow --- .github/workflows/build_test.yml | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/build_test.yml diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml new file mode 100644 index 0000000..5645a33 --- /dev/null +++ b/.github/workflows/build_test.yml @@ -0,0 +1,40 @@ +name: C++ Build and Test +'on': + push: + branches: + - master + pull_request: + branches: + - master +jobs: + build_and_test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install \ + libzip-dev\ + eigen3-dev\ + nlohmann-json-dev\ + spdlog-dev\ + - name: Install Google Test v1.12.1 + run: | + git clone -b release-1.12.1 https://github.com/google/googletest.git + cd googletest + cmake -B build + sudo make + sudo make install + - name: Install mio + run: | + git clone -b master https://github.com/vimpunk/mio.git + cd mio + cmake -B build + sudo make + sudo make install + - name: Build C++ project + run: | + cmake -B build + make From d695a2078e737d74c172c6ec86a69d53b6f8a50f Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 14:34:14 -0800 Subject: [PATCH 04/13] Added install dependencies and build workflow --- .github/workflows/build_test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 5645a33..2f6b8a4 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -1,4 +1,4 @@ -name: C++ Build and Test +name: C++ Build 'on': push: branches: @@ -7,7 +7,7 @@ name: C++ Build and Test branches: - master jobs: - build_and_test: + build: runs-on: ubuntu-latest steps: - name: Checkout code From 2701b48ab6a16beef889fed7453b5f08d54a2770 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 14:43:20 -0800 Subject: [PATCH 05/13] Debug workflow failure - installing only libzip-dev --- .github/workflows/build_test.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 2f6b8a4..097a77e 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -14,12 +14,9 @@ jobs: uses: actions/checkout@v4 - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install \ - libzip-dev\ - eigen3-dev\ - nlohmann-json-dev\ - spdlog-dev\ + sudo apt-get update -y + sudo apt-get install -y libzip-dev + - name: Install Google Test v1.12.1 run: | git clone -b release-1.12.1 https://github.com/google/googletest.git From cca136ef7fe9a2260175f6a19ecb8e6262741f98 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 15:53:21 -0800 Subject: [PATCH 06/13] Debug workflow failure to install googletestV1.12.1 --- .github/workflows/build_test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 097a77e..398abea 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -21,7 +21,9 @@ jobs: run: | git clone -b release-1.12.1 https://github.com/google/googletest.git cd googletest - cmake -B build + mkdir build + cd build + cmake .. sudo make sudo make install - name: Install mio From 99aa98598d8dabf755be0e4d896df7520f1a561b Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 16:04:38 -0800 Subject: [PATCH 07/13] Trying cmake-actions to auto install dependency and build --- .github/workflows/build_test.yml | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 398abea..3c998a2 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -12,28 +12,9 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Install dependencies - run: | - sudo apt-get update -y - sudo apt-get install -y libzip-dev - - - name: Install Google Test v1.12.1 - run: | - git clone -b release-1.12.1 https://github.com/google/googletest.git - cd googletest - mkdir build - cd build - cmake .. - sudo make - sudo make install - - name: Install mio - run: | - git clone -b master https://github.com/vimpunk/mio.git - cd mio - cmake -B build - sudo make - sudo make install - - name: Build C++ project - run: | - cmake -B build - make + - name: Configure Project + uses: threeal/cmake-action@v1.3.0 + - name: Build Project + run: cmake --build build + + \ No newline at end of file From e2370cab8ff149fe1c68a9ff4b0dfb3c4f500547 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 16:08:13 -0800 Subject: [PATCH 08/13] Revert "Trying cmake-actions to auto install dependency and build" This reverts commit 99aa98598d8dabf755be0e4d896df7520f1a561b. --- .github/workflows/build_test.yml | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 3c998a2..398abea 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -12,9 +12,28 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Configure Project - uses: threeal/cmake-action@v1.3.0 - - name: Build Project - run: cmake --build build - - \ No newline at end of file + - name: Install dependencies + run: | + sudo apt-get update -y + sudo apt-get install -y libzip-dev + + - name: Install Google Test v1.12.1 + run: | + git clone -b release-1.12.1 https://github.com/google/googletest.git + cd googletest + mkdir build + cd build + cmake .. + sudo make + sudo make install + - name: Install mio + run: | + git clone -b master https://github.com/vimpunk/mio.git + cd mio + cmake -B build + sudo make + sudo make install + - name: Build C++ project + run: | + cmake -B build + make From d9278891c28639b309d6583d39d1dc48d42495ba Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 16:18:50 -0800 Subject: [PATCH 09/13] Testing workflow with all dependencies --- .github/workflows/build_test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 398abea..e1436dc 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -15,7 +15,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y libzip-dev + sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json-dev libspdlog-dev - name: Install Google Test v1.12.1 run: | @@ -30,7 +30,9 @@ jobs: run: | git clone -b master https://github.com/vimpunk/mio.git cd mio - cmake -B build + mkdir build + cd build + cmake .. sudo make sudo make install - name: Build C++ project From c207b828fc4e5fc819a184ed0bf678101cca327b Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Tue, 13 Feb 2024 16:24:12 -0800 Subject: [PATCH 10/13] Testing workflow - using nlohmann-json3-dev --- .github/workflows/build_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index e1436dc..5d1f5fc 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -15,7 +15,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json-dev libspdlog-dev + sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json3-dev libspdlog-dev - name: Install Google Test v1.12.1 run: | From 64042dfa9140e4e15ff270182f7702cfb16eaad8 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Sun, 25 Feb 2024 11:20:32 -0800 Subject: [PATCH 11/13] Added cmake latest version --- .github/workflows/build_test.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 5d1f5fc..9b31849 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -12,11 +12,14 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + - name: Setup cmake + uses: jwlawson/actions-setup-cmake@v1.14 + with: + cmake-version: 'latest' - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json3-dev libspdlog-dev - + sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json3-dev libspdlog-dev libgtest-dev - name: Install Google Test v1.12.1 run: | git clone -b release-1.12.1 https://github.com/google/googletest.git @@ -37,5 +40,7 @@ jobs: sudo make install - name: Build C++ project run: | - cmake -B build - make + mkdir build + cd build + cmake .. + sudo make From a7dadadf47de2db725b44ef84d88f893ece53195 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Sun, 25 Feb 2024 16:44:11 -0800 Subject: [PATCH 12/13] Added Dockerfile --- .github/workflows/build_test.yml | 11 +++++- Dockerfile | 57 ++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 9b31849..3921329 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -19,7 +19,16 @@ jobs: - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y libzip-dev libeigen3-dev nlohmann-json3-dev libspdlog-dev libgtest-dev + sudo apt-get install -y libeigen3-dev nlohmann-json3-dev libspdlog-dev + - name: Install Libzip + run: | + git clone https://github.com/nih-at/libzip.git + cd libzip + mkdir build + cd build + cmake .. + sudo make + make install - name: Install Google Test v1.12.1 run: | git clone -b release-1.12.1 https://github.com/google/googletest.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2882f8e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +# Use Ubuntu as base image +FROM ubuntu:latest + +# Set non-interactive mode +ENV DEBIAN_FRONTEND=noninteractive + +# Update Ubuntu packages and install necessary dependencies +RUN apt-get update && apt-get install -y \ + git \ + cmake \ + libeigen3-dev \ + nlohmann-json3-dev \ + libspdlog-dev \ + build-essential \ + zlib1g-dev\ + && rm -rf /var/lib/apt/lists/* + +# Install Libzip +RUN git clone https://github.com/nih-at/libzip.git \ + && cd libzip \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install + +# Install Google Test v1.12.1 +RUN git clone -b release-1.12.1 https://github.com/google/googletest.git \ + && cd googletest \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install + +# Install mio +RUN git clone -b master https://github.com/vimpunk/mio.git \ + && cd mio \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install + +#setting the working directory +WORKDIR /app + +#Copy the project to the container +COPY . . + +#Run and build the project +RUN mkdir build && \ + cd build && \ + cmake .. && \ + make + + From 96bd643a09f017b85d3dd4b735a5d47c4c1198f1 Mon Sep 17 00:00:00 2001 From: Anuradha Ramachandran Date: Sun, 25 Feb 2024 16:50:16 -0800 Subject: [PATCH 13/13] Modified build_test.yml to run with DockerFile --- .github/workflows/build_test.yml | 41 ++------------------------------ 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 3921329..f219db0 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -12,44 +12,7 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup cmake - uses: jwlawson/actions-setup-cmake@v1.14 - with: - cmake-version: 'latest' - - name: Install dependencies - run: | - sudo apt-get update -y - sudo apt-get install -y libeigen3-dev nlohmann-json3-dev libspdlog-dev - - name: Install Libzip - run: | - git clone https://github.com/nih-at/libzip.git - cd libzip - mkdir build - cd build - cmake .. - sudo make - make install - - name: Install Google Test v1.12.1 - run: | - git clone -b release-1.12.1 https://github.com/google/googletest.git - cd googletest - mkdir build - cd build - cmake .. - sudo make - sudo make install - - name: Install mio - run: | - git clone -b master https://github.com/vimpunk/mio.git - cd mio - mkdir build - cd build - cmake .. - sudo make - sudo make install - name: Build C++ project run: | - mkdir build - cd build - cmake .. - sudo make + docker build -t ci_cd_image . + docker run ci_cd_image